Transparent geproxiede Internetverbindung mit PS3 teilen

Transparent geproxiede Internetverbindung mit PS3 teilen

Ich versuche, ein japanisches Karaoke-Spiel auf einer PS3 zu spielen, aber die Latenz ist einfach furchtbar und das Herunterladen von Songs dauert ewig. Eine Empfehlung, die ich bekam, war, meinen Laptop in einen SOCKS-Proxy umzuwandeln, indem ich mich über OpenSSH beim Server meines Freundes in Japan anmelde.

[Server]----(SSH-Tunnel)---[wlan0 <Laptop > eth0]---[PS3]

Also habe ich Folgendes getan:

ssh -ND 4711 [email protected]

In diesem Moment habe ich versucht, google.com von meinem Laptop aus mit Firefox (mit SOCKS-Proxy-Einstellungen) zu erreichen und wurde zu google.co.jp umgeleitet. Großartig.

Dann wollte ich meine PS3 über Ethernet mit meinem Laptop verbinden.

Ich habe eth0 zunächst eine statische IP zugewiesen mit:

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

Ich habe dann einen DHCP-Server auf meinem Laptop gestartet, um der PS3 eine IP zuzuweisen mit:

systemctl start dhcp4.service

Und schließlich habe ich NAT mit etwas iptables-Magie aktiviert:

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

Ich ging zu „Netzwerkeinstellungen“ und testete die Verbindung von meiner PS3 und es schien zu funktionieren. Ich startete den Webbrowser und google.com wurde auf google.fr umgeleitet. Wie dumm, ich hatte vergessen, die Verbindung an den richtigen Port weiterzuleiten.

Nachdem viele Verbindungsweiterleitungen über iptables nicht funktionierten, habe ich beschlossen, es mit einem transparenten Proxy zu versuchen: Redsocks.http://darkk.net.ru/redsocks/

Nach der Installation habe ich /etc/redsocks.conf meinen Anforderungen entsprechend geändert:

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;
}

wobei der Rest so belassen wird, wie er warhttps://github.com/darkk/redsocks/blob/master/redsocks.conf.example

Ich habe die grundlegenden Redsocks.rules verwendet, die im von mir installierten Paket enthalten waren:

*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

Dadurch konnte ich die Verwendung der SOCKS-Proxy-Einstellungen in Firefox und Luakit beenden, was ich durch den Test bestätigte, bei dem google.com in google.co.jp umgewandelt wurde.

Ich dachte, ich müsste NAT noch aktivieren, also habe ich es noch einmal gemacht:

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

Die PS3 hat anscheinend den systemweiten Proxy umgangen und google.com wurde auf google.fr umgeleitet. Ich habe dann die Datei redsocks.rules so verwendet, wie sie war, ohne Masquerading. Ich dachte, dass ich ohnehin kein NAT brauchen würde, da der Redsocks-Server anscheinend auf jeder Schnittstelle lauscht.

Ich habe versucht, die PS3 erneut anzuschließen und habe die folgende Meldung erhalten (nachdem die PS3 eine IP von meinem DHCP-Server erhalten hatte und keine Internetverbindung herstellen konnte):

„Bei der Kommunikation mit dem Server ist ein Fehler aufgetreten. Dies ist ein DNS-Fehler.“

Da bin ich gerade. Ich vermute aber, dass es ein Problem mit Redsocks sein könnte, da es einen DNS-Server namens dnstc verwendet, der laut Dokumentation Folgendes tut:

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;
}

Meine wilde Vermutung ist, dass meine PS3 die DNS-Auflösung über UDP anfordert und dass dnstc immer mit „abgeschnittener Antwort“ antwortet. Wenn ich das richtig verstehe, sollte es die Anfrage über TCP erneut senden, aber anscheinend erzeugt es stattdessen einen DNS-Fehler??

Was soll ich tun? Oder genauer:

  • Sind Redsocks unnötig? Bin ich einfach iptables-unkundig?
  • Soll ich einen DNS-Server installieren und die DNS-Anfragen weiterleiten? Und wenn ja, wie?

Vielen Dank, dass Sie sich diese Textwand durchgelesen haben! Ich hoffe, für eine erste Frage ist sie nicht zu langweilig …

Antwort1

Sie können die PS3 so einstellen, dass sie einen statischen DNS-Server verwendet. Sie könnten versuchenOpenDNS, die Server auf 208.67.222.222und hat 208.67.220.220, oder versuchenDer öffentliche DNS-Server von Googlean 8.8.8.8und 8.8.4.4.

verwandte Informationen