一. 外网设置
1.1 配置ssh
- 打开
/etc/ssh/sshd_config
, 将GatewayPorts
设为yes
- 执行
sudo service sshd restart
重启sshd服务
1.2 配置防火墙
登录阿里云服务器的控制台, 将要映射的外网端口(如8080)加入安全组
二. 内网设置
2.1 设置防火墙
首先开放要映射的外网端口
# 检查端口是否已开放
sudo firewall-cmd --query-port=80/tcp
# 开放端口
sudo firewall-cmd --permanent --add-port=80/tcp
2.2 设置免密登录
在做完映射之后, 为了保证连接不会中断, 两台服务器间需要经常相互通信, 所以免密登录时必须的
# 在内网服务器上生成公钥私钥对
ssh-keygen
# 将内网服务器的公钥复制到外网服务器
ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote_ip
2.3 端口映射
将两台的服务器的端口映射起来, 下面的命令可以让用户通过上面设置的外网服务器IP来访问访问内网服务器
# autossh -M [内网端口] -fCNR [外网IP或省略]:[外网端口]:[内网IP]:[内网端口] [外网用户]@[外网IP]
autossh -M 4000 -fCNR 8080:192.168.123.101:8888 bxz@101.200.177.119
参数说明
-M 指定一个内网端口来监视ssh连接状态,连接中断时自动重连
-f 后台执行ssh指令
-C 允许压缩数据
-N 不执行远程指令
-R 将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口
-L 将本地机(客户机)的某个端口转发到远端指定机器的指定端口
2.4 设置开机自启
- 将上面的命令写入文件
/etc/rc.d/rc.local
- 执行
sudo chmod +x /etc/rc.d/rc.local