Задать вопрос
  • Как настроить и запустить сервер WireGuard на Ubuntu 24.04?

    smorman
    @smorman
    When In Rome do as The Romans do...
    Думаю, что правильно так в конфиге на сервере должно быть:
    spoiler
    [Interface]
    Address = 1.1.1.1/28 (мой свободный белый ип)
    ListenPort = 51820
    PrivateKey = ключ из сгенерированного файла
    PostUp = sysctl net.ipv4.ip_forward=1
    PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    PostDown = sysctl net.ipv4.ip_forward=0
    PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
    
    [Peer]
    PublicKey = так же из сгенерированного файла для Клиента 1
    AllowedIPs = 1.1.1.2/28 # - это IP на Клиенте 1
    # Т.е. у Сервера  IP заканчивается на 1, а у Клиента(ов peer-ов) на 2 и далее
    
    # Если Клиентов больше, чем 1, то по возрастанию каждый Peer прописывается с увеличением последней цифры в его IP, например:
    [Peer]
    PublicKey = так же из сгенерированного файла для Клиента 2
    AllowedIPs = 1.1.1.3/28 # - это IP на Клиенте 2

    Соответственно файл конфигурации пользователя Клиент 1 будет выглядеть так:
    spoiler
    [Interface]
    PrivateKey = 2OFFAe5yzYF9mti+NdVf/XPHTyJiVgICYj+hW02IVEk=
    Address = 1.1.1.2/28
    DNS = 77.88.8.8
    
    [Peer]
    PublicKey = CSBbv/HvYOszskTR3fH2wRbJqH+wnRmER63E2UBDimE=
    Endpoint = 1.1.1.1:51820
    AllowedIPs = 0.0.0.0/0,::/0
    PersistentKeepalive = 25

    Если Клиентов более 1, то файл конфигурации пользователя, например Клиент 2 уже будет выглядеть так, с возрастанием последней цифры в Address:
    spoiler
    [Interface]
    PrivateKey = ххххххххххххххххххххх=
    Address = 1.1.1.3/28
    DNS = 77.88.8.8
    
    [Peer]
    PublicKey = хххххххххххххххххххххх=
    Endpoint = 1.1.1.1:51820
    AllowedIPs = 0.0.0.0/0,::/0
    PersistentKeepalive = 25

    И т.д...
    Как-то так...

    И ещё, если в Ubuntu (сервер) помимо iptables, ещё установлена и UFW, то в конфиг на нём нужно добавлять правила директивами:
    PostUp =
    и
    PreDown =
    и для UFW иначе при запуске WG будет ошибка и работать естесно не будет...
    spoiler
    PostUp = sysctl net.ipv4.ip_forward=1
    PostUp = ufw route allow in on wg0 out on enp4s0
    ...
    PreDown = ufw route delete allow in on wg0 out on enp4s0
    PostDown = sysctl net.ipv4.ip_forward=0
    ...

    где wg0 имя конфиг-файла в Ubuntu (сервер):
    /etc/wireguard/wg0.conf
    Также уточните название сетевого интерфейса в Ubuntu (сервере) командой:
    ip a
    Как правило это в пункте:
    2:
    Что-то наподобие:
    2: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000

    Так вот название интерфейса - это enp4s0

    Его и надо вписывать в конфиге, где у вас eth0 прописано, т.е. вместо него...
    Т.е. должно быть так:
    spoiler
    iptables -t nat -A POSTROUTING -o enp4s0 -j MASQUERADE
    Ответ написан
    Комментировать