首先,我正在執行 Manjaro 3.10 (Archlinux x64) 安裝。
我正在嘗試讓我的無 IP 配置發揮作用。我嘗試 ping 我的 no-ip 主機,但host unreachable
只收到 ICMP。我想知道是否是 noip 問題,所以我檢查了我的公共 ip:
curl ifconfig.me
我已經獲取了結果公共 Ip 並對其進行了 ping:
ping my_public_ip
結果host unreachable
也是回應,所以我認為 no-ip 與這種情況無關(但我不確定,這就是我對這個問題發表評論的原因)。
可能是雙IP問題。我有一個 RapsberryPI(也有 archlinux),我注意到它有完全相同的公共 IP。
我的設定有什麼問題嗎?這是IP衝突問題嗎?如果可能有問題,我可以做什麼來檢查它?
答案1
您很可能正在 ping 一個根本不屬於您的本地主機的 IP 位址。在 IP 偽裝(又稱 NAT)時代,您在網路上的通訊被視為來自特定位址,但這並不意味著該位址已分配給您的電腦。
使用以下命令(或任何替代命令)檢查您的 IP 配置:
ip address
您通常可以直接 ping 在此命令的輸出中看到的 IP 位址(使用內部環回介面)。但沒有什麼可以保證您可以在通往其他網際網路主機的途中對屬於某個路由器的位址執行 ping 操作。
答案2
連接到路由器的所有裝置都將具有相同的公用 IP,因為您的 ISP 為每個網路連線提供一個外部/公用 IP,而該公用 IP 屬於您的路由器。我知道我在這裡很矛盾,但讓我進一步解釋一下。
您的 ISP 只為您提供了一個連線/公用 IP,但您在多個裝置上使用網路。路由器正在做這項工作,拋棄你的 ISP 並將你的單一連線拆分到多個裝置中,這是透過 NAT(網路位址轉換)完成的。當您 ping(具體來說)您的公用 IP 時,路由器通常會對此類請求做出回應。
您沒有收到任何回覆的原因有兩個。
1.您的路由器上的 Ping 被封鎖。
2.路由器無法回應ping(舊路由器)
如果是第二種情況,那麼您必須進行連接埠轉送。當您希望公共電腦透過特定連接埠存取您的電腦時,路由器上需要連接埠轉送。例如。您想要在 RPi 上執行 http 伺服器(連接埠 80)。
假設我在瀏覽器中輸入您的 ddns。即使您已經在系統上安裝了運行的 http 伺服器,我也不會得到任何回應,因為該請求將被您的路由器丟棄。為什麼這樣?因為您沒有告訴您的路由器,如果收到該請求(例如在您的電腦上或在 RPi 上),則必須在哪台 PC 上發送此請求(此處為 http-request)。這個問題可以透過連接埠轉送解決。如果想了解如何設定連接埠轉發,您可以造訪您的路由器網站。