2020-09-23 【P2P overlay network】基于公網(wǎng)虛擬私網(wǎng)工具

本項(xiàng)目提供云網(wǎng)絡(luò)服務(wù),用于多地區(qū)組網(wǎng)技術(shù),相當(dāng)于將多個(gè)地域網(wǎng)絡(luò)虛擬統(tǒng)一局域網(wǎng)该互,方便團(tuán)隊(duì)跨地域網(wǎng)絡(luò)訪問;提供統(tǒng)一控制面板進(jìn)行管理听哭,并且利用P2P技術(shù)提升節(jié)點(diǎn)近點(diǎn)加速慢洋;如果多個(gè)節(jié)點(diǎn)處于內(nèi)網(wǎng)塘雳,那么會(huì)優(yōu)先采用內(nèi)網(wǎng)進(jìn)行互通陆盘;并且支持多云轉(zhuǎn)發(fā)管理;根據(jù)網(wǎng)絡(luò)時(shí)延動(dòng)態(tài)路由败明;

原理圖:

image

版本特性:

  • 支持 windows & linux 客戶端隘马、服務(wù)端程序
  • 支持手動(dòng)網(wǎng)絡(luò)配置,云轉(zhuǎn)發(fā)妻顶;
  • 支持多網(wǎng)絡(luò)平面隔離酸员;

軟件下載地址:https://github.com/easymesh/easymesh/releases/

根據(jù)您所需要部署的形態(tài)決定蜒车;客戶端、服務(wù)端沒有綁定限制幔嗦,支持windows & linux 混合部署使用酿愧;提供 gateway 和 transfer 兩個(gè)可執(zhí)行文件;gateway 屬于客戶端邀泉,transfer 屬于服務(wù)端嬉挡,該版本transfer還不支持分布式部署,部署transfer需要準(zhǔn)備一個(gè)公網(wǎng)IP地址汇恤;

安裝部署

1庞钢、準(zhǔn)備工作:

部署gateway程序需要完成如下平臺(tái)的檢查和安裝;

windows

  • 安裝 tap windows 虛擬網(wǎng)卡驅(qū)動(dòng)因谎; win10 win7

linux

  • 查看tun設(shè)備是否存在; ls -ail /dev/net/tun

2基括、啟動(dòng)transfer程序

需要提前準(zhǔn)備一臺(tái)linux/windows云主機(jī),并且綁定固定公網(wǎng)IP地址财岔,不一定需要綁定域名风皿;以及兩個(gè)本地linux/windows測(cè)試節(jié)點(diǎn);

啟動(dòng)命令:

Usage of transfer.exe:
  -bind int
        transfer server bind port (default 8000)
  -debug
        debug mode
  -help
        usage
  -log string
        log dir (default "/opt/log")
  -nums int
        transfer server instance nums (default 1000)
  -public string
        public IP (default "www.youdomain.com")
  • -bind: 所需要綁定的UDP起始端口使鹅,注意轉(zhuǎn)發(fā)transfer服務(wù)支持綁定多個(gè)端口揪阶,每個(gè)端口分別對(duì)于一個(gè)namespace,配合 -nums 參數(shù)患朱,可以創(chuàng)建多個(gè)獨(dú)立轉(zhuǎn)發(fā)地址空間鲁僚;默認(rèn)端口范偉為:8000~9000,如果其中一個(gè)端口被占用裁厅,則會(huì)忽略并跳過該端口冰沙;
  • -debug: 調(diào)試模式,所以日志將打印到控制臺(tái)执虹,不會(huì)輸出到目錄拓挥;方便問題定位;
  • -log: 運(yùn)行日志的目錄地址袋励;默認(rèn)會(huì)記錄30天運(yùn)行日志侥啤,并且支持zip壓縮;建議您保留大約1GB以上磁盤空間茬故;
  • -nums: 命名空間數(shù)量盖灸,也對(duì)應(yīng)服務(wù)實(shí)例數(shù)量,與-bind結(jié)合使用磺芭,請(qǐng)保留相應(yīng)端口范圍赁炎;
  • -public: 云服務(wù)主機(jī)對(duì)外IP或者域名;需要公網(wǎng)可以訪問的IPv4地址钾腺;

注意:使用方式不區(qū)分windows徙垫、linux平臺(tái)讥裤,啟動(dòng)后保持后臺(tái)長(zhǎng)時(shí)間運(yùn)行即可;

3姻报、啟動(dòng)gateway程序

在客戶端側(cè)己英,可以連接外網(wǎng)訪問云主機(jī)的節(jié)點(diǎn)都可以;

Usage of gateway.exe:
  -debug
        debug mode
  -help
        usage
  -iface string
        used interface or ip address (default "eth0")
  -ip string
        virtual IP (default "172.168.0.1")
  -log string
        log dir (default "/opt/log")
  -trans string
        transfer public address (default "www.youdomain.com:8000")
  • -debug: 調(diào)試模式吴旋,所以日志將打印到控制臺(tái)剧辐,不會(huì)輸出到目錄;方便問題定位邮府;
  • -ip: 在當(dāng)前虛擬網(wǎng)絡(luò)中的虛擬地址IP荧关,目前支持IPv4地址,例如:172.168.x.x褂傀,默認(rèn)255.255.0.0網(wǎng)段忍啤,注意:不能與自身其他網(wǎng)卡網(wǎng)段沖突;
  • -log: 運(yùn)行日志的目錄地址仙辟;默認(rèn)會(huì)記錄30天運(yùn)行日志同波,并且支持zip壓縮;建議您保留大約1GB以上磁盤空間叠国;
  • -trans: 連接相應(yīng)轉(zhuǎn)發(fā)服務(wù)未檩,就是對(duì)應(yīng)transfer的公網(wǎng)IP地址和端口;如果選用一個(gè)端口粟焊,那么其他需要加入同一個(gè)網(wǎng)絡(luò)namespace的節(jié)點(diǎn)冤狡,端口需要保持一致;
  • -iface: 綁定本地網(wǎng)卡名稱或者IP地址项棠,比如:在linux環(huán)境下面默認(rèn)eth0悲雳,而windows相對(duì)復(fù)雜;可以通過 控制面板 -> 網(wǎng)絡(luò)與共享中心 -> 更改適配器設(shè)置 里面進(jìn)行查看香追;例如截圖: 對(duì)應(yīng)名稱為: vEthernet (wlan)或者查看IP地址方式合瓢,例如:linux 通過命令 ifconfig 查看相應(yīng)IP地址,例如如下eth0對(duì)應(yīng)的IP地址為:192.168.3.2
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.3.2  netmask 255.255.255.0  broadcast 192.168.3.255
        inet6 fe80::215:5dff:fe03:b00  prefixlen 64  scopeid 0x20<link>
...

windows通過查看ipconfig命令查看地址:

以太網(wǎng)適配器 vEthernet (wlan):
連接特定的 DNS 后綴 . . . . . . . :
本地鏈接 IPv6 地址. . . . . . . . : fe80::5523:9866:1b83:5ad7%9
IPv4 地址 . . . . . . . . . . . . : 192.168.3.11
子網(wǎng)掩碼  . . . . . . . . . . . . : 255.255.255.0
默認(rèn)網(wǎng)關(guān). . . . . . . . . . . . . : 192.168.3.1

注意:使用方式不區(qū)分windows透典、linux平臺(tái)晴楔,啟動(dòng)后保持后臺(tái)運(yùn)行即可;

4峭咒、測(cè)試連通性:

兩個(gè)部署gateway的節(jié)點(diǎn)互ping對(duì)方的虛擬IP地址税弃;結(jié)果如下表示成功;

root@node2:~# ping 172.168.3.1
PING 172.168.3.1 (172.168.3.1) 56(84) bytes of data.
64 bytes from 172.168.3.1: icmp_seq=1 ttl=126 time=2.78 ms
64 bytes from 172.168.3.1: icmp_seq=2 ttl=126 time=3.65 ms
64 bytes from 172.168.3.1: icmp_seq=3 ttl=126 time=2.85 ms

5讹语、測(cè)試環(huán)境

為了方便大家測(cè)試钙皮,我們提供一臺(tái)位于云主機(jī)服務(wù)器蜂科,已經(jīng)部署transfer程序顽决,提供大家測(cè)試使用短条,1Mb帶寬,資源有限:

121.37.163.197:5000 ~ 121.37.163.197:6000
注意:任意選擇一個(gè)端口測(cè)試即可才菠,注意可能會(huì)有人同時(shí)使用一個(gè)端口茸时;盡量測(cè)試完成后停止使用,避免與其他人沖突赋访;

大家在本地部署gateway程序就可以了可都;準(zhǔn)備兩臺(tái)節(jié)點(diǎn);

參考命令:

windows:

gateway.exe -ip 172.168.3.1 -trans 121.37.163.197:5555 -iface "vEthernet (wlan)" -debug

linux:

./gateway -ip 172.168.3.2 -trans 121.37.163.197:5555 -iface "eth0" -debug

兩個(gè)節(jié)點(diǎn)相互ping對(duì)方虛擬IP蚓耽;

root@node2:~# ping 172.168.3.1
PING 172.168.3.1 (172.168.3.1) 56(84) bytes of data.
64 bytes from 172.168.3.1: icmp_seq=1 ttl=126 time=2.78 ms
64 bytes from 172.168.3.1: icmp_seq=2 ttl=126 time=3.65 ms
64 bytes from 172.168.3.1: icmp_seq=3 ttl=126 time=2.85 ms

注意:如果兩個(gè)節(jié)點(diǎn)在同一個(gè)局域網(wǎng)渠牲,那么他們互ping時(shí)延也會(huì)很低,如果多個(gè)地域步悠,會(huì)自動(dòng)走公網(wǎng)轉(zhuǎn)發(fā)服務(wù)签杈,所以時(shí)延會(huì)較長(zhǎng);

也可以通過 ipconfig鼎兽、ifconfig 查看虛擬網(wǎng)卡IP地址信息答姥;

mesh0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1472
        inet 172.168.3.2  netmask 255.255.255.255  destination 172.168.3.2
...
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市谚咬,隨后出現(xiàn)的幾起案子鹦付,更是在濱河造成了極大的恐慌,老刑警劉巖择卦,帶你破解...
    沈念sama閱讀 206,602評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件敲长,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡秉继,警方通過查閱死者的電腦和手機(jī)潘明,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來秕噪,“玉大人钳降,你說我怎么就攤上這事‰缃恚” “怎么了遂填?”我有些...
    開封第一講書人閱讀 152,878評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)澈蝙。 經(jīng)常有香客問我吓坚,道長(zhǎng),這世上最難降的妖魔是什么灯荧? 我笑而不...
    開封第一講書人閱讀 55,306評(píng)論 1 279
  • 正文 為了忘掉前任礁击,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘哆窿。我一直安慰自己链烈,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評(píng)論 5 373
  • 文/花漫 我一把揭開白布挚躯。 她就那樣靜靜地躺著强衡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪码荔。 梳的紋絲不亂的頭發(fā)上漩勤,一...
    開封第一講書人閱讀 49,071評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音缩搅,去河邊找鬼越败。 笑死,一個(gè)胖子當(dāng)著我的面吹牛硼瓣,可吹牛的內(nèi)容都是我干的眉尸。 我是一名探鬼主播,決...
    沈念sama閱讀 38,382評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼巨双,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼噪猾!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起筑累,我...
    開封第一講書人閱讀 37,006評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤袱蜡,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后慢宗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坪蚁,經(jīng)...
    沈念sama閱讀 43,512評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評(píng)論 2 325
  • 正文 我和宋清朗相戀三年镜沽,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了敏晤。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,094評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡缅茉,死狀恐怖嘴脾,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蔬墩,我是刑警寧澤译打,帶...
    沈念sama閱讀 33,732評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站拇颅,受9級(jí)特大地震影響奏司,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜樟插,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評(píng)論 3 307
  • 文/蒙蒙 一韵洋、第九天 我趴在偏房一處隱蔽的房頂上張望竿刁。 院中可真熱鬧,春花似錦搪缨、人聲如沸食拜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至旅赢,卻和暖如春齿桃,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背煮盼。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工短纵, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人僵控。 一個(gè)月前我還...
    沈念sama閱讀 45,536評(píng)論 2 354
  • 正文 我出身青樓香到,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親报破。 傳聞我的和親對(duì)象是個(gè)殘疾皇子悠就,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評(píng)論 2 345