Я хочу перенаправить весь трафик с порта 443 на внутренний порт 8080. Я использую этот конфиг для iptables:
iptables -t nat -I PREROUTING --source 0/0 --destination 0/0 -p tcp \
--dport 443 -j REDIRECT --to-ports 8080
Это работает для всех внешних клиентов. Но если я пытаюсь получить доступ к порту 443 с той же машины, я получаю сообщение об ошибке соединения отказано.
wget https://localhost
Как я могу расширить правило iptables для перенаправления локального трафика тоже?
Ответы:
PREROUTING не используется интерфейсом обратной связи, вам также необходимо добавить правило OUTPUT:
источник
Для перенаправления пакетов с локального хоста на другую машину действует правило:
будет работать, НО вам также нужно включить эту опцию в ядре:
Без настройки ядра это не сработает.
источник
Как насчет этого?
источник
Вы сказали, что получили сообщение об ошибке соединения отказано Это означает, что не существует локального процесса, прослушивающего порт, к которому вы пытаетесь подключиться! Чтобы проверить процессы прослушивания, используйте команду:
После применения правила у вас должен быть процесс, прослушивающий порт 8080 для подключения.
Похоже, у вас должно быть следующее правило:
Помните, что вы отправляете с локального хоста. Итак, вам нужно перенаправить выходной пакет.
источник