使用这个工具可以让你的某些被TCP阻断的机器重新复活。玩法很多,这里就介绍几个基本的用法。
首先pingtunnel可以直接用来翻墙,无需套用其他的协议,不过貌似不太推荐?这里先介绍这个最基本的用法,后续再介绍套shadowsocks。
服务端系统使用Debian10,安装一些需要用到的工具:
apt -y update apt -y install wget unzip supervisor shadowsocks-libev
下载/解压pingtunnel二进制文件:
mkdir -p /opt/pingtunnel && cd /opt/pingtunnel wget https://github.com/esrrhs/pingtunnel/releases/download/2.3/pingtunnel_linux64.zip unzip pingtunnel_linux64.zip
新建一个supervisor配置文件:
nano /etc/supervisor/conf.d/pingtunnel.conf
写入如下配置:
[program:pingtunnel] priority=1 directory=/opt/pingtunnel command=/opt/pingtunnel/pingtunnel -type server -nolog 1 -noprint 1 -key 设置一个你的密码 autostart=true autorestart=true redirect_stderr=true stdout_logfile=/var/log/supervisor/pingtunnel.log
更新supervisor配置即可:
supervisorctl update
查看运行状态:
supervisorctl status pingtunnel
类似如下回显说明服务端运行正常:
pingtunnel RUNNING pid 5450, uptime 0:16:10
服务端就部署好了,接下来下载对应客户端系统架构的二进制文件:
打开cmd/powershell之类的终端,执行下面的命令即可建立一个隧道:
./pingtunnel.exe -type client -l :4455 -s 服务器公网IP -key 你之前设置的密码 -sock5 1 -nolog 1
浏览器SwitchyOmega插件设置socks5代理即可:

这样用的话毕竟不太方便,所以我们还可以用来套shadowsocks,在之前我们已经在服务器上安装好了shadowsocks,这里直接编辑配置文件就行:
nano /etc/shadowsocks-libev/config.json
修改配置为如下所示:
{ "server":["::", "0.0.0.0"], "mode":"tcp_and_udp", "server_port":60000, "local_port":1080, "password":"设置你的ss连接密码", "timeout":60, "method":"chacha20-ietf-poly1305" }
注:shadowsocks端口监听在60000。
重启/设置开机自启shadowsocks:
systemctl restart shadowsocks systemctl enable shadowsocks supervisor
然后在客户端执行如下命令:
./pingtunnel.exe -type client -l :4455 -s 服务器公网IP -t 服务器公网IP:60000 -key 你之前设置的密码 -tcp 1 -nolog 1
最后shadowsocks客户端配置服务器地址为127.0.0.1,端口为4455,密码和加密方式不变:

screen 的使用
安装
一般的linux系统都会自带screen,如果没有安装的话,使用
$ sudo apt-get install screen
或$ sudo yum install screen
新建窗口
新建一个窗口有3种方法:
$ screen #这样就可以新建窗口,进入到一个窗口中,但是这样窗口就没有名字,无法区分他们
$ screen -S name #这样新建一个名字为name的窗口,并入到该窗口中
例如:screen -S count 新建了一个叫count的窗口并进入
$ screen command #这样新建一个窗口并在窗口中执行command,同样没有名字
例如:screen python ./a.py 新建并执行a.py程序
会话分离
我们在一个窗口运行某个程序之后,想退出登录关闭terminal干点别的事,让程序在后台运行。这时就需要和窗口会话分离,有2种方式:
1)快捷键Ctrl a表示进入命令模式
在当前会话窗口中按Ctrl a +d快捷键可以实现分离,这时窗口会弹出[detached]的提示,并回到主窗口。
2)screen -d name #远程detach某个session,前提是已经跳出了name窗口
这样妈妈再也不用担心我们关掉terminal程序就不运行了。
恢复会话窗口
首先查看有哪些窗口正在运行
$ screen -ls #列出窗口列表
There is a screen on:
2637.count (12/17/2015/10:00:32 AM) (Detached)
$ screen -r 2637 #进入2637线程,恢复count会话窗口
这样就能回到count窗口了
杀死会话窗口
如果想关掉一个多余的窗口,有3种方法:
kill -9 threadnum 例如在上面的2637,kill -9 2637 即可杀死线程,当然就杀死了窗口
使用Ctrl a +k 杀死当前窗口和窗口中运行的程序
使用Ctrl a 然后输入quit命令退出Screen会话。需要注意的是,这样退出会杀死所有窗口并退出其中运行的所有程序
清除死去的窗口
当窗口被杀死后,再用screen -ls 可以看到该窗口后面的(???dead)字样,说明窗口死了,但是仍在占用空间。这时需要清除窗口
$ screen -wipe #自动清除死去的窗口
这样的窗明几净了~
————————————————
版权声明:本文为CSDN博主「Nicoder」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hejunqing14/article/details/50338161