我只是想驗證當我的行動裝置透過 4g 連接到網路時哪些連接埠是開啟的,但簡單地進行 netcatting 甚至 ping 它的「4g ip」位址是行不通的。透過 wifi 連線時,對其內部 IP 位址的 ping 和 netcat 運作正常,而且我還能夠 ping 外部 IP 位址,因此問題不在於我自己的連線。
$ ping 192.168.1.100
PING 192.168.1.100 (192.168.1.100) 56(84) bytes of data.
64 bytes from 192.168.1.100: icmp_seq=1 ttl=64 time=248 ms
64 bytes from 192.168.1.100: icmp_seq=2 ttl=64 time=32.6 ms
從 Whatismyip.com 取得手機 IP 位址,然後對其進行 ping 操作,我得到
$ ping -4 82.132.xxx.xxx
PING 82.132.xxx.xxx (82.132.xxx.xxx) 56(84) bytes of data.
^C
--- 82.132.xxx.xxx ping statistics ---
23 packets transmitted, 0 received, 100% packet loss, time 22532ms
只是顯示 ping google 工作正常:
$ ping -v -4 google.com
ping: socket: Permission denied, attempting raw socket...
PING google.com (216.58.204.46) 56(84) bytes of data.
64 bytes from lhr25s12-in-f14.1e100.net (216.58.204.46): icmp_seq=1 ttl=53 time=3.71 ms
64 bytes from lhr25s12-in-f14.1e100.net (216.58.204.46): icmp_seq=2 ttl=53 time=3.07 ms
我猜想即使您知道它的 IP 位址,也不可能簡單地路由到任何行動設備,那麼還有其他選擇嗎?
答案1
許多行動電信商都實施了CGNAT,網站看到的外部位址並不屬於裝置——它屬於ISP運作的NAT閘道。所以不要相信這個地址,除非你看到它在設備本身上。
最重要的是,大多數行動電信商不提供專用IP 位址– 他們執行「1:多」NAT,而不僅僅是1:1 NAT,並且外部位址同時由多個客戶使用(就像您的家庭路由器共用您的外部位址一樣)所有 LAN 裝置之間的位址)。
即使是那些運營商做為每個客戶指定一個位址(無論是直接位址還是 1:1 NATed),通常會將其置於防火牆後面,阻止所有傳入連線。這有兩個目的:防止客戶在其 4G 連線上託管服務(這通常是其服務條款不允許的),並防止各種殭屍網路掃描和未經請求的連線耗盡裝置的電池。
我也可以 ping 通外部 IP 位址
大多數時候,您只對 NAT 閘道執行 ping 操作,而不對裝置本身執行 ping 操作。