Может ли OpenVPN работать как на tcp, так и на udp в одной конфигурации?
Просто запустите два демона openvpn на разных портах с разными протоколами.
насколько мне известно, один туннель не может работать одновременно с udp и tcp.
с другой стороны, у меня есть работающая конфигурация с туннельным брокером, поддерживающим как входящие соединения TCP, так и соединения UDP, определенные в отдельных файлах конфигурации.
Это старый вопрос, но обычно вы не хотите использовать OpenVPN под TCP, потому что это приводит к увеличению сетевого трафика.
Например, с OpenVPN под UDP отправка однопользовательского tcp-сообщения выглядит так:
client: <OpenVPN UDP msg1><user TCP msg0>
server: <OpenVPN UDP msg2><user TCP ack0>
С OpenVPN под TCP каждое сообщение OpenVPN также является TCP, поэтому оно должно быть подтверждено, включая подтверждения, которые являются частью встроенного потока. То же сообщение выглядит так:
client: <OpenVPN TCP msg1><user TCP msg0>
server: <TCP ack1>
server: <OpenVPN TCP msg2><user TCP ack0>
client: <TCP ack2>
Также заголовки TCP немного больше.
При использовании OpenVPN через UDP внутренний уровень TCP позаботится о любых повторных передачах. Основным недостатком UDP является то, что соединение не может определить, действительно ли оно работает или нет. Конфигурация OpenVPN по умолчанию обрабатывает это, устанавливая периодический эхо-запрос проверки активности.