能否在外部也能访问公司的Linux服务器。
解决办法
利用外网服务器以及反向SSH搭一条通道,就可以利用外网的服务器登录内网的服务器。
两台服务器配置
建立通道
在内网服务器上执行命令
ssh -NfR 1122:localhost:22 root@100.100.100.100 -p 22
其中,这条命令的意思是在后台执行(-f),不实际连接而是做port forwarding(-N),做反向ssh(-R)
将远程服务器的1122端口映射成连接本机与该服务器的反向ssh的端口。
root为外网服务器的登录名,100.100.100.100为外网IP(这里我瞎写的)
登录内网服务器
首先使用SSH登录外网服务器
然后执行以下命令就可以进行登录内网服务器了
www是指你登录内网服务器所用的用户名
ssh连接中断问题
使用autossh保持连接
ubuntu安装autossh
sudo apt-get install autossh
centos安装autossh
yum install autossh
在内网服务器上执行autossh命令,代替之前的ssh命令
autossh -M 3322 -NfR 1122:localhost:22 root@100.100.100.100 -p 22
如果还出现断线
修改外网服务器 /etc/ssh/sshd_config
ClientAliveInterval 120
ClientAliveCountMax 0
修改内网服务器 /etc/ssh/ssh_config
增加一行:
Host *
ServerAliveInterval 15 #每隔15s向服务器发送一次 alive 请求
GSSAPIAuthentication yes