1

Вот моя краткая настройка:

  • Xbox 360
  • Raspberry PI 2 работает под управлением ArchLinuxARM (сигнализация)
  • Основной порт Ethernet Rasberry Pi имеет кабель, соединяющий непосредственно с моим основным маршрутизатором
  • Xbox имеет перекрестный кабель, подключенный к ethernet-to-usb на Raspberry Pi
  • Я использую сервис openvpn systemd (который создает устройство tun0 )

Я купил учетную запись VPN и хотел направить свой трафик xbox 360 через нее. После того, как делать исследование, я был в состоянии получить мой Xbox , используя мое малиновое пи как маршрутизатор. Мой raspberry pi подключается к сети / интернету через eth0 , и к нему подключается перекрестный кабель к xbox через eth1 .

eth0 статический ip до 10.0.0.31 , у eth1 статический ip 10.0.1.100 , а у xbox статический ip 10.0.1.101 .

Вот мой конфиг iptables:

# Generated by iptables-save v1.4.21 on Mon Apr  6 00:37:36 2015
*filter
:INPUT ACCEPT [91:6512]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [45:4220]
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth1 -o eth0 -j ACCEPT
-A FORWARD -d 10.0.1.101/32 -i eth0 -p tcp -m tcp --dport 3074 -j ACCEPT
-A FORWARD -d 10.0.1.101/32 -i eth0 -p udp -m multiport --dports 88,3074 -j ACCEPT
COMMIT
# Completed on Mon Apr  6 00:37:36 2015
# Generated by iptables-save v1.4.21 on Mon Apr  6 00:37:36 2015
*nat
:PREROUTING ACCEPT [8:3607]
:INPUT ACCEPT [2:144]
:OUTPUT ACCEPT [1:86]
:POSTROUTING ACCEPT [2:146]
-A PREROUTING -i eth0 -p tcp -m tcp --dport 3074 -j DNAT --to-destination 10.0.1.101
-A PREROUTING -i eth0 -p udp -m multiport --ports 88,3074 -j DNAT --to-destination 10.0.1.101
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Mon Apr  6 00:37:36 2015

Моя конфигурация xbox (с помощью Google DNS, кстати):

  • Настройки IP: Ручной
  • IP-адрес: 10.0.1.101
  • Маска подсети: 255.255.255.0
  • Шлюз: 10.0.1.100
  • Настройки DNS: вручную
  • Первичная: 8.8.8.8
  • Вторичный: 8.8.4.4

Это прекрасно работает, когда мое VPN-соединение отключено.

Когда я включаю свою службу openvpn, xbox больше не будет подключаться к Интернету (сообщая об ошибке DNS), однако raspberry pi все еще может выходить в Интернет, и я могу подтвердить, что меня успешно маршрутизируют через VPN ,

Когда VPN отключен, xbox нормально подключается к Интернету и работает как положено.

Я недостаточно знаком с таблицами ip и этой общей маршрутизацией, чтобы знать, генерируются ли журналы, является ли проблема моей конфигурацией iptables, xbox или чем-то еще.

Есть идеи, как решить эту проблему?

Обновить:

Я подключил другой ноутбук Linux (который использует NetworkManager, если это имеет значение) к eth1 со следующей конфигурацией:

  • Метод IPv4: ручной
  • DNS-серверы: 10.0.0.1
  • IP-адрес: 10.0.1.101
  • Маска сети: 255.255.255.0
  • Шлюз: 10.0.1.100

Когда соединение VPN отключено, я могу нормально пользоваться Интернетом. Когда vpn включен, я могу получить доступ к локальной сети (и даже могу подключиться по ssh к raspberry pi, используя IP-адрес 10.0.0.31 ), однако DNS не работает, и я также не могу пропинговать внешние адреса.

Есть ли какой-нибудь набор журналов, на которые я должен поставить хвост, чтобы точно увидеть, что происходит?

Обновление № 2:

Я использую этот пакет arch linux для профилей OpenVPN, и у меня есть файл, настроенный для автоматического входа в систему. Я заметил, что он запускает скрипт, который каким-то образом изменяет resolv.conf, который может что-то делать.

1 ответ1

0

В итоге я нашел другое руководство и немного изменил iptables для своих различных сервисов, которые хотел маршрутизировать.

Получившийся файл в итоге выглядел так:

filter

# Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT

# Accepts all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Forward all data related to our requests
-A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED

# Allows all outbound traffic
# You could modify this to only allow certain traffic
-A OUTPUT -j ACCEPT

# Allows HTTP and HTTPS connections from anywhere (the normal ports for websites)
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
-A INPUT -p tcp --dport 22 -j ACCEPT

# Allow Transmission daemon from anywhere, with default ports
-A INPUT -p tcp --dport 9091 -j ACCEPT
-A INPUT -p tcp --dport 51413 -j ACCEPT

# Allows SSH connections (change the port number if you need to)
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

# Allow ping
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

# log iptables denied calls (access via 'dmesg' command)
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

# Reject all other inbound - default deny unless explicitly allowed policy:
-A INPUT -j REJECT

COMMIT

*nat
:PREROUTING ACCEPT [1:148]
:INPUT ACCEPT [1:148]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o tun0 -j MASQUERADE

COMMIT

Кое-что из этого - просто работа с догадками, и я уверен, что она может быть оптимизирована / улучшена, но пока она работает для меня и немного более обобщена (без конкретных ips и т.д.)

Это немного изменило мои настройки; теперь я подключаю свой xbox через wifi и могу просто вручную установить свой шлюз на статический ip малинового пи; он отлично работает для xbox, моего ноутбука, телефона и т. д. Просто добавлены новые сетевые профили, чтобы я мог подключаться и отключаться от VPN-соединения без каких-либо проблем.

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