Я пытаюсь получить доступ к узлу в моей локальной сети (фактически, к моей собственной машине) через внешний ip, к которому подключен мой маршрутизатор dsl, поэтому настройка такова:

                      /----------------------------/
/-------------/       /          Router            /    /----------/
/    Host     /-------/ 192.168.1.2 | 79.44.63.132 /----/ Internet /  
/ 192.168.1.1 /       / internal ip | external ip  /    /----------/
/-------------/       /----------------------------/

На моем маршрутизаторе я включил переадресацию портов для порта 1234, так что трафик к 79.44.63.132:1234 сопоставляется с 192.168.1.1:1234. Я могу получить доступ к 79.44.63.132:1234 извне, как и ожидалось, но когда я пытаюсь получить доступ к нему из сети, что-то идет не так. Более конкретно, когда я

telnet 79.44.63.132 1234

с 192.168.1.1 я получаю соединение с моей собственной машиной, но она не отвечает. Проверка трафика показывает, что маршрутизатор на самом деле не отбрасывает какие-либо пакеты, это NAT, как будто трафик поступил извне, т.е. пересылка форта и преобразование сетевого адреса приводят к тому, что пакеты переписываются как

/-------------------------/      /--------------------------/
/ payload: 10001010110101 /      / payload: 10001010110101  /
/ from: 192.168.1.1:44713 / |--> / from: 79.44.63.132:63944 /
/   to: 79.44.63.132:1234 /      /   to: 192.168.1.1:1234   /
/-------------------------/      /--------------------------/

а также

/--------------------------/      /-------------------------/
/ payload: 00110110101101  /      / payload: 00110110101101 /
/ from: 192.168.1.1:1234   / |--> / from: 79.44.63.132:1234 /
/   to: 79.44.63.132:63944 /      /   to: 192.168.1.1:44713 /
/--------------------------/      /-------------------------/

Итак, кажется, что это должно работать, но это не так. Что здесь могло пойти не так?

0