又一款很牛的websocket工具,wstunnel隧道内网穿透工具
|
admin
2024年3月28日 22:25
本文热度 801
|
wstunnel是静态二进制文件,通过Websocket或HTTP2协议传输所有流量,它可以绕过防火墙/DPI。大多数时候,当你使用公共网络时,你都在某种防火墙或代理后面。它们的目的之一是限制你只能使用某些类型的协议,并且只能查阅网络的一个子集。如今,最广泛使用的协议是http,并且事实上是由第三方设备允许的。Wstunnel使用与http兼容的websocket协议来绕过防火墙和代理。Wstunnel允许您通过隧道传输您想要的任何流量,并访问您需要的任何资源/站点。项目的灵感来自这个项目https://github.com/mhzed/wstunnel,但由于我不想安装npm和nodejs来使用这个工具,我在Rust中重新制作并改进了它。
良好的错误消息和调试信息
静态正向和反向隧道(TCP、UDP、Unix套接字)
动态隧道传输(TCP、UDP Socks5代理和透明代理)
支持http代理(当在一个代理后面时)
支持带有证书自动重新加载的tls/https服务器(带有嵌入的自签名证书或您自己的证书)
支持IPv6
支持Websocket和HTTP2作为传输协议(Websocket性能更高)
独立的二进制文件(只需在需要的地方进行cp)
懂得了它的好处,那么讲一下它的用法。
最简单的用例:
在远程主机上,通过在终端键入以下命令启动wstunnel的服务器
wstunnel server wss://[::]:8080
这将创建一个websocket服务器,并侦听主机上的端口8080。在客户端,使用此命令通过websocket隧道转发流量
wstunnel client -L socks5://127.0.0.1:8888 --connection-min-idle 5 wss://myRemoteHost:8080
此命令将在环回接口的端口8888上创建一个socks5服务器,并动态转发流量。connection min idle 5正在进行优化,以创建连接到服务器的5个连接池,从而加快新隧道的建立。使用firefox,您可以使用此隧道设置代理,方法是在网络首选项127.0.0.1:8888中设置并选择socks5 proxy。当使用SOCKS v5为服务器解析DNS名称而不是您的本地计算机时,请确保选中“代理DNS”选项。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
另一个有用的例子是当您想要绕过http代理(例如公司代理)时。最可靠的方法是使用wstunnel,如下所述wstunnel server wss://[::]:443 --restrict-to 127.0.0.1:22
服务器将使用端口443(https)侦听任何接口,并限制流量仅转发到ssh守护进程。请注意,服务器将使用加密算法较弱的自签名证书。这样做是为了在遵守tls的同时增加尽可能少的开销。不要依赖wstunnel来保护您的隐私,如果这是您关注的问题之一,您应该只转发设计上已经安全的流量(即https或vpn流量)wstunnel client -L tcp://9999:127.0.0.1:22 -p http://mycorporateproxy:8080 wss://myRemoteHost:443
它将在9999端口上启动一个tcp服务器,该服务器将与公司代理联系,与远程主机协商tls连接,并将流量转发到远程主机上的ssh守护进程。ssh -p 9999 login@127.0.0.1
该文章在 2024/3/28 22:25:59 编辑过