web-dev-qa-db-ja.com

PS3との透過的にプロキシされたインターネット接続の共有

PS3で日本のカラオケゲームをプレイしようとしていますが、待ち時間がひどく、曲のダウンロードに永遠に時間がかかります。私が得た推奨事項の1つは、OpenSSH経由で日本の友人のサーバーにログインしてラップトップをSOCKSプロキシに変えることでした。

[サーバー] - sshトンネル)--- [wlan0 <ラップトップ> eth0] --- [PS3]

それが私がしたことです:

ssh -ND 4711 [email protected]

その瞬間、Firefox(SOCKSプロキシ設定を使用)を使用してラップトップからgoogle.comにアクセスしようとしましたが、google.co.jpにリダイレクトされました。すごい。

次に、イーサネット経由でPS3をラップトップに接続したいと思いました。

最初に静的IPをeth0に割り当てました。

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

次に、ラップトップでDHCPサーバーを起動して、PS3にIPを提供しました。

systemctl start dhcp4.service

そして最後に、いくつかのiptablesマジックでNATを有効にしました:

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

「ネットワーク設定」に行き、PS3とニースからの接続をテストしましたが、うまくいったようです。 Webブラウザーを起動すると、google.comがgoogle.frにリダイレクトされました。なんてばかげているのか、接続を正しいポートに転送するのを忘れました。

動作しなかったiptablesを介した多くの接続転送の後、透過プロキシ:redsocksを使用してみることにしました。 ---(http://darkk.net.ru/redsocks/

インストール後、ニーズに合わせて/etc/redsocks.confを変更しました。

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

残りはそのままで https://github.com/darkk/redsocks/blob/master/redsocks.conf.example

インストールしたパッケージに含まれている基本的なredsocks.rulesを使用しました。

*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

これにより、FirefoxとluakitでのSOCKSプロキシ設定の使用を停止することができました。これは、google.comがgoogle.co.jpテストに変わることで確認しました。

NATを有効にする必要があると思ったので、やり直しました:

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

PS3は明らかにシステム全体のプロキシをバイパスし、google.comはgoogle.frにリダイレクトされました。次に、マスカレードなしのredsocks.rulesファイルをそのまま使用しました。 redsocksサーバーは明らかにすべてのインターフェイスでリッスンしているので、とにかくNATは必要ないと思いました。

PS3を再度接続しようとすると、次のメッセージが表示されます(PS3がDHCPサーバーからIPを取得し、インターネット接続の取得に失敗した後)。

「サーバーとの通信中にエラーが発生しました。これはDNSエラーです。」

それが私が今いるところです。ドキュメントによるとこれを行うdnstcと呼ばれるDNSサーバーを使用しているため、redsocksでは問題になる可能性があると思います。

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

私の大げさな推測では、私のPS3はUDPを介してDNS解決を要求し、dnstcは常に「切り捨てられた回答」で応答します。私が正しく理解していれば、TCPを介してリクエストを再送信する必要がありますが、代わりにDNSエラーが発生するようです??

私は何をすべきか?またはより正確に:

  • レッドソックスは不要ですか?私はiptables-文盲ですか?
  • DNSサーバーをインストールしてDNS要求を転送する必要がありますか?もしそうなら、どのように?

そのテキストの壁を読んでくれてありがとう!それが最初の質問のためにあまり吸わないことを願っています...

7
paob

静的DNSサーバーを使用するようにPS3を設定できます。 208.67.222.222208.67.220.220にサーバーがある OpenDNS を試すか、8.8.8.88.8.4.4GoogleのパブリックDNSサーバー を試すことができます。

2
Jarett Millard