軟體在kcp出現後進行了重構,將其底層udp支援替換為了kcp,使其效率大大提高,在某些惡劣的網路環境下依舊能有不錯的效果。當然,它也是支援tcp模式的,另外它也是支援加密的,在p2p打洞失敗的情況下也能夠自動切換為c/s模式來使用伺服器中轉。需要了解的是,軟體也提供了lite版本,僅支援p2p模式,資料完全不通過任何第三方伺服器中轉,保證了安全性,當然,這就要求了打洞的雙方至少有一方擁有公網ip。
和n2n類似的是,它也支援多個伺服器,能夠在多連線的情況下自動切換負載均衡以便提高速度。還有乙個特殊之處,是其原生支援socks5**,可以在公司網路等特殊網路環境下實現特定需求。
先介紹常規版本
dtunnel_s 啟動時會監聽乙個tcp埠,通過-addr設定,如果需要-ssl(預設是false),那麼要指定-cert載入ssl證書,之後客戶端連線也要開啟-ssl開關(預設是true的) -addrudp 是p2p打洞的輔助udp埠,能提高打洞成功率,對應dtunnel引數-buster指定同樣的ip和埠
#引數說明
-addr:tcp埠位址
-addrudp:udp埠位址,用於p2p輔助打洞
-admin:管理介面,用於提供api方便管理
-https:啟用管理介面的https支援,需要指定-cert和-cert引數,預設關閉
-ssl:啟用ssl支援,啟用需要指定-cert和-cert引數,預設關閉
-cert:證書路徑
-key:證書金鑰路徑
-dbhost:資料庫伺服器
-dbpass:資料庫密碼
-dbuser:資料庫使用者
-replace:如果客戶端註冊名衝突,踢掉之前的,預設關閉
-version:顯示版本
如果要鑑權(即如下方客戶端那樣有啥reg啊,link啊,然後還能限制同一ip使用數量),請配置資料庫(配置資料庫後客戶端必須要指定key引數才能連上,這玩意是資料庫裡的authkey欄位),資料庫的初始化sql
另外操作要麼自己往裡面填資料,要麼用admin的api
dtunnel_s 支援遠端介面管理,如果需要,可通過-admin 指定ip:埠,比如-admin 127.0.0.1:1234
支援的命令列表
列出所有reg的使用者
列出所有link到a的會話
踢掉會話號為1的客戶端(link端)
踢掉reg a的客戶端
廣播訊息,type(s:reg端,c:link端,a:所有客戶端),msg訊息內容,quit(預設引數,非空則廣播後客戶端被踢掉)
(使用者管理相關api,需要連線mysql)
配置mysql需要用到auth/auth.sql 建表語句,建表前請先建立資料庫dogtunnel
連線mysql需要在啟動引數中新增 -dbhost -dbuser -dbpass 引數,加了mysql之後就必須通過-key才能登入伺服器
mysql的使用方法請自行學習
usersetting下面有多個子命令(直接拼在上面主api後面)
&action=list&limita=0&limitb=10,分頁列出使用者資訊
&action=limit&user=aaa&size=10000 限制使用者aaa的c/s模式流量上線為10k(每日)
&action=add&user=aaa&passwd=1111&type=admin 新增使用者aaa,密碼1111,型別type(admin管理員(最高許可權),black黑名單,super高階使用者,type不傳預設普通使用者),返回的key使用者dtunnel 的-key引數
&action=get&user=aaa 返回aaa的使用者資訊
&action=del&user=aaa 刪除aaa
&action=key&user=aaa 返回aaa的新key
&action=set&user=aaa&type=super&serven=10&sessionn=100&pipen=10&sameip=10,對aaa的賬號做功能限制,type指定的型別有預設的幾套配置,也可以通過指定servern(可以註冊的名字數上限),sessionn(每個註冊的伺服器可以連線的會話數上限),pipen(每個會話最多支援幾條p2p管道),sameip(同ip可註冊服務數上限)來單獨指定配置
至於客戶端
遠端:dtunnel-addip127.0.0.1-buster1.2.3.4:8018-remote1.2.3.4::8000-clientkey testkey-compress-delay2-dnscache20-encrypt-kcp k2:v2-reg test-local:80-mode0-ssl
近端:dtunnel-addip127.0.0.1-buster1.2.3.4:8018-remote1.2.3.4::8000-clientkey testkey-compress-delay2-dnscache20-encrypt-kcp k2:v2-link test-local:8888-mode0-ssl
#引數說明
-addip:出口ip(單個或列表)
-buster:打洞伺服器,用於p2p模式
-remote:遠端伺服器,用於c/s模式
-clientkey:客戶端key,用於遠端和近端認證,需一致
-compress:壓縮資料,遠端和近端需一致
-debug:除錯模式
-delay:打洞失敗後重試延遲,秒
-dnscache:dns快取有效期,如果大於0將定時清空dns快取,分鐘
-encrypt:p2p模式加密
-f:從檔案中載入配置
-kcp:kcp配置,遠端和近端需一致
-key:訪問key(服務端資料庫中的authkey)
-reg:註冊名,遠端使用
-link:連線的註冊名,近端使用,用於識別連線遠端
-local:本地監聽埠,填socks5則為socks5**服務
-mode:連線模式(0:p2p打洞失敗後切換為c/s1:只使用p2p2:只使用c/s)
-pipen:管道數
-ds:資料糾錯??僅在p2p模式有效,遠端和近端需一致
-ps:奇偶校驗??僅在p2p模式有效,遠端和近端需一致
-ssl:啟用ssl支援,預設啟用,服務端沒有啟用的話請使用-ssl=false來關閉
-v:輸出詳細日誌
-version:顯示版本
NPS內網穿透穿透
最近使用公司的虛擬專用網導致我想自己試試怎麼搞出來的,有兩個行動硬碟想嘗試買個樹莓派來做個遠端可以訪問本地的網盤,就拿電腦測試一下。我看大概有以下種工具 frp nps 蒲公英和花生殼。後兩者都是有部分限制的,但不需要自己有伺服器。前兩個適合有伺服器的,我就嘗試了一下nps,我這裡主要試了 的 具體...
ssh內網穿透
總共有3臺機械人 company 能夠訪問外網,沒用公網ip person 能夠訪問外網,沒有公網ip server 具有公網ip person電腦想在家裡遠端ssh登陸到公司的機器 server sudo apt get install openssh server vim etc ssh ssh...
內網穿透 Sunny Ngrok
背景 其實是想自己做個什麼專案可以讓大家都看得到,本來想的是自己租乙個伺服器再租乙個網域名稱。但是一直沒有什麼好的想法,也就一直沒有租,總想著有了想法之後在租,要不多浪費錢是吧 雖然沒有多少錢 然後就遇到我 偉大 的朋友給我介紹了乙個內網穿透的工具 sunny ngrok 內網穿透工具不只這乙個 還...