
Я работаю над приложением для мобильного телефона, которое должно отправлять команду TCP из внешней сети (например, из кофейни или при подключении к 3G) на определенное устройство в домашней сети. Допустим,
- Маршрутизатор имеет реальный IP-адрес 123.123.123.123 и частный IP-адрес 192.168.0.1.
- Устройство имеет частный IP-адрес 192.168.0.101.
- Устройство прослушивает входящую команду TCP на порту 1000 и 2000.
У меня есть вопросы:
- В моем мобильном приложении мне нужно отправить команду на 123.123.123.123, верно? Если так, то на какой порт?
- Какую настройку мне нужно выполнить на маршрутизаторе, чтобы он передал эту команду на желаемое устройство?
Я понятия не имею, как это сделать, поскольку я никогда не работал с сетевыми технологиями с тех пор, как окончил вуз много лет назад.
решение1
какой порт? либо порт 1000, либо 2000. Итак, он идет к 123.123.23.123:1000
или :2000
какая конфигурация у вашего маршрутизатора? Ну, вы используете NAT/PAT/переадресацию портов, поэтому вы настраиваете маршрутизатор NAT на пересылку всего, что он получает на порт 1000 или 2000, на устройство 192.168.0.101:1000
или :2000
.
решение2
Вам необходимо настроить маршрутизатор таким образом, чтобы он знал, что если он получает пакет, направленный на адрес 123.123.123.123 и порт 1000 (или 2000), то этот пакет должен быть перенаправлен на адрес 192.168.0.101 и порт 1000 (или 2000).
Эта функция называется по-разному у разных производителей. Ищите «виртуальный сервер», «переадресация портов», «назначение nat», «обратный nat» и т. д.