У меня есть Linux-бокс с двумя сетевыми интерфейсами, eth0, eth1. из eth1 я могу получить доступ к внутреннему веб-сайту, скажем, через порт 8080. извне я не могу получить доступ к этой сети. У меня вопрос: есть ли способ настроить что-то так, чтобы извне, похоже, что веб-сервер работает на порту 8080, и когда я подключаюсь к нему, он автоматически перенаправляет на eht1 внутренний сайт? Я попытался включить ip forward и добавить статический маршрут, но это не сработало. Спасибо.
Маршрутизирует ли этот ящик трафик между этими интерфейсами? Из того, что вы написали, я предполагаю, что на eth0 есть общедоступная сеть, подключенная к Интернету, а на eth1 есть частная локальная сеть.
Если это настройка и вы хотите получить доступ к веб-серверу в локальной сети из Интернета, вам необходимо использовать преобразование сетевых адресов (NAT).
В основном вам нужно определить внешний IP-адрес на «внешнем» интерфейсе и добавить правило iptables:
iptables -t nat -A PREROUTING -p tcp -d X.X.X.X --dport 8080 -j DNAT --to Y.Y.Y.Y:8080
X.X.X.X - это внешний адрес, а Y.Y.Y.Y - внутренний, на котором запущен веб-сервер. В этом сценарии вы также должны убедиться, что разрешаете трафик в прямой цепочке:
iptables -A FORWARD -p tcp -d Y.Y.Y.Y --dport 8080 -j ACCEPT
Для этого в вашем ящике должна быть включена пересылка:
sysctl net.ipv4.ip_forward=1
или
echo 1 > /proc/sys/net/ipv4/ip_forward
Не уверен, что это ответ на ваш вопрос, но дал очень мало деталей в вашем вопросе.