O navegador está ok, mas não pode direcionar a internet através de um servidor de sombras

3

Ok, parece uma coisa fácil, mas eu simplesmente não consegui fazer funcionar depois de muitas pesquisas. Eu tenho o Ubuntu 14.04.

Este é o arquivo config.json incluindo as configurações do servidor do meu amigo que está executando o shadowsocks:

{
    "server":"ip address",
    "server_port":23,
    "local_port":1234,
    "password":"password",
    "timeout":600,
    "method":"aes-256-cfb"
}

Eu faço sslocal -c config.json e me conecto com sucesso ao servidor.

Agora, por exemplo, posso fazê-lo funcionar com google-chrome usando o seguinte comando: google-chrome --proxy-server="socks5://127.0.0.1:1234" --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost"

A questão é como posso fazer toda a conexão com a Internet para passar por esse servidor primeiro. Para que cada aplicativo possa usá-lo por padrão. Algo que você pode ativar e desativar simplesmente.

Coisas que tentei e falhei:

Usando tsocks - > link

Usando iptables como sudo iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination 127.0.0.1:1234 - > link

Usando as configurações do sistema - > Rede - > Proxy de rede junto com dconf-tools para excluir hosts - > link

    
por sinaza 19.07.2015 / 12:20

2 respostas

4

Não existe uma maneira geral de encapsular todo tráfego da Internet através de um SOCKS-proxy. No entanto, existem maneiras específicas para alguns protocolos - mas não todos. O SOCKS5 suporta tráfego TCP e UDP, mas não o ICMP, tanto quanto eu sei. Portanto, você não pode usar o tradicional ping por meio de um proxy, por exemplo.

Aqui está uma lista de clientes de proxy (a maioria deles suporta SOCKS5): Link

Eu pessoalmente tentei a parte cliente de Dante e proxychains (o original, não o sucessor -ng) no Linux, e ambos funcionaram para mim (proxychains provou ser um pouco mais estável). Ambos funcionam redirecionando as solicitações de API de soquete do aplicativo (para que eles tenham que configurar a variável de ambiente LD_PRELOAD para o aplicativo) em sua própria biblioteca. Isso pode representar um problema quando o aplicativo usa um binário setuid como LD_PRELOAD e o recurso setuid é incompatível com segurança. Além disso, nem todas as funções da API relacionadas à rede são redirecionadas, portanto, alguns aplicativos estranhos podem enfrentar problemas (por exemplo: quando o aplicativo deseja obter uma lista de interfaces de rede e endereços IP).

Esses clientes proxy do tipo LD_PRELOAD geralmente não são projetados para funcionar em um nível de sistema, você deve alterar a maneira de ativar o aplicativo (prefixando o aplicativo com o cliente proxy). Teoricamente, você poderia configurar a variável ambiental LD_PRELOAD para todo o seu sistema ou sessão de login, e pode até funcionar em alguns casos, no entanto, você poderia ter problemas sutis. Além disso, não é possível ligar ou desligar o redirecionamento sem reiniciar os aplicativos.

    
por 11.09.2015 / 13:31
2

openvpn é o mais fácil para rotear tudo e você pode se conectar ao servidor openvpn via proxy de socks

Modifique o script openvpn para conectar via porta socks 1234 adicionando estas duas linhas:

 socks-proxy localhost 1234
 socks-proxy-retry

Isso pode ser útil se o protocolo openvpn estiver sendo bloqueado como em alguns dos países mais opressivos. Em geral, o proxy de meias é definido por aplicativo. A solução acima requer um servidor openvpn e um servidor shadowsocks.

    
por 12.09.2015 / 02:15