Мне известны другие вопросы на ту же тему, но я не смог заставить их работать.

Я хотел бы перенаправить внутри моей локальной сети весь трафик с ip1 на ip2. Только внутри сети, а не снаружи.

У меня есть маршрутизатор с OpenWRT, и я хотел бы добавить iptables внутри маршрутизатора. Мне бы хотелось, чтобы эта пересылка была видна с любого устройства, подключенного к моей локальной сети.

Это означает, что с моего компьютера (подключенного через Wi-Fi к маршрутизатору openwrt), если я открываю браузер и набираю: 192.168.1.42, он перенаправляется на 192.168.1.198. Оба на порт 80 и 3000 (и в конечном итоге другие)

Если я открою 192.168.1.198, я увижу свой маленький http-сервер.

Я пробовал различные комбинации iptables через SSH к маршрутизатору OpenWRT:

iptables -t nat -A PREROUTING -p tcp -d 192.168.1.42 -j DNAT --to-destination 192.168.1.198
iptables -t nat -A OUTPUT -p tcp -d 192.168.1.42 -j DNAT --to-destination 192.168.1.198

Ничего не работает В частности .. где можно посмотреть логи?

РЕДАКТИРОВАТЬ:

Я также сделал это от удачи веб-панели в OpenWRT. Мне кажется правильным

На 192.168.1.42 ничего нет конечно (я имел ввиду это как виртуальный фиксированный ip)

1 ответ1

1

Как вы описали, это не может быть сделано с iptables от вашего маршрутизатора. iptables работает только с пакетами, маршрутизируемыми через ваш маршрутизатор (доброе имя, а?). Пакеты, которые передаются между двумя хостами в одной физической сети, полностью маршрутизируются самими хостами; нет необходимости проходить через ваш роутер.

Если 192.168.1.42 самом деле не существует, вы можете дать 192.168.1.198 второй IP-адрес «псевдонима». Или даже дать какой-нибудь третьей машине псевдоним ip и перенаправить трафик с нее на 192.168.1.198 .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .