7

Я пытаюсь играть в японскую игру караоке на PS3, но задержка просто ужасна, и загрузка песен занимает вечность. Одна рекомендация, которую я получил, состояла в том, чтобы превратить мой ноутбук в прокси-сервер SOCKS, выполнив вход через OpenSSH на сервер моего друга в Японии.

[сервер] ----(туннель ssh)--- [wlan0 <ноутбук> eth0] --- [PS3]

Вот что я сделал:

ssh -ND 4711 login@friend.server

В этот момент я попытался зайти на google.com со своего ноутбука с помощью Firefox (с настройками прокси-сервера SOCKS), и меня перенаправили на google.co.jp. Отлично.

Затем я хотел подключить PS3 к ноутбуку через Ethernet.

Сначала я назначил статический IP для eth0 с помощью:

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

Затем я запустил DHCP-сервер на своем ноутбуке, чтобы дать IP для PS3 с:

systemctl start dhcp4.service

И, наконец, я включил NAT с некоторой магией iptables:

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

Я зашел в "Настройки сети" и проверил соединение с моей PS3 и хорошо, похоже, работает. Я запустил веб-браузер, и 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

Это позволило мне прекратить использование настроек прокси-сервера SOCKS в Firefox и luakit, что я подтвердил, превратив google.com в тест google.co.jp.

Я решил, что мне все еще нужно включить NAT, поэтому я переделал:

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

PS3 явно обошел общесистемный прокси, и google.com был перенаправлен на google.fr. Затем я использовал файл redsocks.rules без маскировки. Я полагал, что в любом случае мне не понадобится NAT, поскольку сервер redsocks, очевидно, слушает каждый интерфейс.

Я попытался подключить PS3 снова, и я получил следующее сообщение (после того, как PS3 получил IP-адрес от моего DHCP-сервера и не смог получить подключение к Интернету):

"Произошла ошибка во время связи с сервером. Это ошибка DNS. "

Вот где я сейчас. Я предполагаю, что это может быть проблемой с redsocks, так как он использует DNS-сервер dnstc, который делает это в соответствии с документацией:

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 запрашивает разрешение DNS через UDP и что dnstc отвечает "усеченным ответом" все время. Если я правильно понимаю, он должен повторно отправить запрос через TCP, но, по-видимому, вместо этого выдает ошибку DNS ??

Что я должен делать? Или точнее:

  • В красных лирях нет необходимости? Я просто iptables-неграмотный?
  • Должен ли я установить DNS-сервер и переслать DNS-запросы? Если так, то как?

Спасибо за чтение этой стены текста! Надеюсь, это не слишком много для первого вопроса ...

1 ответ1

2

Вы можете настроить PS3 на использование статического DNS-сервера. Вы можете попробовать OpenDNS, который имеет серверы на 208.67.222.222 и 208.67.220.220 , или попробовать общедоступный DNS-сервер Google на 8.8.8.8 и 8.8.4.4 .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .