Перенаправление порта на обратной связи с IP-адресом, отличным от 127.0.0.1

Перенаправление порта на обратной связи с IP-адресом, отличным от 127.0.0.1

Я хочу перенаправить порт 80 на сетевом интерфейсе обратной связи, чтобы доступ к этому порту фактически осуществлялся на порт 8080.

Я попробовал использовать следующую команду, но она работает только в том случае, если приложение прослушивает 127.0.0.1:8080, но не работает, если оно прослушивает 127.1.2.3:8080.

sudo iptables -t nat -I OUTPUT -p tcp -o lo --dport 80 -j REDIRECT --to-ports 8080

Я тоже пробовал добавлять --source 127.1.2.3/32 --destination 127.1.2.3/32, но все равно не работает.

Перенаправление работает, если я открываю приложение, прослушивающее 127.0.0.1:8080:

ssh remote -L127.0.0.1:8080:192.168.0.3:80

nc 127.0.0.1 80 # works

Но это не работает, если я открываю приложение, прослушивающее 127.1.2.3:8080:

ssh remote -L127.1.2.3:8080:192.168.0.3:80

nc 127.1.2.3 80 # fails
nc: connect to 127.1.2.3 port 80 (tcp) failed: Connection refused

nc 127.1.2.3 8080 # works, so the application is still listening on 8080

Как перенаправить порт 8080 на 127.xxx на порт 80 на том же IP?

Обновление: Мотивация

Я пытаюсь использовать SSH для выполнения следующих переадресаций портов (127.1.2.3:80 → 192.168.0.3:80 и 127.1.2.4:80 → 192.168.0.4:80):

ssh remote -L127.1.2.3:80:192.168.0.3:80 -L127.1.2.4:80:192.168.0.4:80

Поскольку порт 80 является "привилегированным", ssh не может открыть его на localhost. Есть несколько способов обойти это:

  • sudo ssh, но я не хочу копировать конфигурацию SSH и ключи в учетную запись root.
  • Использовать возможности, но обновления пакетов могут нарушить это.
  • Используйте другой порт (например, 8080), который работает, но неотносительные URL-адреса не работают.
  • Перенаправьте привилегированный порт на непривилегированный, и это то, что я пытаюсь сделать. Это работает для одного перенаправления на 127.0.0.1, но не работает, если у меня есть перенаправления на IP-адреса, отличные от 127.0.0.1 (см. выше).

Связанный контент