我希望透過 ssh 連接到家庭網路上的計算機,因此我打算設定連接埠轉送。但是我的家庭伺服器和外部世界(即全球IP位址)之間有多少個路由器?
我知道以下鏈條:myServer -> routerA -> routerB -> phoneLine
有沒有辦法確定路由中有多少跳領先於全球IP位址?
每個 ISP 是否都會為每個訂閱者提供一個全球 IP 位址,或者我的連接埠轉送計畫是否有可能因為 ISP 控制我routerB
和網路之間的網關而注定失敗?
更新:
我想我可以運行traceroute
並查看其輸出,以查找與 www.whatismyip.com 告訴我的地址相符的 IP 位址,但奇怪的是,沒有匹配項。為什麼不呢? (但是,D 區塊中有一個位址僅相差 1。)
答案1
您的公用 IP 位址應位於 ISP 提供的裝置上。尋找它最簡單的方法是使用 Windows dos shell“tracert”命令。使用方法如下:
Tracert www.gooogle.com
這將顯示到指定位置的躍點數量以及每個躍點的 IP 位址。您將看到您的本機路由器,後面可能會看到 ISP 提供的裝置上的公用 IP 位址。
答案2
請注意:路由器無所不在。您應該擔心的是 NAT。網路上的「真實」路由器不使用它。
是否每個 ISP 都為每位訂戶提供全球IPv4地址...?
不幸的是,這個問題的答案是,不,絕對不。許多行動電話供應商沒有足夠的 IP 位址來為每個連接的裝置提供自己的位址。相反,他們僱用營運商級 NAT,這基本上是一個巨大的 NAT 路由器設定。越來越多的常規 ISP 也必須採用這種方法來為其不斷增加的客戶提供服務。
Tracing route to superuser.com [190.93.244.58]
over a maximum of 30 hops:
1 <1 ms <1 ms <1 ms 192.168.2.1
2 26 ms 25 ms 12 ms HSI-KBW-095-208-060-001.hsi5.kabel-badenwuerttem berg.de [95.208.60.1]
3 24 ms 8 ms 8 ms 172.30.21.57
4 8 ms 9 ms 9 ms 84.116.191.33
5 10 ms 11 ms 29 ms 84.116.191.2
6 12 ms 12 ms 10 ms ffm-b1-link.telia.net [62.115.48.101]
7 16 ms 14 ms 12 ms ffm-bb1-link.telia.net [62.115.135.233]
8 11 ms 17 ms 10 ms ffm-b10-link.telia.net [62.115.137.141]
9 14 ms 12 ms 16 ms cloudflare-ic-302937-ffm-b10.c.telia.net [62.115 .35.226]
10 11 ms 13 ms 14 ms 190.93.244.58
Trace complete.
在第一跳,您可以看到我的有線路由器及其內部 IP 位址192.168.2.1
。現在,雖然我確實分配了 IPv4 位址,但它在此處不可見。相反,請查看下一跳 #2:它的位址是 Internet 可路由的 IP 位址。由此,我們可以推斷我的路由器的外部IP也是可路由的。
如果存在包含非 Internet IP 位址的其他躍點,則這將暗示您的 ISP 處存在電信商級 NAT 設定。
Traceroute 只傳回「面向您」的 IP 位址。這就是為什麼您無法獲得路由器的公共 IP 位址的原因。幸運的是,有很多網路服務可以解決這個問題。