Маршрутизатор повідомляє WAN-адресу, що починається з 100.72, динамічне DNS-ім'я розв'язується в іншу публічну адресу, а VPN-сервер на цьому маршрутизаторі ніколи не завершує рукостискання ззовні. Проброс портів налаштований, служба працює, і тест із локальної мережі досі проходить. У журналі маршрутизатора ніщо не виглядає як помилка. Це поєднання — NAT операторського рівня, і жодне правило брандмауера не може відкрити порт на адресі, якою володіє провайдер.

Підтвердження спільної адреси займає дві хвилини й запобігає тижню змін конфігурації.

Ознаки, що вказують на NAT оператора

Порівняйте WAN-адресу на сторінці стану маршрутизатора з адресою, яку повідомляє зовнішній запит. WAN-адреса в межах 100.64.0.0/10 — звичайна ознака, а приватні діапазони 10/8, 172.16/12 і 192.168/16 означають те саме. Якщо traceroute показує той самий публічний перехід повторно або ранній перехід відповідає приватною адресою, між маршрутизатором та інтернетом стоїть ще один транслятор. Деякі провайдери вказують призначену адресу лише в клієнтському порталі, тому експортуйте це значення разом із traceroute.

Зміна протоколів або портів не допомагає, бо проблема в вхідній доступності, а не в закритому порті.

Чому проброс і динамічний DNS не можуть це виправити

Правило пробросу порту зіставляє порт на WAN-інтерфейсі маршрутизатора, але вхідний трафік ніколи не досягає цього інтерфейсу: провайдер спершу транслює його й передає лише те, що дозволяє його власна таблиця. Публікація спільної адреси в динамічному DNS скеровує клієнтів на шлюз провайдера, яким користується багато абонентів, тому ім'я розв'язується, а рукостискання все одно не проходить. Тести hairpin проходять, бо маршрутизатор відповідає на власне правило зсередини, і в UPnP така сама сліпа пляма.

Переналаштування клієнта теж не допоможе, оскільки збій трапляється раніше, ніж читається будь-яке налаштування клієнта.

Ретрансляція через VPS із явними маршрутами

Поставте попереду публічну адресу: орендуйте найменший VPS, здатний нести трафік, а потім змусьте домашній маршрутизатор підключитися до нього вихідним з'єднанням. Вихідний UDP із домашньої мережі проходить через NAT оператора, тож тунель встановлюється зсередини, і VPS стає доступною кінцевою точкою. Домашній бік стає клієнтом із фіксованою адресою тунелю, а не сервером.

На VPS додайте запис каталогу, специфічний для клієнта, щоб сервер знав, якому вузлу належить домашня підмережа, і додайте відповідний маршрут ядра.

# /etc/openvpn/server/ccd/home-site.conf
ifconfig-push 10.8.0.10 255.255.255.0
iroute 192.168.50.0 255.255.255.0

# server.conf
client-config-dir /etc/openvpn/server/ccd
route 192.168.50.0 255.255.255.0
push "route 10.8.0.0 255.255.255.0"

Рядок iroute повідомляє OpenVPN, який клієнт отримує трафік для домашньої підмережі; рядок route поміщає цю підмережу в таблицю ядра VPS, щоб пакети взагалі потрапляли в тунель. Для опублікованої служби додайте правило NAT призначення, яке переспрямовує публічний порт на 10.8.0.10, і ввімкніть net.ipv4.ip_forward.

Перевірте шлях ззовні

Перевірте кожен перехід на публічному боці, бо успішний тунель не доводить доступність служби. Стан прослуховування й перехоплення пакетів на VPS розрізняють «нічого не надійшло» і «надійшло та відкинуто».

ss -lunp | grep 1194
tcpdump -ni any udp port 1194
nft list ruleset | grep -A4 dnat

# from a phone on mobile data, not the home Wi-Fi
nc -vz -u 203.0.113.10 1194

Якщо перехоплення показує пакети з телефона, але відповіді немає, наступна зупинка — конфігурація сервера або брандмауер. Якщо перехоплення не показує нічого, клієнт досі розв'язує ім'я або надсилає на неправильну адресу.

Альтернативи, які варто оцінити першими

Виділена адреса IPv4 від провайдера — найкоротше рішення, зазвичай за невелику щомісячну плату. Нативний IPv6 усуває трансляцію на обох кінцях, коли його підтримують VPN, клієнтська мережа й записи DNS. Mesh-оверлей із маршрутизатором підмережі всередині домашньої мережі дає ту саму ретрансляцію без VPS, але ціною залежності від служби координації.

Виберіть ретрансляцію, коли потрібен стабільний вхідний доступ і кожне правило має залишатися під вашим контролем. Виберіть адресу провайдера, коли бюджет дозволяє, а мета — просто перестати про це думати.

Схожі статті