早上咨询了 @lixiaohong 同学,我的ssh -D经常被重置的一个可能原因是硬件防火墙关闭不活跃链接。解决方法是在/etc/ssh_config下面加上一个配置:
ServerAliveInterval 10
这样10秒钟会发送一次keepalive请求。防火墙就不会以为是死连接了。还有一个重新打开ssh -D的脚本:
kill $(ps auwx | grep qTfnNC | grep -v grep | awk '{ print $2 }') && ssh -qTfnNC -D 7777 user@yourdomain.com