![Как заставить OpenVPN использовать только TCP?](https://rvso.com/image/1598565/%D0%9A%D0%B0%D0%BA%20%D0%B7%D0%B0%D1%81%D1%82%D0%B0%D0%B2%D0%B8%D1%82%D1%8C%20OpenVPN%20%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%20%D1%82%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE%20TCP%3F.png)
Я использую OVH VPS в качестве VPN для защиты от DDoS. Во время тестирования с использованием UDP для туннеля клиент > сервер я заметил, что когда атака запускает смягчение VAC OVH (не может быть отключено), трафик между сервером и клиентом прерывается. Это означает, что система VAC OVH воспринимала UDP-трафик моего клиента как атакующий и блокировала его. Я знаю, что это проблема, поскольку другой клиент OVH написал сообщение на веб-сайте OVH.
Имея это в виду, я переключил туннель на TCP. Но теперь, когда клиент подключается к игре, я вижу, что он использует UDP для подключения к реальной игре. Как и предполагалось, запуск нагрузочного теста (симуляция DDoS-атаки) на сервере отключил моего клиента от игры, но не от реального VPN-сервера.
TL;DR: Нужно заставить мой сервер OpenVPN использовать ТОЛЬКО TCP для игровых подключений, DNS, похоже, в порядке. Хотя туннель моего клиента установлен в TCP, сервер подключается к игре через UDP. Как заставить сервер использовать только TCP для игровых подключений?
Редактировать: Может быть, правило iptables отклоняет пересылаемый трафик UDP или поощряет TCP?
решение1
Вы можете попробовать это в командной строке:
openvpn --proto tcp-client client.ovpn
В качестве альтернативы вы можете установить протокол на tcp-client
и протокол на tcp для каждого маршрута в вашем профиле (если он есть). В примере ниже вы должны убедиться, что proto tcp-client
есть и изменить remote 1.2.3.4 1194 udp
наremote 1.2.3.4 1194 tcp
client
dev tun
proto tcp-client
remote examplevpn.net 443
remote 1.2.3.4 1194 udp
remote 1.2.3.4 443 tcp
auth-user-pass
resolv-retry infinite
nobind
persist-tun
persist-key
persist-remote-ip
cipher AES-256-CBC
tls-cipher TLS-DHE-RSA-WITH-AES-256-CBC-SHA:TLS-DHE-DSS-WITH-AES-256-CBC-SHA:TLS-RSA-WITH-AES-256-CBC-SHA
remote-cert-tls server
verify-x509-name us-il name-prefix
key-direction 1
comp-lzo no
verb 3
;ca ca.crt
решение2
Ваш заголовок не соответствует вашему вопросу; ваш туннель OpenVPN уже использует TCP, но сами туннелируемые данныевне контроля OpenVPNи даже вне вашего контроля.
Если игра была написана для использования UDP, онаволяиспользовать UDP, и что еще важнее,игровые серверыОжидайте, что клиенты будут использовать UDP. Поэтому, если вы преобразуете пакеты в TCP до того, как они покинут VPN-сервер, игровые серверы не будут знать, что с ними делать.
Ваш единственный вариант в целом — полностью заблокировать UDP. Если игра поддерживает TCP какальтернатива, у него не будет выбора, кроме как использовать его. Если игра требует UDP, она вообще не будет работать.