Вопрос или проблема
Я за CGNAT, и перенаправление портов невозможно. Также статический IP.
У меня есть два VPS для туннелирования трафика из дома через VPS (хочу проверить, какой быстрее).
На NAS для подключения:
- VPS 1 wg это
[Interface]
Приватный ключ = /0CmwhuddTndDMi2QQqQGc=
Адрес = 10.0.0.11/32
[Peer]
Публичный ключ = key=
Разрешенные IP = 10.0.0.1/32
Конечная точка = vps1ip:51820
Постоянный keepalive = 25
- VPS 2 wg это
[Interface]
Приватный ключ = +XgQrEKD2w=
Адрес = 10.0.0.20/32
[Peer]
Публичный ключ = GHR92uORsZvzbdd8GkSin/=
Разрешенные IP = 10.0.0.1/32
Конечная точка = vps2ip:51820
Постоянный keepalive = 25
VPS 1 имеет конфигурацию и iptables как следующие:
[Interface]
Приватный ключ = Gadde=
Адрес = 10.0.0.1/24
Порт прослушивания = 51820
[Peer]
Публичный ключ = 2YaVQ/+k=
Разрешенные IP = 10.0.0.11/32
iptables -A FORWARD -p tcp -d 10.0.0.11 –dport 32400 -j ACCEPT
iptables -A FORWARD -p tcp -s 10.0.0.11 –sport 32400 -j ACCEPT
iptables -A PREROUTING -t nat -p tcp -d vps1ip –dport 32400 -j DNAT –to-destination 10.0.0.11:32400
iptables -A POSTROUTING -t nat -p tcp -d 10.0.0.11 –dport 32400 -j SNAT –to-source 10.0.0.1
iptables -t nat -A POSTROUTING -s 10.0.0.11 -o enp3s0 -j MASQUERADE
VPS 2 имеет конфигурацию и iptables как следующие:
[Interface]
Приватный ключ =/7usbb0objdgeFX20=
Адрес = 10.0.0.1/24
Порт прослушивания = 51820
[Peer]
Публичный ключ = kry=
Разрешенные IP = 10.0.0.20/32
iptables -A FORWARD -p tcp -d 10.0.0.20 –dport 32400 -j ACCEPT
iptables -A FORWARD -p tcp -s 10.0.0.20 –sport 32400 -j ACCEPT
iptables -A PREROUTING -t nat -p tcp -d vps2ip –dport 32400 -j DNAT –to-destination 10.0.0.20:32400
iptables -A POSTROUTING -t nat -p tcp -d 10.0.0.20 –dport 32400 -j SNAT –to-source 10.0.0.1
iptables -t nat -A POSTROUTING -s 10.0.0.20 -o ens160 -j MASQUERADE
Фактический внутренний IP NAS 192.168.1.10
Оба имеют net.ipv4.ip_forward = 1
Оба имеют отключенный UFW
Оба могут пинговать друг друга, то есть VPS1 и NAS, VPS2 и NAS
Но Plex недоступен на VPS2
И на VPS1 он доступен только если я укажу пользовательский URL публичного IP VPS1 в настройках Plex, но удаленный доступ не показывает доступа, хотя он работает удаленно нормально.
Есть ли какие-либо настройки, которые я пропустил или сделал неправильно?
Эта настройка предназначена для обеспечения того, чтобы только Plex проходил через BPS, а остальные службы на NAS работали только через ISP.
Пожалуйста, подскажите.
Ответ или решение
Настройка удаленного доступа к Plex через Synology NAS с использованием WireGuard и VPS в условиях CGNAT
С учетом вашего сценария, где вы находитесь за CGNAT и не имеете возможности настраивать переадресацию портов, настройка удаленного доступа к Plex через WireGuard и VPS является разумным решением. В этом ответе мы подробно рассмотрим настроенные вами конфигурации и предложим рекомендации по устранению проблем.
Описание конфигурации
Ваша текущая настройка включает два VPS и Synology NAS, который имеет внутренний IP-адрес 192.168.1.10. Вы настроили WireGuard на каждом из VPS и используете IP-адреса для взаимодействия с NAS:
- VPS 1
- Внутренний IP: 10.0.0.1
- Клиент (NAS): 10.0.0.11
- VPS 2
- Внутренний IP: 10.0.0.1
- Клиент (NAS): 10.0.0.20
Проблемы с доступом к Plex
-
Проблема с доступом через VPS 1: Вы можете получить доступ к Plex через публичный IP VPS 1 только при использовании кастомного URL. При этом отметка о "доступе из сети" в Plex остается без изменений. Это связано с тем, что Plex может не видеть корректный путь к клиенту (NAS) и не может правильно маршрутизировать трафик из-за неправильной настройки удаленного доступа.
-
Проблема с VPS 2: Вы упомянули, что Plex не доступен через VPS 2. Это может быть связано с неправильной конфигурацией маршрутизации или правилами iptables.
Рекомендации по устранению проблем
Проверка конфигурации WireGuard
Убедитесь, что у вас правильные настройки на каждом из VPS и на NAS. Проверьте следующие параметры:
-
Убедитесь, что
PersistentKeepalive
настроен правильно, он должен быть установлен на 25, как у вас уже указано, чтобы поддерживать соединение:PersistentKeepalive = 25
-
Проверьте ключи в секциях
[Peer]
, они должны быть правильно связаны, и совместимость ключей должна быть проверена.
Настройка iptables для Plex
Убедитесь, что ваши правила iptables на VPS правильно настроены для перенаправления трафика на Plex. Например, убедитесь, что Plex использует порт 32400, и все правила для перенаправления и NAT настроены правильно для каждого VPS.
Пример конфигурации iptables:
# Для VPS1
iptables -A FORWARD -p tcp -d 10.0.0.11 --dport 32400 -j ACCEPT
iptables -A FORWARD -p tcp -s 10.0.0.11 --sport 32400 -j ACCEPT
iptables -A PREROUTING -t nat -p tcp -d vps1ip --dport 32400 -j DNAT --to-destination 10.0.0.11:32400
iptables -A POSTROUTING -t nat -p tcp -d 10.0.0.11 --dport 32400 -j SNAT --to-source 10.0.0.1
iptables -t nat -A POSTROUTING -s 10.0.0.11 -o enp3s0 -j MASQUERADE
# Для VPS2
iptables -A FORWARD -p tcp -d 10.0.0.20 --dport 32400 -j ACCEPT
iptables -A FORWARD -p tcp -s 10.0.0.20 --sport 32400 -j ACCEPT
iptables -A PREROUTING -t nat -p tcp -d vps2ip --dport 32400 -j DNAT --to-destination 10.0.0.20:32400
iptables -A POSTROUTING -t nat -p tcp -d 10.0.0.20 --dport 32400 -j SNAT --to-source 10.0.0.1
iptables -t nat -A POSTROUTING -s 10.0.0.20 -o ens160 -j MASQUERADE
Установка и настройка Plex
-
Настройки Plex: Убедитесь, что в Plex вы настроили правильный внешний IP. Вы можете попробовать использовать динамический DNS, чтобы управлять изменениями публичного IP во время конфигурации.
-
Проверка портов: Используйте инструменты для проверки открытых портов, такие как
netstat
илиnmap
, чтобы убедиться, что Plex слушает на порту 32400 и может принимать входящие соединения.
Вывод
После внесения этих изменений проверьте доступность Plex через публичные IP ваших VPS. Убедитесь, что настроены все компоненты, чтобы избежать проблем с маршрутами и доступом. Если проблема продолжается, возможно, полезно будет просмотреть логи Plex и настройки вашего NAS для выявления ошибок в конфигурации сети.
Надеюсь, эти рекомендации помогут вам настроить стабильный и надежный доступ к Plex через вашу сетевую конфигурацию.