iptables -A PREROUTING -i usb0 -t mangle -p tcp --dport 8080 -j MARK --set-mark 1
iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
// roteia o tráfego com a marca 1 para a tabela myusb0
ip rule add fwmark 1 table myusb0
ip route ls
192.168.0.0/24 dev usb1 proto kernel scope link src 192.168.0.136 metric 1
192.168.3.0/24 dev usb0 proto kernel scope link src 192.168.3.182 metric 1
regra ip ls
0: from all lookup local
32762: from all fwmark 0x1 lookup myusb0
32763: from 192.168.3.0/24 lookup myusb0
32764: from 192.168.0.1/24 lookup myusb1
32766: from all lookup main
32767: from all lookup default
rota ip ls tabela myusb0
default via 192.168.3.2 dev usb0
rota ip ls tabela myusb1
default via 192.168.0.1 dev usb1
// abre meias na porta 8080
ssh -f -N -D 0.0.0.0:8080 [email protected]
// verifique se funciona
curl --socks5 192.168.3.182:8080 ip.appspot.com
channel 1: open failed: administratively prohibited: open failed
curl: (7) Failed to receive SOCKS5 connect request ack.
Eu tenho duas conexões de Internet de dois ISPs diferentes e gostaria de abrir um proxy / socks5 em cada um deles. Eu pensei que faria sentido associar cada interface a um número de porta para que pudéssemos gerenciar as conexões.
Eu criei duas tabelas de roteamento ( myusb0
e myusb1
) para cada dispositivo ( usb1
e usb0
) e marquei o tráfego com base no número da porta (por exemplo, na porta 8080
I mark 1) e rotear o tráfego nessa marca para a tabela específica ( myusb0
). Então eu tentei abrir um socks5 naquele IP e tentei localmente, mas por algumas razões ele não funciona.
Uma vez que o trabalho localmente, acho que devo abrir as meias de maneira inversa, para que eu possa disponibilizá-lo para o (s) servidor (es) remoto (s) que precisam usá-lo.
Alguma ideia do motivo pelo qual não está funcionando atualmente e como devo corrigi-lo? Por algumas razões eu acho que a conexão socks está tentando o gateway padrão da tabela principal que não está definida, em vez de seguir a regra da porta 8080
e tentar a tabela myusb0. Estou usando o Ubuntu (última versão).
Deve-se mencionar que ambos ISPs fornecem IPs dinâmicos
Editar
Como eu suspeitava, parece que o tráfego para a porta 8080 não está sendo roteado (esqueça o problema de meias), mas não sei por que
curl portquiz.net:8080
curl: (7) Couldn't connect to server