一、首先需具有一台外网ip的服务器

1.打开 /etc/ssh/sshd_config,将GatewayPorts参数设为yes
2.systemctl restart sshd.service,重启ssh服务
注意:较低版本的Linux服务器 重启命令为 service sshd restart

二、内网电脑
1.命令:ssh -NTf -R 11111:192.168.31.243:22 root@123.123.123.123
按提示输入远程账号访问密码

参数说明:

  • 11111:                  绑定公网linux的端口号
  • 192.168.31.243:  内网linux的局域网ip 
  • 22:                       内网linux可以ssh连接的端口号。。主要用于与公网linux进行联系的
  • root:                     公网linux的用户名
  • 123.123.123.123:公网linux的ip

注意:请确保公网电脑防火墙设置,需要开放11111端口。。内网的linux虚拟机也要开放22端口(这个默认是开启的)

三、访问(此时还有问题,断线无法重连,请继续往后看)
就是指定把所有访问公网123.123.123.123:11111的请求都映射到内网:192.168.31.243:22上。。

然后任意一台能联网的电脑。使用ssh -p 11111 123.123.123.123就会远程登录到内网192.168.31.243中。。
 

:最后,当内网的电脑(我的虚拟机)重启或者其他方式导致断线。。。那么需要重新连接,此时再执行上面的命令去连接公网ip就会报错。。而且也映射不到当前主机了。。

所以还需要配置自动重连:

1、centos安装autossh

https://blog.csdn.net/qq_36951116/article/details/103205760

2、此时可以使用下面的命令代替第二步的命令。。

autossh -M 55555 -NTf -R 11111:192.168.31.243:22 root@123.123.123.123

 

-M:在55555端口上监听连接的变化,只要断开就重连 ,随便指定一个没占用的端口就行

 

 

Logo

更多推荐