У меня есть один (виртуальный) Linux-бокс в Ubuntu, в котором настроены redsocks. Внутри машины я мог подтвердить, что красные носки действительно работали (используйте wget
для проверки внешнего IP).
Теперь я хочу, чтобы другие клиентские машины использовали один и тот же прокси-сервер redsocks. Итак, я установил PPTP-сервер (linux-pptp) на Linux-машине и подключил клиентские машины к Linux-серверу с помощью PPTP.
Хотя клиент по-прежнему получает сеть после PPTP-соединения, он не имеет эффекта прокси-сервера redsocks. Как-то не связаны между собой PPTP и редсоки.
Вот мои правила iptables:
iptables -t nat -N REDSOCKS
iptables -t nat -A REDSOCKS -d 0.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 127.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 169.254.0.0/16 -j RETURN
iptables -t nat -A REDSOCKS -d 172.16.0.0/12 -j RETURN
iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN
iptables -t nat -A REDSOCKS -d 224.0.0.0/4 -j RETURN
iptables -t nat -A REDSOCKS -d 240.0.0.0/4 -j RETURN
iptables -t nat -A REDSOCKS -p tcp -o eth1 -j DNAT --to 127.0.0.1:12345
iptables -t nat -A OUTPUT -p tcp -j REDSOCKS
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth1 -j MASQUERADE
iptables -A FORWARD -p tcp --syn -s 192.168.10.0/24 -j TCPMSS --set-mss 1356
Обратите внимание, что в машине есть только одна LAN-карта (eth1), а служба redsocks расположена по адресу 127.0.0.1:12345
.
Я уже застрял на один полный день, любая помощь будет очень признательна. Спасибо.
Наконец-то решил.
iptables -t nat -I PREROUTING -i ppp+ -p tcp -j REDIRECT --to 12345