Я пытаюсь отладить ошеломляющий сбой DNS, когда работает клиент OpenVPN. Хотя могу пинговать 8.8.8.8, при запуске dig +trace example.com @8.8.8.8
Я получаю в ответ connection timed out; no servers could be reached
. Как ни странно, когда я захватываю и проверяю сетевые пакеты, пакеты порта 53 не появляются ни на одном из сетевых интерфейсов компьютера. (Другие пакеты отображаются в дампе пакетов при подключении OpenVPN, и пакеты порта 53 также появляются, когда OpenVPN не подключен.)
С помощью захвата пакетов я сузил проблему до полного исчезновения пакетов порта 53 при работе клиента OpenVPN. В частности:
echo hi | nc -u 1.2.3.4 53
или echo hi | nc 1.2.3.4 53
,echo hi | nc -u 1.2.3.4 52
или echo hi | nc 1.2.3.4 52
,Отслеживая CygWin NC (netcat), я сузил ошибку до ошибки WSAEACCES (10013) при создании сокета.
23 21665 [main] nc 2406 cygwin_socket: 3 = socket(2, 1 (flags 0x0), 6) 204 21869 [main] nc 2406 __set_errno: void __set_winsock_errno(const char*, int):200 setting errno 1 24 21893 [main] nc 2406 __set_winsock_errno: connect:810 - winsock error 10013 -> errno 1
Это ошибка «В разрешении отказано», задокументированный следующим образом: «Была сделана попытка получить доступ к сокету способом, запрещенным его разрешениями на доступ. Примером является использование широковещательного адреса для sendto без разрешения широковещательной передачи, установленного с помощью setsockopt (SO_BROADCAST)».
OpenVPN работает в нажмите режим с использованием порта 1194 по умолчанию на компьютере с Windows 10. Брандмауэр Защитника Windows и антивирус Защитника Windows временно отключены, чтобы исключить их как виновников. По той же причине на данном компьютере в настоящее время не работает никакой другой брандмауэр или антивирусное программное обеспечение. Точно такая же конфигурация OpenVPN отлично работает на компьютере Debian GNU / Linux.
Проблема была вызвана –block-outside-dns
Опция клиента OpenVPN. Согласно Документация OpenVPN эта опция предотвращает доступ любого приложения к TCP- или UDP-порту 53, кроме порта внутри туннеля, с помощью платформы фильтрации Windows (WFP).