RPi3 подключен к интернету через 3G ключ. IP интерфейса wwan0 находится в открытом доступе, доступен снаружи и не изменился с тех пор, как я получил SIM-карту. Пока все хорошо, правда?

Что меня беспокоит, так это то, что на noip отправляется, вероятно, IP-адрес NAT, а не интерфейсный, что делает сайт, обслуживаемый RPi, недоступным, если IP не известен. Есть ли способ отправить "правильный" wwan0 интерфейс wwan0 на noip?

Второе беспокойство заключается в том, что когда RPi будет перемещен за пределы площадки (для измерения температуры в помещении), ключ будет использовать другую мобильную мачту и, возможно, изменится IP-адрес wwan0 iface. Я боюсь, что мне придется сделать собственный сценарий, чтобы уведомить noip об IP-адресе интерфейса при изменении IP-адреса или каком-либо другом уведомлении.

Любые отзывы приветствуются!

1 ответ1

0

Исходя из вашей истории, я предполагаю, что у вашего оператора есть прокси-сервер для оптимизации скорости мобильных данных (например, что уменьшает размеры изображений). Это означает, что ваш HTTP-трафик будет проходить через прокси на стороне оператора, который вполне может быть преобразован в NAT.

Одним из способов избежать этого является отправка явного IP-адреса noip (из их документации):

curl http://username:password@dynupdate.no-ip.com/nic/update?hostname=mytest.example.com&myip=1.2.3.4

Это может быть легко интегрировано в скрипт оболочки:

#!/bin/bash

IP=$(/sbin/ip -4 a l wwan0 | grep 'inet ' | grep -oP '(?<=inet\s)\d+(\.\d+){3}')

curl "http://username:password@dynupdate.no-ip.com/nic/update?hostname=mytest.example.com&myip=${IP}"

Сделайте этот скрипт исполняемым и запускайте его из cron каждые 10 минут или около того:

chmod 755 /home/user/update_noip.sh
crontab -e
# Add:
*/10 * * * * /home/user/update_noip.sh >/dev/null 2>&1

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .