4G 経由でインターネットに接続しているときに、モバイル デバイスでどのポートが開いているかを確認したいのですが、単に netcat したり、"4G IP" アドレスで ping したりしても機能しません。Wi-Fi 経由で接続すると、内部 IP アドレスへの ping と netcat は正常に機能し、外部 IP アドレスへの ping も実行できるため、問題は自分の接続にあるわけではありません。
$ 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
Google に ping すると正常に機能することを示すだけです:
$ 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:1 NAT だけでなく、「1: 多」NAT を実行し、外部アドレスは複数の顧客によって同時に使用されます (ホーム ルータがすべての LAN デバイス間で外部アドレスを共有するのと同じです)。
たとえ、する顧客ごとに専用のアドレス(直接または 1:1 NAT のいずれでも)を用意し、多くの場合、すべての着信接続をブロックするファイアウォールの背後に配置します。これには 2 つの目的があります。顧客が 4G 接続でサービスをホストするのを防ぐこと(通常は利用規約で許可されていません)と、さまざまなボットネット スキャンや迷惑な接続によってデバイスのバッテリーが消耗するのを防ぐことです。
外部IPアドレスにpingを実行することもできます
ほとんどの場合、デバイス自体ではなく、NAT ゲートウェイのみに ping を実行します。