內網穿透一般都需要在路由器中用nat指向,或使用如treamviewer之類的工具穿透內網實現遠端控制。
n2n與之不同的是,它是p2p。也即是如同treamviewer之類工具使用的是資料從伺服器**,而n2n則是點對點的資料直聯。n2n需要乙個supernode,只用於最初的打洞用,之後的互動均為直聯模式。(好像也可以設定為**模式,還沒去嘗試)
有興趣的可以自行上網搜尋原理,如文:
需要準備一台伺服器(有固定ip的vps之類的),可以是windows也可以是linux,比如我這裡的是:111.111.111.111
解壓n2n.7z,裡頭有乙個n2n_linux.tar.gz檔案,上傳到伺服器中,解壓
tar -zvxf n2n_linux.tar.gz進入n2n_linux目錄,再進去n2n_v2目錄(這裡我使用的是v2新版本)
make && make install將會看到如下安裝完的資訊:
echo "mandir=/usr/share/man"可以看到supernode安裝在/usr/sbin/目錄下。現在可以直接啟動supernode了:mandir=/usr/share/man
mkdir -p /usr/sbin /usr/share/man/man1 /usr/share/man/man7 /usr/share/man/man8
install -m755 supernode /usr/sbin/
install -m755 edge /usr/sbin/
install -m644 edge.8.gz /usr/share/man/man8/
install -m644 supernode.1.gz /usr/share/man/man1/
install -m644 n2n_v2.7.gz /usr/share/man/man7/
/usr/sbin/supernode -l 6666-l 6666,意思是使用6666埠開啟supernode
windows最簡單,解壓n2n.7z,裡頭目錄n2n_win下有乙個supernode.exe檔案,開啟cmd,輸入:
/usr/sbin/supernode -l 6666-l 6666,意思是使用6666埠開啟supernode
在n2n_win資料夾下有乙個tapinstall.exe檔案,這個檔案需要以管理員許可權執行(怎麼設定就不說了),設定完後,雙擊執行install.bat,安裝tap adapter驅動。其實bat就是一句命令安裝:
tapinstall.exe install oemwin2k.inf tap0901安裝完驅動後,使用管理員許可權開啟cmd,cd到n2n_win目錄,執行命令:
edge2 -a 10.0.1.2 -c mynetwork -k password -l 111.111.111.111:6666將看到如我類似的資訊表似已經開啟了這台客戶端機子:
(也可以使用win程式執行,n2ngui.exe,同樣,需要管理員許可權執行,這裡就不說了)
與伺服器安裝一模一樣,安裝完後,只是啟動命令不是supernode,而是edge:
/usr/sbin/edge -a 10.0.1.1 -c mynetwork -k password -l 111.111.111.111:6666安裝n2n.apk檔案然後設定就可以了,怎麼設定太簡單了,這裡就不說了。不過android要執行n2n,手機設定必需要root許可權。
已經安裝好了,我們測試下連通性如何。
在linux上ping下windows客戶端:
明顯看到第一次ping返回時間需要比較久,後而就很快。原因就是上頁說的,第一次需要先連上supernode伺服器打洞,然後伺服器再把兩台機子對聯起來成p2p。
在windows上ping linux客戶端
1、n2n使用的是udp協議,如果兩台機子在幾分鐘內沒有資料互動,udp會自動斷開連線,所以下一次連線時又會花費打洞時間。
2、本程式在win10中每次重啟都需要先執行install.bat安裝驅動,好像win10不會加到自動載入啟動中。win7正常。目前程式只支援64位windows系統。
內固 N皇后問題
優秀書籍 著名的8皇后問題就是,求出8 8有多少個不同的內固集。在我的一篇部落格中有求解的方法 hdu 2553 n皇后問題 可以看出,8皇后的內固集有92種,即8皇后問題有92種不同的擺法。在75象棋 6 這篇文章中我給出了乙個非常對稱的解。下面討論一般的n皇后問題。那篇部落格裡面的結論是,n n...
求N內的所有素數
1 素數及相關 素數,又稱質數,在乙個大於1的自然數中,除了1和此整數自身之外,不能被其他自然數整除的數。比1大但不是素數的數稱為合數。1和0既不是素數,也不是合數。算術基本定理證明每個大於1的正整數都可以寫成素數的乘積,並且這種乘積的形式是唯一的。2 試除法求素數 演算法描述 根據素數的定義可知,...
n範圍內尋找重複數
題目描述 在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是第乙個重複的數字2。思路 可以用set直接判斷,時間複雜度為o n 但是實際是...