Перенаправление портов по шлейфу с IP-адресом, кроме 127.0.0.1

Я хочу перенаправить порт 80 на сетевой интерфейс loopback, чтобы доступ к этому порту фактически перешел на порт 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 в корневой учетной записи.
  • Используйте возможности, но обновления пакетов могут нарушить это.
  • Используйте другой порт (например, 8080), который работает, но не относительные URL-адреса будут повреждены.
  • Отправляйте привилегированный порт к непривилегированному, и это то, что я пытаюсь сделать. Он работает для одного перенаправления на 127.0.0.1, но он терпит неудачу, если у меня есть перенаправления на IP-адреса, отличные от 127.0.0.1 (см. Выше).

Interesting Posts

Команды X не начинаются с моей работы

Тип файла и разыменование при указании каталога с помощью команды LS

Как использовать lsof для идентификации входящих TCP-соединений?

Невозможно перенаправить TCP-сокет в сценарий bash

Помогите понять выражение egrep

Ядро регистрируется при сбое питания

Запуск приложения с пользовательской средой

разрешить только определенным пользователям входить в систему через sshd, но отказывать в подключении к пользователям, не включенным в список

Использование ssh с аутентификацией на основе сертификатов

Программное обеспечение для контроля доступа по времени для точек доступа Wi-Fi

Как переключать теги через awesome API

Как разместить / сохранить файл в памяти на linux?

Как записывать видео на экране и аннотировать его в то же время в Монетном дворе?

Кто создает пакеты Debian?

Как создать Lynx с SSL на Mac OS X?

Linux и Unix - лучшая ОС в мире.