wstunnel是靜態(tài)二進(jìn)制文件,通過Websocket或HTTP2協(xié)議傳輸所有流量,它可以繞過防火墻/DPI。大多數(shù)時(shí)候,當(dāng)你使用公共網(wǎng)絡(luò)時(shí),你都在某種防火墻或代理后面。它們的目的之一是限制你只能使用某些類型的協(xié)議,并且只能查閱網(wǎng)絡(luò)的一個(gè)子集。如今,最廣泛使用的協(xié)議是http,并且事實(shí)上是由第三方設(shè)備允許的。Wstunnel使用與http兼容的websocket協(xié)議來繞過防火墻和代理。Wstunnel允許您通過隧道傳輸您想要的任何流量,并訪問您需要的任何資源/站點(diǎn)。項(xiàng)目的靈感來自這個(gè)項(xiàng)目https://github.com/mhzed/wstunnel,但由于我不想安裝npm和nodejs來使用這個(gè)工具,我在Rust中重新制作并改進(jìn)了它。
良好的錯(cuò)誤消息和調(diào)試信息
靜態(tài)正向和反向隧道(TCP、UDP、Unix套接字)
動(dòng)態(tài)隧道傳輸(TCP、UDP Socks5代理和透明代理)
支持http代理(當(dāng)在一個(gè)代理后面時(shí))
支持帶有證書自動(dòng)重新加載的tls/https服務(wù)器(帶有嵌入的自簽名證書或您自己的證書)
支持IPv6
支持Websocket和HTTP2作為傳輸協(xié)議(Websocket性能更高)
獨(dú)立的二進(jìn)制文件(只需在需要的地方進(jìn)行cp)
懂得了它的好處,那么講一下它的用法。

最簡單的用例:
在遠(yuǎn)程主機(jī)上,通過在終端鍵入以下命令啟動(dòng)wstunnel的服務(wù)器
wstunnel server wss://[::]:8080
這將創(chuàng)建一個(gè)websocket服務(wù)器,并偵聽主機(jī)上的端口8080。在客戶端,使用此命令通過websocket隧道轉(zhuǎn)發(fā)流量
wstunnel client -L socks5://127.0.0.1:8888 --connection-min-idle 5 wss://myRemoteHost:8080
此命令將在環(huán)回接口的端口8888上創(chuàng)建一個(gè)socks5服務(wù)器,并動(dòng)態(tài)轉(zhuǎn)發(fā)流量。connection min idle 5正在進(jìn)行優(yōu)化,以創(chuàng)建連接到服務(wù)器的5個(gè)連接池,從而加快新隧道的建立。使用firefox,您可以使用此隧道設(shè)置代理,方法是在網(wǎng)絡(luò)首選項(xiàng)127.0.0.1:8888中設(shè)置并選擇socks5 proxy。當(dāng)使用SOCKS v5為服務(wù)器解析DNS名稱而不是您的本地計(jì)算機(jī)時(shí),請確保選中“代理DNS”選項(xiàng)。curl -x socks5h://127.0.0.1:8888 http://google.com/#Please note h after the 5, it is to avoid curl resolving DNS name locally
如果希望將wstunnel用作ssh的代理命令的一部分,則可以將stdio指定為客戶端的源端口。ssh -o ProxyCommand="wstunnel client -L stdio://%h:%p ws://myRemoteHost:8080" my-server
另一個(gè)有用的例子是當(dāng)您想要繞過http代理(例如公司代理)時(shí)。最可靠的方法是使用wstunnel,如下所述在激活tls的情況下啟動(dòng)wstunnel服務(wù)器wstunnel server wss://[::]:443 --restrict-to 127.0.0.1:22
服務(wù)器將使用端口443(https)偵聽任何接口,并限制流量僅轉(zhuǎn)發(fā)到ssh守護(hù)進(jìn)程。請注意,服務(wù)器將使用加密算法較弱的自簽名證書。這樣做是為了在遵守tls的同時(shí)增加盡可能少的開銷。不要依賴wstunnel來保護(hù)您的隱私,如果這是您關(guān)注的問題之一,您應(yīng)該只轉(zhuǎn)發(fā)設(shè)計(jì)上已經(jīng)安全的流量(即https或vpn流量)現(xiàn)在在客戶端主機(jī)上啟動(dòng)wstunnel客戶端wstunnel client -L tcp://9999:127.0.0.1:22 -p http://mycorporateproxy:8080 wss://myRemoteHost:443
它將在9999端口上啟動(dòng)一個(gè)tcp服務(wù)器,該服務(wù)器將與公司代理聯(lián)系,與遠(yuǎn)程主機(jī)協(xié)商tls連接,并將流量轉(zhuǎn)發(fā)到遠(yuǎn)程主機(jī)上的ssh守護(hù)進(jìn)程。現(xiàn)在,您可以在本地機(jī)器使用ssh訪問服務(wù)器ssh -p 9999 login@127.0.0.1
該文章在 2024/3/28 22:25:59 編輯過