Linux

沒有使用 nc 主機的路由,但可以 ping

  • January 10, 2020

我正在嘗試使用 netcat 從一台虛擬機連接到另一台虛擬機的 25 埠,但它告訴我no route to host雖然我可以 ping 通。我確實將防火牆預設策略設置為刪除,但我有一個例外,即接受該特定子網上的埠 25 的流量。我可以使用 nc 從埠 25 上的 VM 3 到 VM 2 連接,但不能從 VM 2 到 3。

這是我的 VM2 防火牆規則的預覽

截屏

這是我的 VM 3 防火牆規則的預覽

截屏

當我顯示我擁有的偵聽服務時,*:25這意味著它正在偵聽所有 ipv4 ip 地址和:::25ipv6 地址。我不明白錯誤出在哪里以及為什麼兩個防火牆規則都無法正常接受埠 25 上的流量,因此它應該正在連接。我嘗試比較兩者之間的差異,看看為什麼我可以從 vm3 連接到 vm2,但配置都是一樣的。關於可能是什麼問題的任何建議?

更新停止 iptable 服務可以解決問題,但我仍然需要這些規則。

當機器可以ping 通時,這是防火牆拒絕您no route to host禮貌地訪問的標誌(即使用ICMP 消息,而不僅僅是DROP-ping)。

看到你的REJECT台詞了嗎?它們與描述相匹配(REJECT 與 ICMP xxx)。問題是那些看似 (#) 籠統的 REJECT 行位於您的規則中間,因此根本不會執行以下規則。(#) 很難說這些是否是真正的包羅萬象的行,輸出iptables -nvL會更好。

將那些 REJECT 規則放在最後,一切都應該按預期工作。

引用自:https://unix.stackexchange.com/questions/353452