Не удается подключится к OpenVPN серверу с Windows клиента с ошибкой в openvpn.log:
TCP/UDP: Socket bind failed on local address [AF_INET]127.0.0.1:22194: Cannot assign requested address Exiting due to fatal error
Для решения этой проблемы мне приходится перезагружать компьютер или перезапускать службу Service Host: Network Service
, что очень неудобно.
Если проблема возникает, если вы пытаетесь подключиться к нескольким OpenVPN серверам одновременно, проверьте что в Windows установлены несколько виртуальных сетевых адаптера TAP/WinTun (по одному для каждого VPN сеанса, который вы хотите держать активным).
При этом в openvpn.log и/или OpenVPN GUI будет появляться ошибка:
All TAP-Windows/WinTun adapters on this system are currently in use
Если в Windows доступно несколько сетевых адаптеров, проверьте каким процессом/программой занят указанный в ошибке исходящий порт. Можно найти и завершить процесс, который слушает порт с помощью netstat
или PowerShell:
- TCP порт:
Get-Process -Id (Get-NetTCPConnection -LocalPort 22194).OwningProcess
- UDP порт:
Get-Process -Id (Get-NetUDPEndpoint -LocalPort 22194).OwningProcess
Если указанный порт никем не слушается, возможно, что на компьютере установлены службы Hyper-V или запущена WSL2.
Дело в том, что Windows резервирует определенный динамический диапазон портов TCP для Hyper-V/WSL. Вы можете вывести этот диапазон с помощью команды:
netsh int ipv4 show excludedportrange tcp
Protocol tcp Port Exclusion Ranges Start Port End Port ---------- -------- 5985 5985 47001 47001
Если этот диапазон пересекается с диапазоном исходящих портов клиента OpenVPN, вы получите ошибку:
TCP/UDP: Socket bind failed on local address
Измените диапазон исходящих портов клиента OpenVPN:
- Щелкните правой кнопкой по иконке OpenVPN GUI в трее;
- Выберите Settings -> Advanced -> Management interface, измените значение в поле Port offset чтобы оно не входило в зарезервированный диапазон;
- Сохраните изменения.
После этого вы сможете подключиться к вашем OpenVPN серверу.
lport 10001