Я просто хочу проверить, какие порты открыты на моем мобильном устройстве, когда оно подключено к интернету через 4g, но простой netcatting или даже ping на его "4g ip" адрес не работает. При подключении через wifi ping и netcat на его внутренний ip адрес работают нормально, и я также могу 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
Получил IP-адрес телефона с whatismyip.com, и, пропинговав его, я получаю
$ 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 -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, и внешний адрес, видимый веб-сайтами, не принадлежит устройству — он принадлежит шлюзу NAT, управляемому провайдером. Так что не доверяйте адресу, если вы его не видитена самом устройстве.
Вдобавок ко всему, большинство операторов мобильной связи не предоставляют выделенные IP-адреса — они выполняют NAT «1:многие», а не просто NAT 1:1, и внешний адрес одновременно используется несколькими клиентами (точно так же, как ваш домашний маршрутизатор распределяет ваши внешние адреса между всеми устройствами локальной сети).
Даже те операторы, которыеделатьвыделяют адрес на клиента (прямой или 1:1 NAT) часто помещают его за брандмауэр, который блокирует все входящие соединения. Это имеет две цели — это не позволяет клиенту размещать услуги на своем 4G-подключении (что обычно не допускается их условиями обслуживания), и это не позволяет различным сканированиям ботнетов и нежелательным соединениям разряжать аккумулятор устройства.
и я также могу пинговать внешние IP-адреса
В большинстве случаев вы пингуете только шлюз NAT, а не само устройство.