1

У меня есть сервер с несколькими IP-адресами, связанными с ним. Я пытаюсь запустить веб-сервер node.js (который я не хочу запускать от имени root), используя только один из этих IP-адресов (было бы очень плохо, если бы трафик со всех IP-адресов был перенаправлен).

Через поиск суперпользователя это выглядело так, как будто это возможно с iptables:

Как настроить iptables для перенаправления трафика на порт 80 из определенных источников

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 --source 212.333.111.222 -j REDIRECT --to-port 9020

Однако я не понимаю, зачем нужен eth0.

В соответствии с:

http://blog.softlayer.com/2011/iptables-tips-and-tricks-port-redirection/

это можно сделать с помощью:

iptables -t nat -A PREROUTING -p tcp --dport 2525 -j REDIRECT --to-ports 25

Как правильно перенаправить трафик с одного ip на порт 80, скажем, 111.111.111.111:80, на другой порт того же сервера, скажем, 111.111.111.111:8765?

Спасибо за вашу помощь!

1 ответ1

2

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8765

Вместо использования IP-адреса используйте имя интерфейса, я имею в виду вместо eth0 вы можете использовать интерфейс, который вы хотите.

Это правило говорит iptables:

  1. Сделай это на PreRouting
  2. Сделать нат
  3. На интерфейсе eth0
  4. Протокол TCP
  5. Порт назначения для соответствия 80
  6. Перенаправьте его на порт 8765

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