В идеале я пытаюсь использовать свой ноутбук и 3Gphone в качестве WiFi-роутера для перенаправления трафика HTTP, но не HTTPS, на Privoxy, который затем перенаправляет трафик через SSH-туннель на VPS-сервер Ziproxy.
для простоты в настоящее время privoxy настроен на значения по умолчанию, т.е. не перенаправляет на другой прокси-сервер. за исключением приема перехватов 1
также sysctl net.ipv4.ip_forward=1
следующие команды iptable работают локально, но игнорируются трафиком FORWARD, т.е. пользователи, подключенные по Wi-Fi, не фильтруются Privoxy, а локальный пользователь фильтруется. Мне нужно противоположное поведение.
iptables -t nat -A POSTROUTING -o ${INTERNET_IFACE} -j MASQUERADE
iptables -t nat -A OUTPUT -p tcp --dport 80 -m owner --uid-owner privoxy -j ACCEPT
iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 8118
iptables -A FORWARD -i ${WIFI_IFACE} -j ACCEPT
Как принудительно перенаправить HTTP-трафик через Privoxy?
решение1
Причина, по которой это не работает, заключается в том, что вы можете изменять пакеты только определенным образом в определенных частях стека netfilter. Изменять пункт назначения на выходе слишком поздно. Вам нужно изменить его на входе.
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8118
Я рекомендую изучить различные таблицы, составляющие стек netfilter.