ping 成功但 ssh 失败

ping 成功但 ssh 失败
  1. 机器1 IP:172.30.11.119
  2. 机器2 IP:172.30.11.120
  3. 机器3 IP:172.30.11.121
  4. 机器4 IP: 172.30.11.122

注意:这些机器连接到 LAN。

我已经在 /etc/network/interfaces 文件中为每台机器的以太网接口配置了静态 IP,如上所述,以便在系统重启后仍能保留 IP。

我已将机器 4 中的默认网关设置为 172.30.11.97(以便通过 putty 连接管理器从用户桌面访问它)

allow-hotplug eth0
 iface eth0 inet static
      address 172.30.11.122
      netmask 255.255.255.0
      gateway 172.30.11.97

但是在其他 3 台机器上,我没有像 122 那样设置默认网关。相反,我在这 3 台机器上尝试了策略路由,如下所示,在“interfaces”和“rt_table”文件中:

 echo "1 policy_gw" >> /etc/iproute/rt_table
    In /etc/iproute/rt_table:
      1 policy_gw

在 /etc/network/interfaces 中:

      allow-hotplug eth0
      iface eth0 inet static
              address 172.30.11.121
              netmask 255.255.255.0

      post-up ip rule add dev eth0 table policy_gw
      post-up ip route add default via 172.30.11.97 dev etho src 172.30.11.121/24 table policy_gw 

对 120/119 台机器也做了同样的操作。现在我可以通过 putty 直接访问这些机器。

面临的问题:我可以从同一 LAN 中的其他计算机 ping 该 LAN 中的每台计算机。但 ssh 失败并显示错误port 22: no route to host

假设我在机器 121 上:ssh 172.30.11.120 抛出上述错误。

默认网关是思科系统路由器/交换机。它们阻止 SSH、telnet 协议的端口,但不阻止 ICMP。

122号机器的路由表

root@debian:~# route -n                                       
Kernel IP routing table 
Destination  Gateway      Genmask       Flags   Metric Ref Use Iface 
0.0.0.0      172.30.11.97 0.0.0.0       UG       0      0   0  eth1 
172.30.11.0  0.0.0.0      255.255.255.0 U        0      0   0  eth1

ssh_config 文件的内容

Host *
    SendEnv LANG LC_*
    HashKnownHosts yes
    GSSAPIAuthentication yes
    GSSAPIDelegateCredentials no

答案1

您的主机是否位于同一个物理网络中?

“没有到主机的路由” - 这似乎是来自路由器的 icmp 答案,您可以使用网络分析器进行测试。似乎您的 ssh 流量通过路由器传输,尽管主机位于同一网络中,但您的 policy_gw 表的优先级可能高于内置本地表。路由器拒绝转发它(但同时它以某种方式允许 icmp)或者它确实没有到目的地的路由。查看路由器的表格或更正您的策略路由,以便您的主机直接对话,因为它们应该如此。

相关内容