Туннельный Wireguard (или любой UDP-трафик) внутри HTTPS

Туннельный Wireguard (или любой UDP-трафик) внутри HTTPS

Wireguard сейчас в тренде, и вполне заслуженно. Я также горю желанием заменить OpenVPN на Wireguard.

Однако, в отличие от OpenVPN, Wireguard поддерживает только UDP. Мне нравится использовать TCP-порт 443, поскольку этот порт, скорее всего, не блокируется брандмауэром. OpenVPN даже имеет возможность использовать HTTP-прокси. Это довольно здорово, потому что это позволяет мне получить полный, неограниченный доступ в Интернет в сетях, которые не имеют маршрута к Интернету и требуют от пользователей использовать вместо этого веб-прокси.

Как мне добиться того же с Wireguard? HTTPS-туннель, работающий для UDP?

Предположим, что обе конечные точки работают под управлением Linux, у меня есть полный root-доступ к обеим точкам, и, конечно, у меня есть разрешение от всех участников на выполнение этих действий.

решение1

Этоткажется, делает именно то, что мне нужно, даже если вам нужен cntlmдополнительный прокси-сервер, если прокси-сервер требует аутентификации NTLM.

решение2

В официальной документации указано, почему они не поддерживают TCP и DPI [1]

WireGuard явно не поддерживает туннелирование по TCP из-за классической ужасной сетевой производительности туннелирования TCP-по-TCP. Вместо этого преобразование пакетов UDP WireGuard в TCP является работой верхнего уровня обфускации

Для TCP-туннелирования предлагается использовать udp2raw[2] или udptunnel[3].

Обратите внимание, что это касается только TCP-туннелирования, оно не будет маскировать его по HTTP(S), поэтому оно не будет защищено, если ваш брандмауэр выполняет глубокую проверку пакетов или анализ заголовков и т. д. Для этого вам потребуются более сложные настройки.

  1. https://www.wireguard.com/known-limitations/
  2. https://github.com/wangyu-/udp2raw
  3. https://github.com/rfc1036/udptunnel

решение3

HTTPS не является тем протоколом, который можно использовать для туннелирования трафика, однако веб-сокеты для этого подходят.

Я думаю, вы ищетеWStunnel. Он также способен туннелировать его через TLS.

решение4

Мог бы запуститьSSH-VPN-соединение(используя ssh на порту 443) и запустите Wireguard на созданных интерфейсах.

Вероятно, вы также сможете запустить Wireguard поверх существующего OpenVPN.

Wireguard изначально, судя по всему, не предусматривает установления соединения, поэтому я сомневаюсь, что в ближайшее время появятся функции TCP или HTTP (извините).

Связанный контент