Я записал простое серверное приложение в C. Мне удалось установить соединение с помощью telnet. Проблема состоит в том, что я не могу достигнуть сервера, если я указываю общественность вместо локального IP в telnet. Я подразумеваю, что это работало
telnet 192.168.1.2 20600
в то время как это не сделало
telnet 151.53.150.45 20600
Я читал вокруг сети, это - проблема конфигурации NAT, но порт 20600, кажется, открыт (согласно http://www.canyouseeme.org/ и http://www.yougetsignal.com/tools/open-ports/). Кроме того, я отключил брандмауэр, таким образом, это не может быть причина отказа...
Какая-либо справка?
Типичный домашний NAT разработан, чтобы гарантировать, что исходящие соединения могут общаться с внешними конечными точками. По умолчанию домашний NAT не передает порты во внешнем интерфейсе (например, от Вашего поставщика кабельного модема) к Вашему dev полю.
Необходимо будет настроить NAT для передачи входящих соединений на порте 20600 к 192.168.1.2. Это часто называют "перенаправлением портов". Проверьте http://portforward.com/ для подробных руководств для большинства аппаратных опций.
Вопросы об этом детали конфигурации более подошли бы для http://superuser.com.
Я надену свою экстрасенсорную шляпу и предположу то, что происходит здесь.
Вы имеете клиент, говорите 192.168.1.3
, и можно соединиться очень хорошо от него до 192.168.1.2
. Но когда Вы пытаетесь соединиться от него до внешнего IP Вашего маршрутизатора NAT, Вы ничего не получаете. Это вызвано тем, что Вы находитесь на внутренней части маршрутизатора NAT, и это и дешево и не настроенное для этого вида вещи. Чтобы проверить, что Ваш сервер может быть достигнут снаружи Вашей сети, необходимо попытаться достигнуть его снаружи сети.
Перейдите к дому друга и попытке соединиться. Если это не работает, удостоверьтесь, что Вы настроили перенаправление портов правильно на Вашем устройстве NAT. Если это все еще не работает, задает новый вопрос здесь и отправляет некоторый код.
Ваши 192.168.1.2 машины позади маршрутизатора? или действительно ли это - маршрутизатор?.
Необходимо будет обычно устанавливать правило перенаправления портов позволить общедоступному трафику портировать 20600 на маршрутизаторе, который будет перенаправлен к 192.168.1.2