1、选择云服务器上面一个端口,比如8015,如果是阿里云需要把安全策略打开这个端口,允许外部放这个端口地址,如图:

2、通过xshell登陆到云服务器上面,如果防火墙是打开的,需要执行以下命令
检查防火墙状态
lua
systemctl status firewalld
放行8015端口(如果防火墙开启)
css
firewall-cmd --add-port=8015/tcp --permanent
firewall-cmd --reload
查看防火墙当前开放的所有端口
css
firewall-cmd --list-ports
3、 检查SSH服务配置(关键!)
bash
编辑 /etc/ssh/sshd_config
必须开启的配置
允许外部访问转发端口
bash
GatewayPorts yes
允许端口转发
bash
AllowTcpForwarding yes
重启SSH服务
systemctl restart sshd
4、本地xshell隧道配置

选择远程传入方式,然后源主机输入云服务器ip,端口选择上面配置的端口,如8015;目标主机填写需要代理过去的ip,如 127.0.0.1 或者内网IP ,目标端口为你自己程序需要访问的端口,如图:

5、window系统中启动cmd命令,执行如下命令:
从本地机器执行(注意方向!)
kotlin
ssh -R 8015:127.0.0.1:8014 username@139.*.*.164
这一步就是把本地8014端口和云服务器的8015的访问请求绑定在一起了
保持ssh长时间链接命令
ini
ssh -o ServerAliveInterval=60 -R 8015:127.0.0.1:8014 username@ip
6、开始检测和验证结果
服务器上面执行的:
查看8015端口监听情况(应显示sshd监听)
perl
netstat -tuln | grep 8015
预期输出:
ruby
tcp 0 0 127.0.0.1:8015 0.0.0.0:* LISTEN
测试联通性:
在服务器上测试本地转发
arduino
curl -v http://127.0.0.1:8015/
从其他机器测试公网访问
arduino
curl -v http://139.196.111.164:8015/
