Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用SSH隧道转发对防火墙后网站的访问_Ssh_Portforwarding - Fatal编程技术网

使用SSH隧道转发对防火墙后网站的访问

使用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,我需要将访问转发到Web服务器

现在的情况如何:

[专用服务器]-在路由器和防火墙后面,无法通过公共ip访问

[中间服务器]-公共ip,端口打开

[用户]-通过web浏览器连接到中间服务器,希望从私有服务器获取网站

我已经做了:

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]