SSH 允许远程主机连接到本地转发端口

SSH 允许远程主机连接到本地转发端口

我目前面临与 RHEL 7.0 有关的 ssh 选项 -g(即远程主机连接到本地转发端口)的问题。

我正在使用通常的命令行从 myserver_ip 地址上的服务器建立带有端口转发的连接:

ssh -o StrictHostKeyChecking=no user@server_fqn -L9090:other_server_ip:9080 -g

当我指向我的浏览器(或尝试使用 curl 获取某些内容时,出现连接被拒绝异常):

curl -X GET "http://myserver_ip:9090"
curl: (7) Failed to connect to myserver_ip port 9090: No route to host

如果我在 Ubuntu 服务器上执行相同操作,它可以完美运行,但在 RHEL 上它根本不起作用。

我怀疑是防火墙、selinux 甚至网络连接。

为了解决/排除此故障,我尝试了以下方法:

  • 禁用防火墙(service firewalld stop
  • 检查 selinux 是否将 9090 管理为有效的 http 端口 ( semanage port -l | grep 9090),没有问题
  • 通过 netstat () 检查端口是否打开netstat -alptn | grep 9090 ,似乎没问题,我有一个 ssh 进程在监听 9090
  • 检查服务器是否在以太网接口的 9090 端口上接收数据包(tcpdump -i ens192 'port 9090' -v),并且确实收到了数据包......

因此基本上它符合系统在接口上接收请求,ssh 进程正在监听给定端口上的所有接口,但是 ssh 进程不会将数据包转发到另一端...

我确实没有线索可以进行故障排除,因此如果您有任何建议,请不要犹豫,我将非常感激您的帮助。

谢谢,

答案1

Curl 已经告诉你答案了。这与 SSH 无关,与防火墙无关,与 selinux 无关。

no route to host

运行 curl 的机器不知道应该将发往我的 server_ip(它所关联的 ip 地址)的数据包发送到哪里

相关内容