Вопрос или проблема
Это настройка Docker, которая запускает узел Tailscale, направляет трафик через Gluetun с подключенным NordVPN и рекламирует узел Tailscale как выходной узел.
services:
gluetun:
image: qmcgaw/gluetun
restart: unless-stopped
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun:/dev/net/tun
environment:
- VPN_SERVICE_PROVIDER=nordvpn
- VPN_TYPE=openvpn
- OPENVPN_USER=${NORDVPN_OPENVPN_USER}
- OPENVPN_PASSWORD=${NORDVPN_OPENVPN_PASSWORD}
- SERVER_COUNTRIES=${NORDVPN_SERVER_COUNTRIES}
ports:
- 41641:41641 # порт tailscale
- 3478:3478 # порт stun
tailscale:
image: tailscale/tailscale:latest
network_mode: "service:gluetun"
restart: unless-stopped
cap_add:
- net_admin
- sys_module
volumes:
- ${PWD}/tailscale:/var/lib/tailscale
- /dev/net/tun:/dev/net/tun
environment:
- TS_AUTHKEY=${TAILSCALE_AUTHKEY}
- TS_EXTRA_ARGS=--advertise-exit-node
- TS_STATE_DIR=/var/lib/tailscale
- TS_USERSPACE=true
- TS_HOSTNAME=${TAILSCALE_HOSTNAME}
depends_on:
gluetun:
condition: service_healthy
Проблема в том, что, похоже, происходит только соединение через DERP. Возможно ли установить прямое соединение с выходным узлом, учитывая, что NordVPN не позволяет проброс портов?
.
Ответ или решение
Как включить прямое соединение с выходным узлом Tailscale через Gluetun
Введение
Для пользователей, использующих Tailscale в сочетании с NordVPN через Gluetun, может возникнуть проблема с установлением прямого соединения с выходным узлом (exit node). Вместо этого может происходить соединение через DERP-серверы, что может быть менее эффективным и вызывать задержки. Поскольку NordVPN не поддерживает переадресацию портов, давайте рассмотрим возможности решения данной задачи.
Структура Docker Compose
Ваш docker-compose.yml
файл уже задает необходимую конфигурацию для запуска Gluetun и Tailscale. Вот основные моменты:
-
Проверка конфигурации:
- Убедитесь, что ваша конфигурация
docker-compose.yml
выглядит следующим образом:
services: gluetun: image: qmcgaw/gluetun restart: unless-stopped cap_add: - NET_ADMIN devices: - /dev/net/tun:/dev/net/tun environment: - VPN_SERVICE_PROVIDER=nordvpn - VPN_TYPE=openvpn - OPENVPN_USER=${NORDVPN_OPENVPN_USER} - OPENVPN_PASSWORD=${NORDVPN_OPENVPN_PASSWORD} - SERVER_COUNTRIES=${NORDVPN_SERVER_COUNTRIES} ports: - 41641:41641 # порт Tailscale - 3478:3478 # STUN порт tailscale: image: tailscale/tailscale:latest network_mode: "service:gluetun" restart: unless-stopped cap_add: - net_admin - sys_module volumes: - ${PWD}/tailscale:/var/lib/tailscale - /dev/net/tun:/dev/net/tun environment: - TS_AUTHKEY=${TAILSCALE_AUTHKEY} - TS_EXTRA_ARGS=--advertise-exit-node - TS_STATE_DIR=/var/lib/tailscale - TS_USERSPACE=true - TS_HOSTNAME=${TAILSCALE_HOSTNAME} depends_on: gluetun: condition: service_healthy
- Убедитесь, что ваша конфигурация
Проблема с прямым соединением
Как упомянуто в вашем вопросе, NordVPN не поддерживает переадресацию портов. Это значит, что запуск Tailscale в режиме выходного узла может быть проблематичным, так как Tailscale полагается на возможность подключения к определенным портам для обхода NAT и обеспечения прямых соединений.
Решение
-
Используйте NAT Traversal:
- Tailscale использует NAT Traversal и STUN для установления прямых соединений, если это возможно. Таким образом, стоит убедиться, что в Gluetun открыт STUN-порт (3478 в вашем случае), как это указано в вашей конфигурации.
-
Тестирование соединения:
- После проявления активной конфигурации, проверьте соединение с выходным узлом. Вы можете использовать команду
tailscale status
для проверки доступности узлов.
- После проявления активной конфигурации, проверьте соединение с выходным узлом. Вы можете использовать команду
-
Обновление Gluetun и Tailscale:
- Убедитесь, что вы используете последние версии образов Docker для
gluetun
иtailscale
. Обновления могут содержать исправления и улучшения, которые могут помочь в установлении прямых соединений.
- Убедитесь, что вы используете последние версии образов Docker для
-
Настройка DNS:
- Проверьте вашу конфигурацию DNS. Стандартный DNS в Gluetun может не обеспечить необходимую функциональность для Tailscale. Рассмотрите возможность использования общедоступных DNS-серверов, таких как Google (8.8.8.8, 8.8.4.4).
-
Логи и трассировка:
- Просмотрите логи Tailscale и Gluetun для выявления возможных ошибок соединения. Логи могут предоставить valuable insights into the nature of the connection issue.
Заключение
Настройка Gluetun с NordVPN и выходным узлом Tailscale может быть сложной задачей, особенно из-за отсутствия поддержки переадресации портов у NordVPN. Однако, следуя вышеуказанным рекомендациям и обеспечивая правильную конфигурацию сети и обновления, вы можете значительно повысить шансы на успешное прямое соединение с выходным узлом Tailscale.