Ошибка при настройке wireguard client

Автор Ah1102, 15 июля 2020, 09:04:05

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Ah1102

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

sudo wg-quick up wg0-client
[#] ip link add wg0-client type wireguard
[#] wg setconf wg0-client /dev/fd/63
[#] ip -4 address add 10.8.0.2/32 dev wg0-client
[#] ip link set mtu 1420 up dev wg0-client
[#] resolvconf -a tun.wg0-client -m 0 -x
Unknown interface 'tun': No such device
[#] ip link delete dev wg0-client

endru

Цитата: Ah1102 от 15 июля 2020, 09:04:05Unknown interface 'tun': No such device
Ну видно что же ругается на интерфейс. Проверяй что все модули ядра подключены, и делал точно как и в прошлый раз.

Ah1102

#2
Проблема оказалась в systemd-resolved.service - Network Name Resolution

Я удалил resolvconf:
sudo apt-get --purge remove resolvconf

Установил openresolv:
apt install openresolv

Выполнил команду результатом которой Active: inactive (dead):
systemctl status systemd-resolved.service

Выполнил вторую команду результатом которой стало Active: active (running):
systemctl enable systemd-resolved.service
systemctl start systemd-resolved.service


Запуск wireguard. После чего wg-client завелся:
sudo wg-quick up wg0-client
---------

Но теперь другая проблема. При загрузке системы wg0-client.service выдает ошибку. Он и раньше ее выдавал. Думаю, что wireguard запускается раньше, чем resolved.service. Приходится после загрузки системы делать:

systemctl restart wg-quick@wg0-client.service

Как это исправить?

systemd-analyze blame
213ms wg-quick@wg0-client.service
1.072s systemd-resolved.service


Вот вывод из журнала загрузки:
grep -i wg /var/log/boot.log
[FAILED] Failed to start WireGuard via wg-quick(8) for wg/client.
See 'systemctl status wg-quick@wg-client.service' for details.


systemctl status wg-quick@wg-client.service:
systemctl status wg-quick@wg-client.service
● wg-quick@wg-client.service - WireGuard via wg-quick(8) for wg/client
   Loaded: loaded (/lib/systemd/system/wg-quick@.service; enabled; vendor preset: enabled)
   Active: **failed** (Result: exit-code) since Tue 2020-06-30 17:10:56 MSK; 2 weeks 1 days 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
Main PID: 564 (code=exited, status=1/FAILURE)

июн 30 17:10:56 PC systemd[1]: Starting WireGuard via wg-quick(8) for wg/client...
июн 30 17:10:56 PC wg-quick[564]: wg-quick: `/etc/wireguard/wg-client.conf' does not exist
июн 30 17:10:56 PC systemd[1]: wg-quick@wg-client.service: Main process exited, code=exited, status=1/FAILURE
июн 30 17:10:56 PC systemd[1]: wg-quick@wg-client.service: Failed with result 'exit-code'.
июн 30 17:10:56 PC systemd[1]: **Failed to start WireGuard via wg-quick(8) for wg/client**.


Но у меня нет файла конфигурации с таким именем: wg-quick: `/etc/wireguard/wg-client.conf' does not exist
ls /etc/wireguard
client_private.key  client_public.key  wg0-client.conf

----------
----------
В итоге последнюю проблему удалось решить. По ошибке был создан сервис несуществующего интерфейса :
systemctl stop wg-quick@wg-client.service
systemctl disable wg-quick@wg-client.service
systemctl enable wg-quick@wg0-client.service
systemctl start wg-quick@wg0-client.service


systemctl status wg-quick@wg0-client.service
● wg-quick@wg0-client.service - WireGuard via wg-quick(8) for wg0/client
   Loaded: loaded (/lib/systemd/system/wg-quick@.service; enabled; vendor preset: enabled)
   Active: active (exited) since Wed 2020-07-15 18:33:52 MSK; 5s 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: 1544 ExecStart=/usr/bin/wg-quick up wg0-client (code=exited, status=0/SUCCESS)
Main PID: 1544 (code=exited, status=0/SUCCESS)

июл 15 18:33:52 PC wg-quick[1544]: [#] ip -4 address add 10.8.1.1/32 dev wg0-client
июл 15 18:33:52 PC wg-quick[1544]: [#] ip link set mtu 1420 up dev wg0-client
июл 15 18:33:52 PC wg-quick[1544]: [#] resolvconf -a wg0-client -m 0 -x
июл 15 18:33:52 PC wg-quick[1544]: [#] wg set wg0-client fwmark 51820
июл 15 18:33:52 PC wg-quick[1544]: [#] ip -4 route add 0.0.0.0/0 dev wg0-client table 51820
июл 15 18:33:52 PC wg-quick[1544]: [#] ip -4 rule add not fwmark 51825 table 51825
июл 15 18:33:52 PC wg-quick[1544]: [#] ip -4 rule add table main suppress_prefixlength 0
июл 15 18:33:52 PC wg-quick[1544]: [#] sysctl -q net.ipv4.conf.all.src_valid_mark=1
июл 15 18:33:52 PC wg-quick[1544]: [#] iptables-restore -n
июл 15 18:33:52 PC systemd[1]: Started WireGuard via wg-quick(8) for wg0/client.

Ah1102

Есть сценарий BASH, который я хотел бы отредактировать https://github.com/angristan/wireguard-install. Он работает некорректно и не удаляет файлы конфигурации пользователя. Внесены изменения в "функцию uninstallWg ()" и теперь файл удален. Но если в папке 2 и более файлов, то удаление может не сработать или может быть удален только 1 файл. Мне нужно убедиться, что все пользовательские файлы конфигурации моста удалены. Я плохо знаю bash, пожалуйста, помогите мне с решением.

function uninstallWg () {
                #REMOVE USER CONFIG
                # Home directory of the user, where the client configuration will be written
                CLIENT_NAME = $ (grep -E "^ ### Client" "/etc/wireguard/$ {SERVER_WG_NIC }.conf" | cut $
                if [-e "/ home / $ {CLIENT_NAME}"]; then # if $ 1 is a user name
                        HOME_DIR = "/ home / $ {CLIENT_NAME}"
                elif ["$ {SUDO_USER}"]; then # if not, use SUDO_USER
                        HOME_DIR = "/ home / $ {SUDO_USER}"
                else # if not SUDO_USER, use / root
                        HOME_DIR = "/ root"
                fi
                echo "usr config delete: $ {HOME_DIR} / $ {SERVER_WG_NIC} -client - $ {CLIENT_NAME} .conf"
                # remove generated client file
                rm -f "$ {HOME_DIR} / $ {SERVER_WG_NIC} -client - $ {CLIENT_NAME} .conf"
       
                рм -рф /etc/wireguard
                rm -f /etc/sysctl.d/wg.conf
}

Я также был бы рад, если бы эта опция удалила все файлы с другим CLIENT_NAME, но она не работает:

rm -f "$ {HOME_DIR} / $ {SERVER_WG_NIC} -client - *. conf"

Например:

"/HOME/User/wg0-client-android.conf"
"/HOME/User/wg0-client-ios.conf"

gardarea51

Я в баше слабо, но вот что вижу. Сначала у вас определяется переменная
CLIENT_NAME = $ (grep -E "^ ### Client" "/etc/wireguard/$ {SERVER_WG_NIC }.conf"
Потом удаляется файл:
                # remove generated client file
                rm -f "$ {HOME_DIR} / $ {SERVER_WG_NIC} -client - $ {CLIENT_NAME} .conf"


Видите проблему?

ps: и какие-то странные пробелы между $ { }