翻墙:centos7 autossh永久通道
发布于 9 个月前 作者 18820227745 2435 次浏览 来自 分享

ssh通道的缺点就是每隔一段时间会断开一次,无法永久有效。而autossh正好解决了这一问题。

修改ssh配置

$ sudo vi /etc/ssh/sshd_config

_打开保持tcp连接设置

TCPKeepAlive yes

重启ssh

$sudo systemctl restart sshd.service 

autossh命令

安装autossh

$ sudo yum install autossh

autossh执行命令

autossh -M 5678 -NR 8888:localhost:80 [email protected]

-M 5678: 通过5678端口监视连接状态,连接有问题时就会自动重连 -N:不允许执行远程命令,只做端口转发 Do not execute a remote command. This is useful for just forwarding ports (protocol version 2 only). -R 8888:localhost:80: 将 B 主机的80端口和 VPS 的8888端口绑定,相当于远程端口映射

将autossh通道做出开机自启服务

#cd /usr/lib/systemd/system
#touch autosshTest.service
#vi autosshTest.service

在autosshTest.service中新建以下内容

[Unit]
Description=autosshTest.service
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=simple
PIDFile=/run/autosshTest.pid
ExecStart=/usr/bin/autossh -M 5678 -NR 8888:localhost:80 [email protected]
Restart=/bin/kill -s QUIT $MAINPID && /usr/bin/autossh -M 5678 -NR 8888:localhost:80 [email protected]
ExecReload=
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
RemainAfterExit=yes
ExecStartPre=

[Install]
WantedBy=multi-user.target

service文件配置可以参考systemd.service 中文手册

运行命令使服务开机自启

sudo systemctl enable autosshTest.service

启动服务

systemctl start autosshTest

翻墙

设置浏览器代理端口为你设置的端口(8888)就行,浏览器代理,软件代理方式有很多我就不说了

2 回复

-R 1234:localhost:22: 将 B 主机的22端口和 VPS 的1234端口绑定 这样原来的ssh登陆会受影响吗?

@yakczh 不会,ssh为什么被断开,是因为你长时间没有和服务器进行交互,autossh就是每隔一段时间向服务器发送一个信号来保持连接有效。而不是断开后重新连接。原理上只有有个连接。应该不会对原来的有影响。

回到顶部