Перенаправьте HTTP-трафик с локальной сети на внешний прокси-сервер с помощью iptables на моем маршрутизаторе

Моя цель - прозрачно проксировать все HTTP-запросы с одного IP (мой ноутбук, 192.168.1.134) в моей локальной сети на внешний IP (интернет VPS, скажем, X.X.X.X) запуск прокси-сервера (в частности, mitmproxy работает в прозрачном режиме), прослушивая порт 80.

Моя домашняя локальная сеть работает на маршрутизаторе ASUS RT-N66U с прошивкой Asuswrt-Merlin. У роутера есть ip 192.168.1.1 и является шлюзом по умолчанию для каждого устройства в моей сети. Чтобы переслать трафик, я ssh'd на мой маршрутизатор и запустил следующее iptables команды:

iptables -t nat -A PREROUTING -s 192.168.1.134 -p tcp --dport 80 -j DNAT --to X.X.X.X:80
iptables -t nat -A POSTROUTING -j MASQUERADE

Кроме того, на моем маршрутизаторе включена переадресация IP:

admin@RT-N66U:/tmp/home/root# cat /proc/sys/net/ipv4/ip_forward
1

Это приводит к чему-то, но это не то, что я ожидаю. От 192.168.1.134 (мой ноутбук), когда я делаю простой запрос http (например, curl http://example.com), Я могу видеть в журнале событий моего прокси, что mitmproxy сообщает, что клиент подключился (используя общедоступный IP-адрес NAT моего маршрутизатора, выданный моим Интернет-провайдером), но это все, что он получает. Это никогда не идет дальше, и моя команда curl просто ждет. В конце концов я вижу "Сброс соединения по одноранговой сети" в журнале моего прокси, и соединение закрывается.

Любая помощь будет предложена. Я должен признать, я не очень опытный с iptables,

0 ответов

Другие вопросы по тегам