SSH 反向隧道访问内网服务
需求背景:在内网192.168.1.157win机器的虚拟机里部署了StarRocks,虚拟机的地址是192.168.0.94,现在需要在服务器地址是120.xx.xx.xx的机器中部署一个go服务,使用go代码来连接内网192.168.0.94虚拟机里的StarRocks 9030 端口。
SSH 反向隧道:
原理:通过 SSH 的远程端口转发,将 120.xx.xx.xx 服务器的某个端口映射到内网虚拟机192.168.0.94的 9030 端口。
1、在内网虚拟机(192.168.0.94)上执行:
ssh -NfR 9030:localhost:9030 root@120.xx.xx.xx
参数说明:
"-R 9030:localhost:9030" 将 120.xx.xx.xx 的 9030 端口转发到内网虚拟机的 9030 端口。
"root" 120.xx.xx.xx 服务器的用户名。
2、输入120.xx.xx.xx root的用户密码
3、修改 120.xx.xx.xx SSH 配置:
确保 120.xx.xx.xx 的 SSH 服务允许远程端口转发。
vi /etc/ssh/sshd_config
输入或编辑:
# 允许远程端口绑定到任意 IP(默认仅本地)
GatewayPorts yes
AllowTcpForwarding yes
修改后重启 SSH 服务:
systemctl restart sshd
检查端口是否监听:
# 检查端口是否监听(Linux 虚拟机)
netstat -tuln | grep 9030
在120.xx.xx.xx 上测试端口连接: