Compartilhando conexão de Internet com proxy transparente com PS3

Compartilhando conexão de Internet com proxy transparente com PS3

Estou tentando jogar um jogo de karaokê japonês em um PS3, mas a latência é horrível e o download de músicas leva uma eternidade. Uma recomendação que recebi foi transformar meu laptop em um proxy SOCKS fazendo login via OpenSSH no servidor do meu amigo no Japão.

[servidor]----(túnel ssh)---[wlan0 <laptop> eth0]---[PS3]

Então foi isso que eu fiz:

ssh -ND 4711 [email protected]

Naquele momento, tentei acessar google.com do meu laptop usando o Firefox (com configurações de proxy SOCKS) e fui redirecionado para google.co.jp. Ótimo.

Então eu queria conectar meu PS3 ao meu laptop via Ethernet.

Primeiro atribuí um IP estático à eth0 com:

ip link set dev eth0 up
ip addr add 139.96.30.100/24 dev eth0

Em seguida, iniciei um servidor DHCP no meu laptop para fornecer um IP ao PS3 com:

systemctl start dhcp4.service

E finalmente habilitei o NAT com alguma mágica do iptables:

iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

Fui em “Configurações de Rede” e testei a conexão do meu PS3 e legal, pareceu funcionar. Iniciei o navegador da web e google.com foi redirecionado para google.fr. Que estúpido, esqueci de encaminhar a conexão para a porta certa.

Depois de muito encaminhamento de conexão através do iptables que não funcionou resolvi tentar usar um proxy transparente: redsocks.http://darkk.net.ru/redsocks/

Após a instalação, modifiquei /etc/redsocks.conf para atender às minhas necessidades:

redsocks {
    local_ip=0.0.0.0; // documentation says: "use 0.0.0.0 if you want to listen on every interface"
    local_port=31388;
    ip=127.0.0.1;
    port=4711;
}

com o resto deixado de fora como estavahttps://github.com/darkk/redsocks/blob/master/redsocks.conf.example

Usei o redsocks.rules básico fornecido no pacote que instalei:

*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:REDSOCKS - [0:0]

# Redirect all output through redsocks
-A OUTPUT -p tcp -j REDSOCKS

# Whitelist LANs and some other reserved addresses.
# https://en.wikipedia.org/wiki/Reserved_IP_addresses#Reserved_IPv4_addresses
-A REDSOCKS -d 0.0.0.0/8 -j RETURN
-A REDSOCKS -d 10.0.0.0/8 -j RETURN
-A REDSOCKS -d 127.0.0.0/8 -j RETURN
-A REDSOCKS -d 169.254.0.0/16 -j RETURN
-A REDSOCKS -d 172.16.0.0/12 -j RETURN
-A REDSOCKS -d 192.168.0.0/16 -j RETURN
-A REDSOCKS -d 224.0.0.0/4 -j RETURN
-A REDSOCKS -d 240.0.0.0/4 -j RETURN

# Redirect everything else to redsocks port
-A REDSOCKS -p tcp -j REDIRECT --to-ports 31338

COMMIT

Isso me permitiu parar de usar as configurações de proxy SOCKS no Firefox e no luakit, o que confirmei com o teste google.com se transformando em google.co.jp.

Achei que ainda precisava ativar o NAT, então refiz:

iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

O PS3 aparentemente contornou o proxy de todo o sistema e o google.com foi redirecionado para google.fr. Em seguida, usei o arquivo redsocks.rules como estava, sem mascaramento. Eu acreditava que de qualquer maneira não precisaria de NAT, já que o servidor redsocks aparentemente escuta em todas as interfaces.

Tentei conectar o PS3 novamente e recebi a seguinte mensagem (depois que o PS3 adquiriu um IP do meu servidor DHCP e não conseguiu obter uma conexão com a Internet):

"Ocorreu um erro durante a comunicação com o servidor. Este é um erro de DNS."

É onde estou agora. Eu acho que pode ser um problema com redsocks, já que ele usa um servidor DNS chamado dnstc que faz isso de acordo com a documentação:

dnstc {
    // fake and really dumb DNS server that returns "truncated answer" to
    // every query via UDP, RFC-compliant resolver should repeat same query
    // via TCP in this case.
    local_ip = 127.0.0.1;
    local_port = 5300;
}

Meu palpite é que meu PS3 solicita resolução de DNS via UDP e que o dnstc responde com "resposta truncada" o tempo todo. Se bem entendi, ele deveria reenviar a solicitação através de TCP, mas aparentemente produz um erro de DNS?

O que devo fazer? Ou mais precisamente:

  • As redsocks são desnecessárias? Eu sou apenas analfabeto em iptables?
  • Devo instalar um servidor DNS e encaminhar as solicitações DNS? Se sim, como?

Obrigado por ler aquela parede de texto! Espero que não seja muito ruim para uma primeira pergunta ...

Responder1

Você pode configurar o PS3 para usar um servidor DNS estático. Você poderia tentarOpenDNS, que possui servidores ativados 208.67.222.222e 208.67.220.220, ou tenteServidor DNS público do Googleem 8.8.8.8e 8.8.4.4.

informação relacionada