LINUX.ORG.RU
решено ФорумAdmin

Настройка wireguard-go на vps с openvz (ubuntu 22.04)

 , , ,


1

1

Пытался сначала настроить wireguard, который должен на уровне ядра linux работать, но не получилось из-за openvz. Хост использует какое-то свое кастомное ядро версии 3.10.0-1160.25.1.vz7.180.2 без модулей wireguard'a.

Погуглил, нашел реализацию wireguard-go на которой построены клиенты для macos и windows. Делал все по гайдам: 1. https://d.sb/2019/07/wireguard-on-openvz-lxc 2. https://www.reddit.com/r/WireGuard/comments/dze220/wireguard_on_ubuntu_1804_o...

После попытки первого запуска службы systemctl start wg-quick@wg0 выдает:

Job for wg-quick@wg0.service failed because the control process exited with error code.
See "systemctl status wg-quick@wg0.service" and "journalctl -xeu wg-quick@wg0.service" for details.

systemctl status wg-quick@wg0.service

× wg-quick@wg0.service - WireGuard via wg-quick(8) for wg0
     Loaded: loaded (/lib/systemd/system/wg-quick@.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Sat 2022-08-06 14:05:26 MSK; 12min ago
       Docs: man:wg-quick(8)
             man:wg(8)
             https://www.wireguard.com/
             https://www.wireguard.com/quickstart/
             https://git.zx2c4.com/wireguard-tools/about/src/man/wg-quick.8
             https://git.zx2c4.com/wireguard-tools/about/src/man/wg.8
    Process: 780 ExecStart=/usr/bin/wg-quick up wg0 (code=exited, status=1/FAILURE)
   Main PID: 780 (code=exited, status=1/FAILURE)

Aug 06 14:05:26 se9c58735.fastvps-server.com wg-quick[788]: │         https://www.wireguard.com/install/           │
Aug 06 14:05:26 se9c58735.fastvps-server.com wg-quick[788]: │                                                      │
Aug 06 14:05:26 se9c58735.fastvps-server.com wg-quick[788]: └──────────────────────────────────────────────────────┘
Aug 06 14:05:26 se9c58735.fastvps-server.com wg-quick[788]: ERROR: (wg0) 2022/08/06 14:05:26 Failed to create TUN device: CreateTUN("wg0") failed; /dev/net/tun does not exist
Aug 06 14:05:26 se9c58735.fastvps-server.com wg-quick[794]: Unable to access interface: Protocol not supported
Aug 06 14:05:26 se9c58735.fastvps-server.com wg-quick[780]: [#] ip link delete dev wg0
Aug 06 14:05:26 se9c58735.fastvps-server.com wg-quick[795]: Cannot find device "wg0"
Aug 06 14:05:26 se9c58735.fastvps-server.com systemd[1]: wg-quick@wg0.service: Main process exited, code=exited, status=1/FAILURE
Aug 06 14:05:26 se9c58735.fastvps-server.com systemd[1]: wg-quick@wg0.service: Failed with result 'exit-code'.
Aug 06 14:05:26 se9c58735.fastvps-server.com systemd[1]: Failed to start WireGuard via wg-quick(8) for wg0.

Если выполнить wg-quick up wg0:

[#] ip link add wg0 type wireguard
RTNETLINK answers: Operation not supported
[!] Missing WireGuard kernel module. Falling back to slow userspace implementation.
[#] wireguard-go wg0
┌──────────────────────────────────────────────────────┐
│                                                      │
│   Running wireguard-go is not required because this  │
│   kernel has first class support for WireGuard. For  │
│   information on installing the kernel module,       │
│   please visit:                                      │
│         https://www.wireguard.com/install/           │
│                                                      │
└──────────────────────────────────────────────────────┘
ERROR: (wg0) 2022/08/06 14:25:13 Failed to create TUN device: CreateTUN("wg0") failed; /dev/net/tun does not exist
Unable to access interface: Protocol not supported
[#] ip link delete dev wg0
Cannot find device "wg0"

В чем может быть проблема? Пытался гуглить эту ошибку, мало чего понял.

Пытался гуглить эту ошибку, мало чего понял.

Да ты даже что тебе в ЗАМЕТНОЙ "табличке" не прочитал! Тут наши полномочия как бы всё, кончились. Психиатрия бессильна!

mord0d ★★★★★
()

Так у тебя tun модуль не подгружен. CONFIG_TUN в ядре гугли.

Anoxemian ★★★★★
()

ERROR: (wg0) 2022/08/06 14:05:26 Failed to create TUN device: CreateTUN(«wg0») failed; /dev/net/tun does not exist

Вот эту ошибку гуглил?
У хостеров с openvz обычное дело.
Пиши хостеру в техподдержку, проси чтобы подключили tun.

imul ★★★★★
()
Ответ на: комментарий от imul

Я не имел дело с vps ранее, если вы предлагаете их подключать tun модуль для меня, возможно ли, чтобы они подключили wireguard? В любом случае, как я понимаю, подобные изменения затрагивают всех пользователей vps. Поэтому, если бы это было возможно, то они были бы уже подключены, ведь наверняка не я один у них хотел поднять достаточно популярный wireguard.

kennydzzze
() автор топика
Ответ на: комментарий от mord0d

В какой табличке? Вы об этом «Running wireguard-go is not required because…»? Что я из нее должен был понять? Вы похоже первое предложение темы не читали сами. Меня уже послали с этой «first class support». А это сообщение, как я понял, имеет общий характер. Речь не идет о конкретно моем (вернее хоста) ядре.

kennydzzze
() автор топика
Ответ на: комментарий от imul

Я попробовал выполнить lsmod | grep tun и судя по всему он есть в ядре:

tunnel4                 4242  -2 ipip
ip_tunnel               4242  -2 ipip
xfrm6_mode_tunnel       4242  -2
xfrm4_mode_tunnel       4242  -2
tun                     4242  -2
vznetstat               4242  -2 tun,ip_vznetstat,ip6_vznetstat

Только он «не активирован»?

kennydzzze
() автор топика
Последнее исправление: kennydzzze (всего исправлений: 1)
Ответ на: комментарий от kennydzzze

Пиши хостеру в техподдержку <-- что в этом тебе непонятно?
Ты им деньги платишь.
Напиши им про свою проблему.
Может и wireguard тебе сразу прицепят, без костылей.

imul ★★★★★
()

Внутри контейнера ты ограничен тем ядром, которое тебе дают.

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

melkor217 ★★★★★
()
Ответ на: комментарий от kennydzzze

Настроил на роутере клиент wireguarda + dnscrypt, все вроде работает (на пк), но остальные устройства, которые подключаются к роутеру по wifi работают очень странно. Какие-то заблокированные сайты работают нормально, какие-то нет. На пк же все сайты работают. С чем это может быть связано? На роутере настраивал wan интерфейс только, которого, по идее, должно хватать.

kennydzzze
() автор топика
Ответ на: комментарий от IIIypuk

Ну, например, если зайти с пк на https://www.instagram.com/ , то все работает. Если зайти с ноутбука (wifi), то firefox выдает ошибку PR_CONNECT_RESET_ERROR. Если зайти на https://www.lostfilm.tv/ , то на пк снова все нормально, а на ноутбуке вообще заглушка от ertelecom, словно он перехватывает dns запрос и подменяет на свой. Хотя, повторю, dnscrypt стоит на роутере и обрабатывает dns запросы с пк нормально.

kennydzzze
() автор топика
Ответ на: комментарий от IIIypuk

Мне кажется дело даже не wireguard, а в dnscrypt.

Вчера возможности разбираться не было. Итак, сегодня картина еще более странная (хотя я ничего не делал, разве что cron на роутере каждый день ночью обновляет списки забаненных ip и подсетей). Ситуация следующая:

  1. Есть пк (на котором все норм) и ноутбук (на котором не понятно что происходит).
  2. На примере https://telegram.org/ , он работает и на пк (firefox + chrome) и на ноутбуке (firefox + chrome). Однако, если на пк (windows) выполнить в консоли
    ping telegram.org
    , он напишет
    Pinging telegram.org [149.154.167.99]
    . Этот ip соответствует телеграму, но сам пинг не будет проходить. Но если открыть сайт телеграма, то он откроется нормально. При этом, если нажать F12 в браузере и посмотреть запрос на '/', то там будет тот же ip адрес, что и при попытке пинга. На ноутбуке этот ip так же не пингуется, но сайт работает в обоих браузерах.
  3. На примере https://www.lostfilm.tv/ , на пк он работает нормально в обоих браузерах. На ноутбуке же, он работает только в firefox, на chrome появляется ошибка ERR_CONNECTION_RESET (на этот раз без заглушки провайдера).

Пока писал это все, неожиданным образом сайты заработали на ноутбуке (магия?)... Оставлю это сообщение навсякий случай, если в будущем проблема повторится. Но в любом случае, ситуация с не пингующимся, но работающим телеграмом - странная.

UPD 1: После перезагрузки ноутбука в chrome снова перестали открываться сайты. На этот раз появилась новая ошибка ERR_QUIC_PROTOCOL_ERROR, отключил протокол quic, перезапустил браузер, снова ошибка ERR_CONNECTION_RESET на сайте инстаграма и лостфильма. Телеграм открывается нормально. В firefox же работают все выше перечисленные сайты. В обоих браузерах настройки dns указывают на конфигурацию текущей системы, а она в качестве dns содержит адрес роутера 192.168.1.1

kennydzzze
() автор топика
Последнее исправление: kennydzzze (всего исправлений: 4)
Ответ на: комментарий от kennydzzze

UPD 2: Попробовал подключить второй пк по lan к роутеру, тоже самое все (правда там только chrome стоит из браузеров). Но в это время у меня на ноуте снова перестали работать сайты, которые работали в firefox, но не работали в chrome.

Настраивал все по гайду: https://habr.com/ru/post/440030/

Правило

config forwarding
        option src 'lan'
        option dest 'wg'
в /etc/config/firewall присутствует. Все перепроверил несколько раз. Даже нашел в /etc/config/wireless
config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option ssid '2.4'
        option encryption 'sae-mixed'
        option key '123456789'
Судя по всему, все беспроводные интерфейсы относятся тоже к lan, а значит должны перенаправляться в wg:
config zone
        option name 'wg'
        option family 'ipv4'
        option masq '1'
        option output 'ACCEPT'
        option forward 'REJECT'
        option input 'REJECT'
        option mtu_fix '1'
        option network 'wg0'

kennydzzze
() автор топика
Ответ на: комментарий от kennydzzze

UPD 3: Перезагрузка ноутбука снова заставила работать instagram в firefox, в chrome все та же ошибка ERR_CONNECTION_RESET. Если что, ос на ноутбуке стоит ubuntu 20.04.4 LTS, может быть в ней есть какой-то баг? Хотя, другие устройства же тоже не работают…

kennydzzze
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.