Перенаправление портов по шлейфу с 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

Как создать локальный Loopback в Linux?

Запуск программы под другим пользователем с отображением X-сервера

Как восстановить отсутствующий файл / var / lib / dpkg / status?

Установка Fedora прерывает загрузку UEFI

Есть ли утилита Linux для остановки всех пользовательских процессов, включая виртуальную машину?

Сбой сценария: Ошибка синтаксиса: «(« неожиданно

Debian: номера версий (now / then) и журнал изменений для всех обновляемых пакетов

Стандартный / канонический способ проверить, выводит ли предыдущий трубопровод выпуск?

Не удалось импортировать cv2 в python2

Руководство для программистов Unix относится к Linux?

Депозитные инструменты Chromium не будут работать

Control-p задерживает сеанс SSH

Как nginx получает запросы от клиента и перенаправляет его на фактический сервер?

Выполняют ли команды в подстановке команд, подстановке процессов и в конвейере принимают входные данные stdin?

установка lubuntu на powermac g5 не загружается после запуска linux

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