Google Cloud VM经SSH端口转发暴露应用后外部无法访问问题咨询
问题解决步骤
你的问题核心是默认SSH端口转发仅绑定到VM本地环回地址(127.0.0.1),仅能接收VM本地发起的请求,公网访问的流量会命中VM的公网网卡,无法被环回地址的监听服务接收。按以下步骤配置即可解决:
- 第一步:修改SSH端口转发命令,指定监听所有网卡
你原来的转发命令格式应该类似:
改成以下两种写法任意一种即可:ssh -L 8080:本地应用端口 私有服务器登录地址
写法1(添加-g参数允许远程主机连接转发端口):
写法2(显式指定绑定到所有网卡地址):ssh -g -L 8080:本地应用端口 私有服务器登录地址ssh -L 0.0.0.0:8080:本地应用端口 私有服务器登录地址 - 第二步:确认VM的SSH服务配置允许端口绑定到公网网卡
编辑VM上的SSH服务配置文件/etc/ssh/sshd_config,找到GatewayPorts配置项,修改为:
保存后重启SSH服务生效:GatewayPorts yessudo systemctl restart sshd - 第三步:验证监听状态
在VM中执行以下命令,确认8080端口的监听地址为0.0.0.0:8080而非127.0.0.1:8080:
配置正确后即可通过公网IP访问8080端口的转发服务。ss -tulpn | grep 8080
安全提示:将SSH转发端口直接暴露到公网存在安全风险,建议在防火墙规则中限制可访问8080端口的源IP范围,避免未授权访问。
内容的提问来源于stack exchange,提问作者Nuzurie
相关产品推荐
相关产品推荐

