如何通过xshell实现建立反向隧道,通过云服务器的访问本地服务

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/
相关推荐
泡泡oO5 分钟前
“如果你还在用Superpowers,那我不要和你说话”
前端·后端·全栈
武子康34 分钟前
LingBot-Video 怎么选推理路径?8 步 DMD 不等于小显存
人工智能·后端
打工仔折腾 AI1 小时前
Docker镜像分层与卷挂载到底怎么工作:一次文件系统层面的实测分析
运维·人工智能·后端·python·docker·容器·性能优化
程序员Sunday1 小时前
MCP stdio 与 Streamable HTTP 怎么选,流式消息传到哪里
后端
tntxia1 小时前
单点登录(SSO)完整技术实现方案
后端
一个有温度的技术博主1 小时前
凌晨三点的消息堆积:当 MQ 变成“停车场“
java·后端·场景
谢亮_vipxieliang2 小时前
Go WaitGroup与Once——并发同步的基石
开发语言·后端·golang
ITOM运维行者2 小时前
PHP性能监控怎么做?从响应时间到慢函数的6个关键指标
前端·javascript·后端
RobinDevNotes2 小时前
亲手量化大模型,Mac实测和NVIDIA指南
人工智能·后端
Bazingga2 小时前
从0到1搭一个Agent:Spring AI显式ReAct循环完整实战
后端