Finalmente resolvido.
iptables -t nat -I PREROUTING -i ppp+ -p tcp -j REDIRECT --to 12345
Eu tenho uma caixa Linux (virtual) no Ubuntu, que tem redsocks prontos. Dentro da máquina, eu pude confirmar que os redsocks funcionaram (use wget
para verificar o IP externo).
Agora, quero que outras máquinas clientes compartilhem o mesmo proxy redsocks. Então eu configurei um servidor PPTP (linux-pptp) na máquina linux, e conectei máquinas de clientes à caixa linux usando o PPTP.
Embora o cliente ainda tenha a rede após a conexão PPTP, ele não possui efeito de proxy de redsocks. De alguma forma, o PPTP e os redsocks não estão conectados juntos.
Aqui estão minhas regras do 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
Por favor, note que existe apenas um cartão lan (eth1) na máquina, e o serviço redsocks está localizado em 127.0.0.1:12345
.
Eu já fiquei preso por um dia inteiro, qualquer ajuda seria muito apreciada. Obrigado.
Finalmente resolvido.
iptables -t nat -I PREROUTING -i ppp+ -p tcp -j REDIRECT --to 12345