У меня следующая настройка -
Маршрутизатор Verizon Fios - WAN - Общедоступный IP-адрес Маршрутизатор Verizon Fios - LAN - 192.168.1.1
Это подключается напрямую к внутреннему маршрутизатору Linux -
Внутренний маршрутизатор Linux - eth0 - 192.168.1.2 Внутренний маршрутизатор Linux - eth1 - 10.10.10.1
Проблема, с которой я столкнулся, заключается в том, что если запрос исходит из сети 10.10.10.x или сети 192.168.1.2 на общедоступный IP-адрес, запрос теряется где-то в сети.
Маршрутизатор linux находится в Интернете напрямую через функцию DMZ маршрутизатора Fios.
Я думаю, мне просто не хватает базовой команды маршрута, но я не уверен, куда идти дальше.
Причина, по которой все это имеет значение, заключается в том, что я пытаюсь запустить клиент VNC-Java на маршрутизаторе Linux для подключения к vncserver, который работает непосредственно на том же компьютере. Когда java-клиент подключается, он пытается подключиться к внешнему IP-адресу, о котором Linux-маршрутизатор действительно не знает, поскольку считает, что это 192.168.1.2.
Я предполагаю, что есть другое решение ... И это говорит java-клиенту tightvnc подключиться к хосту 192.168.1.2, но я тоже не могу найти, где именно это установить.
Обычный клиент VNC работает нормально, но мне бы не хотелось иметь клиентское программное обеспечение.
Мысли / предложения? Мне просто не повезло из-за один на один нац?
Что касается проблемы маршрутизации, поскольку ваша внутренняя сеть использует немаршрутизируемые IP-адреса (частные), ваш маршрутизатор Linux должен «замаскировать» их, когда они выходят через внешний IP-адрес (который также не маршрутизируется, но вашему маршрутизатору Linux требуется не знаю - Cisco может справиться с этой частью).
Что-то простое вроде
iptables -t nat -I 1 POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQURADE
должен сделать свое дело. Если вы можете сказать мне, какой дистрибутив вы используете на маршрутизаторе Linux, я могу дать более точные инструкции о том, как настроить его на постоянной основе в рамках настройки сети вашего маршрутизатора Linux.
Также убедитесь, что у вас есть ip_forwarding
включен - проверить вывод sysctl net.ipv4.ip_forward
: должно быть написано "1"
В дополнение к ответу Гусса (который является правильным) вам также необходимо убедиться, что на всех ваших компьютерах настроены правильные шлюзы по умолчанию. Для компьютеров в подсети 10.10.10.x это, вероятно, 10.10.10.1. Для всех компьютеров в подсети 192.168.1.x это, вероятно, 192.168.1.1 (по крайней мере, это то, что я читаю из вашего сообщения).
Обычно они устанавливаются через DHCP. Если вы не используете DHCP, вам придется установить эти значения (и соответствующие им маски подсети) вручную.