使用SSH隧道转发对防火墙后网站的访问
我发现了类似的场景,但它涉及ssh,我需要将访问转发到Web服务器 现在的情况如何: [专用服务器]-在路由器和防火墙后面,无法通过公共ip访问 [中间服务器]-公共ip,端口打开 [用户]-通过web浏览器连接到中间服务器,希望从私有服务器获取网站 我已经做了:使用SSH隧道转发对防火墙后网站的访问,ssh,portforwarding,Ssh,Portforwarding,我发现了类似的场景,但它涉及ssh,我需要将访问转发到Web服务器 现在的情况如何: [专用服务器]-在路由器和防火墙后面,无法通过公共ip访问 [中间服务器]-公共ip,端口打开 [用户]-通过web浏览器连接到中间服务器,希望从私有服务器获取网站 我已经做了: ssh -N -R 8888:localhost:80 root@[middle server ip] 现在我可以从中间服务器访问私有服务器,例如通过: curl http://localhost:8888 所以隧道运行正常 问题
ssh -N -R 8888:localhost:80 root@[middle server ip]
现在我可以从中间服务器访问私有服务器,例如通过:
curl http://localhost:8888
所以隧道运行正常
问题是,当我(作为用户)输入[middle server ip]:8888时,我收到的只是错误连接被拒绝
我错过了什么?某种端口重定向?任何帮助都将不胜感激 此行为由选项
网关端口
控制(默认情况下关闭
)。从ssh\u config
的手册页:
网关端口
指定是否允许远程主机连接到为客户端转发的端口。默认情况下,sshd(8)将远程端口转发绑定到环回地址。这将防止其他远程主机连接到转发的端口GatewayPorts
可用于指定sshd
应允许远程端口转发绑定到非环回地址,从而允许其他主机连接。参数可以是“否”以强制远程端口转发仅对本地主机可用,“是”以强制远程端口转发绑定到通配符地址,或“clientspecified”以允许客户端选择转发绑定到的地址。默认值为“否”
你还需要把
GatewayPorts yes
到您的sshd\u config
,并明确指定本地地址:
ssh -N -R [middle server ip]:8888:localhost:80 root@[middle server ip]
或
它解决了问题,谢谢!我已经设置了网关端口,但它是在[专用服务器]上设置的,所以它没有像我预期的那样工作。
ssh -N -R *:8888:localhost:80 root@[middle server ip]