VPN нічого не відповідає на своєму порту, і дві можливі причини потребують протилежного ремонту: або жоден процес не відкрив сокет, або сокет існує і щось між машинами зупиняє пакети. Одна команда вирішує першу половину цього питання, тому вона йде перед будь-яким правилом міжмережевого екрана. Порядок нижче прибирає одне пояснення за крок, а не додає ще одне припущення. Саме вгадування між двома варіантами перетворює десятихвилинну діагностику на цілий вечір.

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

Чи існує сокет узагалі

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

systemctl status openvpn-server@server --no-pager
journalctl -u openvpn-server@server -n 30 --no-pager
ss -lunp

Список сокетів — це факт, на якому тримається решта діагностики. Читайте стовпець локальної адреси, а не лише порт, бо саме в цьому стовпці видно прив'язки до loopback і прив'язки до неправильного інтерфейсу. Слухач, що існує на 127.0.0.1, працює бездоганно і все одно невидимий для вашого ноутбука.

На якій адресі та в якій родині відповідає сокет

Дві помилки виглядають з боку клієнта однаково і пояснюють більшість повідомлень «недоступно». Сервер, прив'язаний до адреси loopback, ніколи не приймає трафік з іншої машини, а сервер, прив'язаний лише до адреси IPv4, ніколи не відповідає клієнтові, який набирає адресу IPv6 того самого хоста. Порівняйте адресу в таблиці сокетів з адресою, яку клієнт справді набирає, символ за символом, перш ніж щось припускати про політику.

Обмеження списку одним портом зберігає його читабельним, коли хост запускає кілька служб. Фільтр sport бере порт разом із транспортом, який ви перевіряєте:

ss -lun 'sport = :51820'
ss -ltnp 'sport = :1194'

Стовпець протоколу змінює всю відповідь

Таблиця сокетів індексується і за протоколом, і за портом, і це два незалежні записи. Служба, що відповідає по TCP на 1194, нічого не каже про те, чи щось слухає UDP 1194, а клієнт завжди використає лише одне з них. Підтвердьте, який транспорт обирає конфігурація сервера і який надсилає профіль клієнта, а потім шукайте саме той рядок.

UDP має другий нюанс: неавтентифікований зонд — не помилка, на яку служба зобов'язана відповідати. Сканування, що повідомляє про мовчазний порт, виміряло стриманість служби, а не її доступність, тому перевіряйте справжнім клієнтом і профілем.

Одна спроба, три місця, куди глянути

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

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

Назвіть етап, перш ніж змінити правило

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

Використовуйте найвужчу діагностику, яка відповідає на питання. Тимчасове спостереження за пакетами на одному порту під контролем адміністратора — розумний інструмент; повне вимкнення міжмережевого екрана — ні, бо результат стає неможливо віднести до причини. Документація ss описує фільтри, використані вище, і це дешевший перший крок, ніж будь-який перехоплення. Запишіть, яку з двох гілок ви довели, і наступний випадок почнеться з відомої відповіді.

Схожі статті