PuTTY - 內(nèi)網(wǎng)穿透原理內(nèi)網(wǎng)計(jì)算機(jī)(也就是LowID),,都通過至少一層網(wǎng)關(guān)連接互聯(lián)網(wǎng),沒有自己的獨(dú)立IP和端口(別人看到的你的IP是網(wǎng)關(guān)的),,所以別人無(wú)法主動(dòng)與你建立連接,,兩個(gè)內(nèi)網(wǎng)用戶自然也就無(wú)法連通,更無(wú)法實(shí)現(xiàn)傳輸,。但是內(nèi)網(wǎng)計(jì)算機(jī)可以主動(dòng)連接其他有獨(dú)立IP的外網(wǎng)計(jì)算機(jī),,再通過udp協(xié)議通訊的時(shí)候,,因?yàn)閡dp是非持續(xù)連接的,所以網(wǎng)關(guān)那邊會(huì)給你開一個(gè)臨時(shí)端口,讓你能夠接受外網(wǎng)計(jì)算機(jī)返回給你的udp包,,如果一段時(shí)間內(nèi)沒有傳輸,臨時(shí)端口便會(huì)取消,。這個(gè)步驟就可有空子鉆,,比如A和B
兩臺(tái)內(nèi)網(wǎng)計(jì)算機(jī),都同時(shí)連接外網(wǎng)計(jì)算機(jī)C進(jìn)行udp協(xié)議的傳輸,,A和B分別用到了臨時(shí)端口Ap和Bp,,這個(gè)時(shí)候通過Ap就可以主動(dòng)連接到A,Bp就可以主動(dòng)連接到B,,所以C所要做的,,就是把Ap告訴B,把Bp告訴A。AB通過從C那里知道的Ap和Bp,,即可實(shí)現(xiàn)UDP直連,。只要連接不斷,臨時(shí)端口就一直有效,,傳輸期間,,C什么都不需要參與,這個(gè)過程,,俗稱打洞,,C幫AB打好洞,AB就可以自己玩了。當(dāng)然我這個(gè)是最簡(jiǎn)單的講法,,根據(jù)不同的網(wǎng)關(guān)設(shè)備,,還是有很多不同情況需要解決。有人怕Low2Low會(huì)耗HighID資源,,這個(gè)多慮了,不是說(shuō)不耗,,而是耗的根小,,C只不過初期接受一下AB發(fā)來(lái)的UDP請(qǐng)求,并向雙方返回一次數(shù)據(jù),,打洞成功之后就再也沒事了,。本身UDP傳輸就耗的資源很少,這一兩次UDP傳輸相對(duì)于連接頻繁的eMule,,可以忽略不計(jì)了,。更要說(shuō)明的一點(diǎn)就是,我們目前測(cè)試用的內(nèi)網(wǎng)穿透eMule,,都是連接的我們自己的一臺(tái)服務(wù)器用來(lái)做“C”,,幫LowID打洞,沒有依賴任何其他,。HighID,,而我們那臺(tái)破PIII服務(wù)器,,目前同時(shí)處理著幾百個(gè)low2low的連接,,也幾乎沒占多少服務(wù)器資源。當(dāng)然將來(lái)最好的方案,,是可以讓eMule的Low2Low基于Kad來(lái)進(jìn)行,這樣可以不依賴任何第三方的服務(wù)器,,獨(dú)立的發(fā)展下去,。基本原理是LowID利用自己的buddy來(lái)做幫助打洞,,每個(gè)HightID只會(huì)幫1個(gè)LowID做buddy,,所以不會(huì)增加HighID的負(fù)擔(dān)。這方面我們也作了研究,,不日也準(zhǔn)備進(jìn)行測(cè)試,。內(nèi)網(wǎng)穿透目前是一套成熟的方案,QQ,,BC等都早已開始大規(guī)模使用,。為什么eMule到現(xiàn)在為止才開始由我們開始測(cè)試內(nèi)網(wǎng)穿透呢?主要是因?yàn)閑Mule的開發(fā)長(zhǎng)期以來(lái)都由老外們主導(dǎo),,國(guó)外大都由公網(wǎng)IP,,Low2Low對(duì)他們來(lái)說(shuō),太不重要,。而我們自己也走了很多的彎路,,去年嘗試通過內(nèi)置VNN來(lái)解決問題,但VNN相對(duì)eMule,,是一套太大的解決方案,,需要注冊(cè)和安裝虛擬網(wǎng)卡才能使用。雖然我們后來(lái)的版本自動(dòng)完成了這2步,,但是VNN的服務(wù)器還是無(wú)法拖起eMule這巨大的用戶群進(jìn)行這樣復(fù)雜的應(yīng)用,。所以這次痛定思痛,自己從頭開始開發(fā),,主要就是讓使用tcp協(xié)議傳輸數(shù)據(jù)的eMule可以利用到UDP直連,并且解決各種各樣的細(xì)節(jié)問題(因?yàn)閑Mule之前都沒考慮到low2low問題),。國(guó)外也有個(gè)neo版本的eMule,,嘗試?yán)胟ad解決Low2Low的問題,但實(shí)際使用效果不好,。我們?cè)陂_發(fā)過程中也想?yún)⒖?,不過基本沒參考成,代碼 太復(fù)雜太亂,。最后還是根據(jù)自己的思路自己寫的,,會(huì)比neo的思路更清晰些 。 使用SSH建立tunnel隧道,,穿透到內(nèi)網(wǎng)服務(wù)器,! 在很多項(xiàng)目的搭建上,處于安全角度,,經(jīng)常將某些關(guān)鍵服務(wù)器配置成內(nèi)網(wǎng)環(huán)境 即只能在內(nèi)部運(yùn)行,,無(wú)法向外連接 例如下圖在圖中,要訪問內(nèi)網(wǎng)里邊的服務(wù)器上的站點(diǎn),,則必須先登錄到具有雙網(wǎng)卡的機(jī)器上 然后再跳轉(zhuǎn)到內(nèi)網(wǎng)服務(wù)器上 如果是http/ftp協(xié)議,,則只要在雙網(wǎng)卡雙IP的服務(wù)器上配置好apache/squid代理就可以了但是,如果要訪問內(nèi)網(wǎng)服務(wù)器的MSSQL,、遠(yuǎn)程桌面等服務(wù),,那就成為問題了 具有雙網(wǎng)卡的服務(wù)器是一個(gè)字符linux環(huán)境,無(wú)法直接連接遠(yuǎn)程桌面等圖形服務(wù),也不支持mssql協(xié)議 這時(shí)候就需要ssh的tunnel隧道出馬了,。首先使用putty或者ssh等標(biāo)準(zhǔn)的ssh工具,,建立一個(gè)profile,設(shè)置好ip,、端口等,。進(jìn)入高級(jí)選項(xiàng),可以在選項(xiàng)卡里邊找到ssh tunnel的設(shè)置,。選擇Outgoing,,選擇add。添加一個(gè)新規(guī)則,。其中l(wèi)icten 12345表示隧道建立后,,使用本機(jī)的12345端口。 而遠(yuǎn)程地址,,則輸入要穿透的內(nèi)網(wǎng)服務(wù)器的地址和端口,。新建好了點(diǎn)擊確認(rèn)。從profile中選中剛才建立的帶有隧道的連接,。輸入密碼完成,,連接ok。隨著標(biāo)準(zhǔn)ssh的建立,,后臺(tái)的tunnel也建立好了,!到本機(jī)上,執(zhí)行netstat -an,,能看到剛才建立的隧道,,端口是12345。由于我們的隧道的遠(yuǎn)端是個(gè)3389端口,,所以我們這里就可以用遠(yuǎn)程桌面了,。登錄成功!通過ssh tunnel隧道的建立,,成功的利用一個(gè)雙網(wǎng)卡(雙ip,,雙網(wǎng)段)的機(jī)器,實(shí)現(xiàn)了到內(nèi)網(wǎng)的穿透,。穿透內(nèi)網(wǎng),用手機(jī)遠(yuǎn)程控制電腦 3G時(shí)代來(lái)了,,智能手機(jī)也越來(lái)越強(qiáng)悍了,像HTC HD2主頻已達(dá)到1GHz,,都要與PC電腦配置差不多了,,這使得手機(jī)上的應(yīng)用也越來(lái)越牛逼啦。 最近網(wǎng)上有一款本該在PC電腦上玩的強(qiáng)悍軟件--“網(wǎng)靈一號(hào)” 在智能手機(jī)上也流行起來(lái),。 機(jī)油們用它來(lái)遠(yuǎn)程移動(dòng)辦公,,遠(yuǎn)程監(jiān)護(hù)未成年人上網(wǎng)用電腦,,甚至用它來(lái)遠(yuǎn)程監(jiān)管辦公室員工電腦,家里情人的電腦,。,。。 下面是我的 HTC Diamond2 上軟件截圖: 運(yùn)行軟件,,列表中顯示了所有在線的受控端,,由于“網(wǎng)靈一號(hào)”可以穿透內(nèi)網(wǎng),所以不管受控端在世界什么角落,, 只要能上網(wǎng)即可出現(xiàn)在這個(gè)列表中: 【插圖:001-手機(jī)列表.JPG】 連接上一個(gè)受控端,,是如下界面: 【插圖:002-已連接.JPG】 假如說(shuō)其中有一個(gè)是自己小孩在家里用的電腦,要遠(yuǎn)程監(jiān)管他上網(wǎng),。使用“桌面監(jiān)控”,,即可看到小孩正在上網(wǎng)聊QQ: 【插圖:003-桌面監(jiān)控.jpg】 用“上網(wǎng)監(jiān)管”功能,可以查看孩子最近上網(wǎng)記錄: 【插圖:004-瀏覽記錄.JPG】 也可以查看孩子收藏了哪些網(wǎng)頁(yè),,了解孩子的興趣愛好: 【插圖:005-收藏網(wǎng)頁(yè).JPG】 如果發(fā)現(xiàn)小孩瀏覽過色情,、暴力等不良網(wǎng)站,應(yīng)該堅(jiān)決屏蔽這些網(wǎng)站: 【插圖:006-屏蔽網(wǎng)站.JPG】 用“音視頻監(jiān)控”功能,,可以開啟攝像頭和麥克風(fēng),,看孩子在做什么,說(shuō)什么,。 視頻流暢,,聲音清晰。 【插圖:007-音視頻監(jiān)控.jpg】 可錄制,,可以從攝像頭抓拍照片。,。,。 【插圖:008-抓拍照片.jpg】 遠(yuǎn)程管理文件也可以,出門在外偶爾需要上傳下載什么的,。,。。 【插圖:009-文件傳輸1.jpg】 【插圖:010-文件傳輸2.jpg】 目前,,“網(wǎng)靈一號(hào)”已支持 Windows Mobile手機(jī) 及 魅族M8手機(jī),, Google Android手機(jī)版本也即將發(fā)布。 下面是 魅族M8 手機(jī)上運(yùn)行“網(wǎng)靈一號(hào)”控制端軟件的截圖: a) 在線受控端列表 b)桌面監(jiān)控功能,,查看和控制遠(yuǎn)程電腦的屏幕 c)可訪問遠(yuǎn)程電腦文件系統(tǒng) d)音視頻監(jiān)控,,用手機(jī)開啟遠(yuǎn)程攝像頭進(jìn)行語(yǔ)音視頻聊天 【插圖:011-M8組合.JPG】 我個(gè)人認(rèn)為這個(gè)相當(dāng)強(qiáng)大的,有了這個(gè)手機(jī)軟件,,只要有3G信號(hào)或者Wifi信號(hào),,不管你是出差在外,,旅游途中, 還是逗留機(jī)場(chǎng),,賓館,,商場(chǎng),餐廳,,咖啡館,,,,,都可以隨時(shí)對(duì)PC電腦進(jìn)行遠(yuǎn)程管理或遠(yuǎn)程監(jiān)控! PS:軟件控制端同時(shí)提供手機(jī)版,,PC版,以及基于瀏覽器的網(wǎng)頁(yè)遠(yuǎn)程控制,。 剛看了下BT原理因?yàn)楣疽粋€(gè)程序被防火墻死活當(dāng)成BT軟件而封了,,被誤判可能是因?yàn)榫W(wǎng)絡(luò)連接過程更BT內(nèi)網(wǎng)穿透情況完全一致而導(dǎo)致網(wǎng)關(guān)給卡掉了。所以仔細(xì)研究了一下,??戳藥灼恼拢f(shuō)得都差不多,。 最近一篇地址:http://www./n1306c2.aspx 下面是自己的理解,。 內(nèi)網(wǎng)穿透的原理是 內(nèi)網(wǎng)客戶端 l, 外網(wǎng)客戶端 n, 網(wǎng)關(guān) nat, 內(nèi)外網(wǎng)是無(wú)法直接連接的,因?yàn)镮P范圍不一樣 但網(wǎng)關(guān)充當(dāng)中間人就實(shí)現(xiàn)了這個(gè)功能 l 要連 n, 消息發(fā)到 nat 時(shí) nat發(fā)現(xiàn)時(shí)要連到外網(wǎng)(內(nèi)網(wǎng)就直接轉(zhuǎn)發(fā)到內(nèi)網(wǎng)地址即可), 就自己建立一個(gè)socket去連接 n, 從此以后 l 發(fā)過去的數(shù)據(jù)都會(huì)被修改包頭中的本地地址為 nat的地址,, 然后發(fā)出去 ,。 所以 n 實(shí)際上一直以為 是nat在給自己發(fā)東西。 n要給l發(fā)東西 ,, nat收到以后就會(huì)把包頭中的目標(biāo)地址改成內(nèi)網(wǎng)地址,,然后發(fā)給l 而l則實(shí)際上一直是在跟nat發(fā)東西。 然后BT穿透是指有時(shí)候兩個(gè)不同的內(nèi)網(wǎng)需要連接,,這是辦不到的,。因?yàn)閮蓚€(gè)內(nèi)網(wǎng)程序都不知道對(duì)方的外網(wǎng)地址,所以無(wú)法連接,。 于是找一個(gè)外網(wǎng)客戶端,。 內(nèi)網(wǎng) la,lb 網(wǎng)關(guān) nata,natb 外網(wǎng) n la 要連 lb。 la先連接n,,lb也連接n,。然后 la在n那里得到了lb的地址(而實(shí)際上就是natb的地址)。但是直接給natb發(fā)東西不行的,。因?yàn)橐粋€(gè)socket只能給一個(gè)socket發(fā)東西而這時(shí)natb是在跟n發(fā)東西的,。 于是la給n說(shuō),你讓lb連我吧,!然后n對(duì)lb說(shuō),,你再開一個(gè)連接出來(lái),,于是n就有了lb的另一個(gè)地址AddreslbB,然后告訴la,。la這下就可以連接lb了,,因?yàn)锳ddresslbB是一個(gè)外網(wǎng)地址,也就是natb的地址,。而natb是知道這個(gè)地址是要轉(zhuǎn)發(fā)給lb的,。所以…… 這就水到渠成了。所以大致分析公司那個(gè)被誤判的程序是因?yàn)樗B到了一個(gè)外網(wǎng)地址,,網(wǎng)關(guān)已經(jīng)為他代理了一條通道,,他又要開一個(gè)新的連接同一個(gè)外網(wǎng)IP??赡苁沁@樣子網(wǎng)關(guān)以為他是在做內(nèi)網(wǎng)穿透,。給屏蔽了后面要建立的連接?! ≈皇强赡苓@樣,,要看代碼才知道,代碼才是最直接的解釋,。不過這個(gè)問題不是讓我來(lái)解決,。僅僅旁聽后做的感想。呵呵 等他們解決問題后再看看是不是這個(gè)樣子,。 讓你的電腦穿透內(nèi)網(wǎng)全速P2P?。ㄟm用于BT、EMULE)2007-05-18 06:19 前言:P2P大家應(yīng)該都比較熟悉了,,點(diǎn)對(duì)點(diǎn)的傳輸協(xié)議,。但是,P2P有個(gè)最大的問題,,就是內(nèi)網(wǎng)穿透能力非常弱,。 什么叫內(nèi)網(wǎng)?比如說(shuō),,你是通過局域網(wǎng)內(nèi)其他的主機(jī)(或路由器)連接到網(wǎng)絡(luò)的,那么,,你就處于內(nèi)網(wǎng)之中(也可以望文生意的),。假如雙方都處于內(nèi)網(wǎng),那協(xié)議對(duì)地址的解析能力就比較弱了,,因?yàn)閮?nèi)網(wǎng)用戶使用的是虛擬IP地址,,不是在INTERNET上的IP地址。 然后教大家怎么做: 首先要確定你是否屬于內(nèi)網(wǎng)用戶,。一般來(lái)說(shuō),,教育網(wǎng)一般是屬于內(nèi)網(wǎng)的,。使用路由器的是屬于內(nèi)網(wǎng)。多臺(tái)機(jī)器上網(wǎng),,其主機(jī)可以不算內(nèi)網(wǎng)用戶,,其他分機(jī)均屬于內(nèi)網(wǎng)。 至于怎么完全確認(rèn)呢,?需要這樣做: 進(jìn)“控制面板”-“網(wǎng)絡(luò)連接”,。然后雙擊“本地連接”。點(diǎn)到“支持”,??碔P地址。如果是類似192.168.1.2 192.168.0.8 之類的地址,,那就是使用的內(nèi)網(wǎng)中的IP,,也就是說(shuō),你處于內(nèi)網(wǎng)之中,。 那怎么設(shè)置呢,?這樣做: 進(jìn)“本地連接”,點(diǎn)“常規(guī)”-“屬性”,。然后雙擊下面的“TCP/IP協(xié)議”,。則會(huì)出現(xiàn)一個(gè)可以輸入很多數(shù)值的東西。這個(gè)就是設(shè)置你IP使用的,。按如下設(shè)置:IP:填入192.168.0.8 (前面三位一定得和你剛才看的IP相同,,第4位任意) 子網(wǎng)掩碼:點(diǎn)擊它,會(huì)自動(dòng)出現(xiàn) 255.255.255.0 默認(rèn)網(wǎng)關(guān):192.168.0.1 (前面三位和你剛才看的一定得相同,,第4位一定是1,。比如你看的是192.168.0.8,則填192.168.0.1,,如果是192.168.8.7,,則填192.168.8.1) 下面的DHCP服務(wù)器:192.168.0.1 (設(shè)置的值與默認(rèn)網(wǎng)關(guān)相同) 備用DHCP服務(wù)器可以不填。這樣做的目的是讓你在局域網(wǎng)內(nèi)有固定的IP,,好方便下面對(duì)端口映射的設(shè)置,。 設(shè)置好后,打開IE瀏覽器,,輸入192.168.0.1(和默認(rèn)網(wǎng)關(guān)的地址相同),。然后輸入你的路由器的設(shè)置帳戶和密碼,進(jìn)入路由器設(shè)置界面,。 然后找到“NAT設(shè)置”(也有叫 虛擬端口影射 虛擬服務(wù)等等的,,但一定有這個(gè)功能的,大家可參見路由器的說(shuō)明書) 然后在底下,,“虛擬服務(wù)名稱”可以隨便填,,只要你知道是什么就可以了,。 “內(nèi)網(wǎng)服務(wù)IP地址”填入192.168.0.8 (必須和你上面設(shè)置的自己的IP相同),“外部端口”和“內(nèi)部端口”填入相同的值,,都填你軟件使用的端口,!然后“協(xié)議”選擇軟件使用的協(xié)議! 但是使用的端口和協(xié)議怎么得知呢,?你打開你的軟件,,比如BT精靈或者EMULE,然后點(diǎn)“設(shè)置”或者是“選項(xiàng)”,。然后找到關(guān)于“連接”的描述,,會(huì)有使用的端口和協(xié)議。下面列舉一些常用的軟件端口: IE:80端口,,TCP協(xié)議 QQ:4000端口,,TCP協(xié)議/UDP協(xié)議 FTP:21端口 TCP協(xié)議(默認(rèn)是21,但很多建FTP的人都改了端口號(hào)) WAR3:6112端口 TCP協(xié)議 BT精靈:16881端口,,TCP協(xié)議 EMULE:46722端口,,UDP協(xié)議 46622端口,TCP協(xié)議當(dāng)然,,端口都可以自己在軟件里面改變,,當(dāng)然,路由器的設(shè)置也必須隨之改變,。 這些設(shè)置好后,,保存,并退出路由器設(shè)置,,你再使用這些軟件的時(shí)候,,就會(huì)很容易跟別人連接上了!而且速度很快,!最明顯的變化,,就是使用EMULE的用戶會(huì)發(fā)現(xiàn)自己由“LowID”變?yōu)?#8220;HighID”了,有這個(gè)變化也就說(shuō)明設(shè)置成功了,! 另外,,這主要是針對(duì)路由器的內(nèi)網(wǎng)用戶,對(duì)于教育網(wǎng),,由于網(wǎng)關(guān)服務(wù)器我們無(wú)法設(shè)置,,所以比較麻煩,我們也沒法輕易突破或設(shè)置,,對(duì)此我也沒有太好的辦法。 不過,,對(duì)于那些封了魔獸,、QQ,、BT端口的變態(tài)網(wǎng)關(guān),大家可以通過設(shè)置自己的軟件,,改變其運(yùn)行端口,,就可以突破這些限制了!(注意,,不是路由器的設(shè)置?。?br>至于說(shuō)的通過一臺(tái)主機(jī)實(shí)現(xiàn)的局域網(wǎng),則需要在主機(jī)上安裝端口映射的軟件,,比較麻煩,。最好的方法就是如果需要BT,就用主機(jī)去下載,,下完后再通過局域網(wǎng)拖到自己的機(jī)器上 ^_^ 最后,,祝大家都能設(shè)置成功!文章來(lái)源:http://blog.sina.com.cn/s/blog_6444798b0100madv.html |
|
來(lái)自: imzjw > 《網(wǎng)絡(luò)》