没有到主机的路由,但可以 ping

没有到主机的路由,但可以 ping

我正在尝试解决一些有关加密的 IT 难题:http://overthewire.org/wargames/krypton/krypton0.html

但我在第一次练习中就失败了。我用 openssl 解码了密码(这很容易),但当我尝试使用 ssh 连接到机器时,它显示以下消息:在此处输入图片描述

ssh: connect to host krypton.labs.overthewire.org port 2222: No route to host

我尝试 ping 该机器:

ping krypton.labs.overthewire.org
PING otw.cracksucht.de (176.9.9.172) 56(84) bytes of data.
64 bytes from static.172.9.9.176.clients.your-server.de (176.9.9.172): icmp_seq=1 ttl=53 time=54.5 ms
64 bytes from static.172.9.9.176.clients.your-server.de (176.9.9.172): icmp_seq=2 ttl=53 time=54.0 ms
64 bytes from static.172.9.9.176.clients.your-server.de (176.9.9.172): icmp_seq=3 ttl=53 time=54.6 ms
^C
--- otw.cracksucht.de ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 54.054/54.411/54.626/0.254 ms

所以它响应了。我还尝试使用机器的 IP ssh 连接到该机器:

dig krypton.labs.overthewire.org

; <<>> DiG 9.9.5-3ubuntu0.10-Ubuntu <<>> krypton.labs.overthewire.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38947
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;krypton.labs.overthewire.org.  IN      A

;; ANSWER SECTION:
krypton.labs.overthewire.org. 119 IN    CNAME   leelo.overthewire.org.
leelo.overthewire.org.  119     IN      CNAME   otw.cracksucht.de.
otw.cracksucht.de.      2325    IN      A       176.9.9.172

;; Query time: 66 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Mon Oct 16 19:07:19 CEST 2017
;; MSG SIZE  rcvd: 124

进而

ssh [email protected] -p 2222
ssh: connect to host 176.9.9.172 port 2222: No route to host
ssh 176.9.9.172 -p 2222
ssh: connect to host 176.9.9.172 port 2222: No route to host
ssh 172.9.9.176 -p 2222
ssh: connect to host 172.9.9.176 port 2222: Connection timed out
ssh 176.9.9.172 -p 2222
ssh: connect to host 176.9.9.172 port 2222: No route to host

哪里出了问题?是练习的一部分吗(我完全不明白)?还是根本不起作用?谢谢。

答案1

您和您尝试访问的远程主机之间肯定存在防火墙问题。

您可以收到来自远程主机的 ping 响应,因为防火墙允许 ICMP 流量,但根据防火墙上的规则,TCP 流量会受到一些阻止。如果可能,请尝试联系远程主机上的不同服务,如 http、https 或 ftp 等。

您可以使用“traceroute”程序查看是否允许 UDP 流量。某些 Linux 发行版附带的 SSH 服务被默认防火墙规则丢弃。最好的方法是联系远程主机管理员/用户,以确保您的 IP 被允许。

您确定远程主机正在运行吗?SSH 服务在端口 2222 而不是 22 上?您正在使用命令中的 -p 选项在 2222 端口上连接 ssh

答案2

当机器响应 ping 时,如果出现“没有到主机的路由”,则表明防火墙拒绝您访问,但会通知您发生了这种情况(即使用 ICMP 消息而不是静默丢弃)。

检查你的出站防火墙。如果不是,那么它在靠近目的地的地方被阻止了。

答案3

我遇到过类似的情况:在使用 flannel 的 k8s 主机上,podA 可以 ping 通同一主机上的 podB,但是 tcp 连接被来自 cni0 的 ICMP 重置所重置。 iptables-save显示有关 k8s 的规则,所有规则看起来都运行正常。 nft list ruleset显示由firewalld 制定的规则:

table inet firewalld {

    chain filter_FORWARD {
        type filter hook forward priority filter + 10; policy accept;
        ct state { established, related } accept
        ct status dnat accept
        iifname "lo" accept
        ip6 daddr { ::/96, ::ffff:0.0.0.0/96, 2002::/24, 2002:a00::/24, 2002:7f00::/24, 2002:a9fe::/32, 2002:ac10::/28, 2002:c0a8::/32, 2002:e000::/19 } reject with icmpv6 addr-unreachable
        jump filter_FORWARD_ZONES
        ct state invalid drop
        reject with icmpx admin-prohibited
    }

停止firewalld服务后一切正常: systemctl stop firewalld 因此,尝试检查其他服务或内核模块是否也可能使用netfiler。

相关内容