wget https://github.com/esrrhs/pingtunnel/releases/download/2.5/pingtunnel_linux_amd64.zip
./pingtunnel-by-esrrhs -type server
不过这是运行在前台的命令。我们可以利用boa把它运行到后台:
boa /root/pingtunnel-by-esrrhs -type server && reboot
服务器端搭建完成。
在本地机器mac上。首先安装go环境,然后,
mkdir pingtunnel_darwin_amd64
mv pingtunnel_darwin_amd64.zip pingtunnel_darwin_amd64
cd pingtunnel_darwin_amd64
unzip pingtunnel_darwin_amd64.zip
./pingtunnel -h
显示:
通过伪造ping,把tcp/udp/sock5流量通过远程服务器转发到目的服务器上。用于突破某些运营商封锁TCP/UDP流量。
By forging ping, the tcp/udp/sock5 traffic is forwarded to the destination server through the remote server. Used to break certain operators to block TCP/UDP traffic.
Usage:
// server
pingtunnel -type server
// client, Forward udp
pingtunnel -type client -l 127.0.0.1:53 -s SERVER_IP -t 8.8.8.8:53
// client, Forward tcp
pingtunnel -type client -l 127.0.0.1:2299 -s SERVER_IP -t TARGET_SERVER_IP:port -tcp 1
// client, Forward sock5, implicitly open tcp, so no target server is needed.
pingtunnel -type client -l 127.0.0.1:2299 -s SERVER_IP -sock5 1
-type 服务器或者客户端
client or server
服务器参数server param:
-key 设置的密码,默认0
Set password, default 0
-nolog 不写日志文件,只打印标准输出,默认0
Do not write log files, only print standard output, default 0 is off
-noprint 不打印屏幕输出,默认0
Do not print standard output, default 0 is off
-loglevel 日志文件等级,默认info
log level, default is info
-maxconn 最大连接数,默认0,不受限制
the max num of connections, default 0 is no limit
-maxprt server最大处理线程数,默认100
max process thread in server, default 100
-maxprb server最大处理线程buffer数,默认1000
max process thread's buffer in server, default 1000
-conntt server发起连接到目标地址的超时时间,默认1000ms
The timeout period for the server to initiate a connection to the destination address. The default is 1000ms.
客户端参数client param:
-l 本地的地址,发到这个端口的流量将转发到服务器
Local address, traffic sent to this port will be forwarded to the server
-s 服务器的地址,流量将通过隧道转发到这个服务器
The address of the server, the traffic will be forwarded to this server through the tunnel
-t 远端服务器转发的目的地址,流量将转发到这个地址
Destination address forwarded by the remote server, traffic will be forwarded to this address
-timeout 本地记录连接超时的时间,单位是秒,默认60s
The time when the local record connection timed out, in seconds, 60 seconds by default
-key 设置的密码,默认0
Set password, default 0
-tcp 设置是否转发tcp,默认0
Set the switch to forward tcp, the default is 0
-tcp_bs tcp的发送接收缓冲区大小,默认1MB
Tcp send and receive buffer size, default 1MB
-tcp_mw tcp的最大窗口,默认20000
The maximum window of tcp, the default is 20000
-tcp_rst tcp的超时发送时间,默认400ms
Tcp timeout resend time, default 400ms
-tcp_gz 当数据包超过这个大小,tcp将压缩数据,0表示不压缩,默认0
Tcp will compress data when the packet exceeds this size, 0 means no compression, default 0
-tcp_stat 打印tcp的监控,默认0
Print tcp connection statistic, default 0 is off
-nolog 不写日志文件,只打印标准输出,默认0
Do not write log files, only print standard output, default 0 is off
-noprint 不打印屏幕输出,默认0
Do not print standard output, default 0 is off
-loglevel 日志文件等级,默认info
log level, default is info
-sock5 开启sock5转发,默认0
Turn on sock5 forwarding, default 0 is off
-profile 在指定端口开启性能检测,默认0不开启
Enable performance detection on the specified port. The default 0 is not enabled.
-s5filter sock5模式设置转发过滤,默认全转发,设置CN代表CN地区的直连不转发
Set the forwarding filter in the sock5 mode. The default is full forwarding. For example, setting the CN indicates that the Chinese address is not forwarded.
-s5ftfile sock5模式转发过滤的数据文件,默认读取当前目录的GeoLite2-Country.mmdb
The data file in sock5 filter mode, the default reading of the current directory GeoLite2-Country.mmdb
sudo ./pingtunnel -type client -l 127.0.0.1:53 -s my-vps-ip -t 8.8.8.8:53
实际使用例子:
sudo wg-quick up wg0
sudo networksetup -setdnsservers "Wi-Fi" 127.0.0.1
sudo ./pingtunnel -type client -l :53 -s my-vps-ip -t 8.8.8.8:53
项目地址:https://github.com/esrrhs/pingtunnel
这个pingtunnel-by-esrrhs程序用来解决dns污染问题很好用,比simple-dns-by-wynemo:
但是pingtunnel-by-esrrhs运行一段时间后,可能变得不正常.
利用pingtunnel-by-esrrhs翻墙(可能会突然翻墙失败,估计原因是未加密的连接)
mkdir pingtunnel_darwin_amd64
mv pingtunnel_darwin_amd64.zip pingtunnel_darwin_amd64
cd pingtunnel_darwin_amd64
unzip pingtunnel_darwin_amd64.zip
./pingtunnel -h
sudo ./pingtunnel -type client -l 127.0.0.1:2299 -s SERVER_IP -sock5 1
不要关闭此终端,然后设置浏览器的socks5 proxy address为127.0.0.1 ,端口为2299,浏览器即可翻墙。
=========================
以上是下载可执行文件来执行。也可通过go get的办法来编译:
cd $GOPATH
GO111MODULE=off go get -u -v github.com/esrrhs/pingtunnel/
which pingtunnel
显示:
/root/go1.16/go/gopath/bin/pingtunnel
说明编译pingtunnel成功。