VPN на своём сервере не подключается: пошаговая диагностика
Где искать причину, когда AmneziaWG, VLESS, WireGuard или OpenVPN перестал подключаться: сервер, контейнеры, порты, брандмауэр, сеть провайдера, MTU и DNS. Команды для Linux, macOS и Windows.

Когда VPN перестаёт подключаться, первый порыв — снести и поставить заново. Обычно это лишнее: причина почти всегда на одном конкретном участке, и найти её можно за несколько минут. Алгоритм ниже подходит для любого VPN на своём сервере — AmneziaWG, VLESS в 3X-UI, Marzban или Remnawave, WireGuard, OpenVPN, Outline.
Где может сломаться
Подключение проходит цепочку: приложение на устройстве → ваша домашняя или мобильная сеть → провайдер и магистрали → сервер → программа VPN на нём. Сбой в любом звене выглядит одинаково: «не удалось подключиться».
Искать удобнее с конца. Сначала убеждаемся, что сервер жив и VPN на нём запущен, потом — что до него можно достучаться, и только затем разбираемся с сетью и настройками устройства. Каждый шаг отсекает часть цепочки.
| Что происходит | С какого шага начать |
|---|---|
| Не подключается ничего, даже SSH | 1 |
| SSH работает, VPN нет | 2 |
| Не работает только в одной сети, например на мобильном | 4 |
| Подключается, но сайты не открываются | 5 |
1. Сервер жив?
Попробуйте зайти по SSH. Проходит — к шагу 2.
Если SSH молчит, проверьте в кабинете tanaka.host, что сервер включён и оплачен, и откройте консоль сервера — она работает даже когда сеть недоступна.
- В консоли приглашение входа — сервер работает, недоступна только сеть. Частая причина — брандмауэр, закрывший порт SSH, или смена порта SSH без правки правил.
- Сервер не загружается — смотрите, на чём остановился, и используйте режим восстановления из кабинета.
2. VPN на сервере запущен?
Большинство панелей и Amnezia работают в Docker. Список контейнеров:
# Все контейнеры, включая остановленные
docker ps -a
У рабочего контейнера в столбце STATUS — Up. Если Exited или Restarting, VPN упал. Журнал, подставив имя из первой колонки:
# Последние 50 строк журнала контейнера
docker logs --tail 50 ИМЯ_КОНТЕЙНЕРА
OpenVPN и WireGuard без Docker — через systemd:
systemctl status openvpn-server@server
systemctl status wg-quick@wg0
Затем — слушает ли сервер нужный порт:
# Все порты, которые слушает сервер, с названиями программ
ss -lntup
В выводе должен быть порт вашего VPN: для VLESS обычно 443 в строке tcp, для AmneziaWG и WireGuard — порт протокола в строке udp, для OpenVPN — 1194 udp. Нет порта — VPN не запущен или запущен на другом.
Для Amnezia протокол и порт видны в приложении в настройках сервера. Для Marzban, 3X-UI и Remnawave откройте панель и проверьте, что ядро Xray запущено.
3. Порт доступен снаружи?
Сервис может работать, но порт закрыт брандмауэром. Для TCP-протоколов (VLESS, OpenVPN в режиме TCP, панели) это проверяется с вашего компьютера.
macOS и Linux:
# Проверяем, открыт ли TCP-порт 443 на сервере
nc -vz IP_сервера 443
succeeded — порт открыт. Connection refused — на порту ничего не слушает. Долгое ожидание и тайм-аут — порт закрыт брандмауэром или соединение режется по пути.
Windows, PowerShell:
Test-NetConnection IP_сервера -Port 443
TcpTestSucceeded : True — открыт.
Если порт закрыт, откройте его на сервере:
ufw allow 443/tcp # TCP-протокол
ufw allow 1234/udp # AmneziaWG, WireGuard — ваш порт
RHEL-семейство:
firewall-cmd --permanent --add-port=443/tcp && firewall-cmd --reload
UDP так не проверить. UDP-протоколы не отвечают на пустые запросы, поэтому
ncиTest-NetConnectionдля AmneziaWG и WireGuard бесполезны. Для них надёжнее смотреть на сервере, доходят ли попытки подключения (tcpdump -ni any udp port 1234), и проверять сеть по шагу 4.
4. Сеть
Если сервер и VPN в порядке, причина между вами и сервером.
- Другая сеть. Не работает на мобильном, но работает по Wi-Fi (или наоборот) — дело в провайдере, а не в сервере.
- Другой протокол. Обычные WireGuard и OpenVPN распознаются и блокируются. Протоколы с маскировкой — AmneziaWG и VLESS с REALITY — устойчивее, а если режут UDP целиком, выручает VLESS, потому что он поверх TCP. Почему так — в статье что такое VLESS и Reality.
- Другой порт. Часть провайдеров ограничивает UDP на высоких портах. Для AmneziaWG разработчики советуют порт не выше 9999.
- Не заблокирован ли IP сервера. Сделайте трассировку:
mtr -rwc 20 IP_сервера # Linux, macOS (brew install mtr)
tracert IP_сервера # Windows
Если на последних хопах теряются все пакеты, а из другой сети сервер доступен, адрес может быть заблокирован на пути. В этом случае пишите в поддержку tanaka.host с результатом трассировки — поможем с заменой адреса.
5. Подключается, но сайты не открываются
Приложение показывает «подключено», а страницы не грузятся или открываются через раз. Две типичные причины.
MTU. Наибольший размер пакета, который проходит без разбиения. Внутри VPN к каждому пакету добавляются заголовки, и крупный пакет перестаёт проходить: мелкие запросы работают, а большие страницы и загрузки зависают. Уменьшите MTU в настройках подключения, например до 1280, и подключитесь заново. В конфиге WireGuard это строка MTU = 1280 в секции [Interface].
DNS. Сайты не открываются по имени, но открываются по IP — проблема в DNS. Проверка с подключённым VPN:
curl -I https://1.1.1.1 # работает — сеть есть
curl -I https://example.com # не работает — DNS
Укажите в настройках VPN публичный DNS, например 1.1.1.1 или 8.8.8.8.
Что прислать в поддержку
Если разобраться не удалось, напишите в поддержку tanaka.host из кабинета. Чтобы не тратить время на уточнения, приложите сразу:
- IP сервера и какой VPN установлен: «AmneziaWG через приложение Amnezia», «VLESS в 3X-UI».
- Где не работает: домашний интернет или мобильный, какой провайдер, работает ли в другой сети.
- Вывод
docker ps -aиss -lntupс сервера. - Трассировку до сервера.
- Текст ошибки из приложения, если он есть.
Полезные команды
| Команда | Что показывает |
|---|---|
docker ps -a |
Все контейнеры и их статус |
docker logs --tail 50 имя |
Журнал контейнера |
ss -lntup |
Кто какие порты слушает |
ufw status verbose |
Правила брандмауэра |
journalctl -u имя_службы -n 50 |
Журнал службы systemd |
tcpdump -ni any udp port 1234 |
Доходят ли UDP-пакеты до сервера |