Git Product home page Git Product logo

linux-wg-ui-manual's Introduction

Установка на сервер wireguard с веб-интерфейсом

Описание

В данном руководстве рассмотрены команды для установки на linux сервер wireguard с веб-интерфейсом wg-easy или wireguard-ui.

Используемое ПО

Windows

  • Windows terminal

Linux

  • terminal

проект Wg-easy

https://github.com/wg-easy/wg-easy

Установка

  1. Покупаем vps, vds сервер на Debian, Ubuntu

  2. Заходим на сервер под рутом

    ssh root@<ip адрес сервера>

    Вводим пароль

  3. Установка докера

    apt install curl -y
    curl -sSL https://get.docker.com | sh
  4. Запуск приложения

    docker run -d \
        --name=wg-easy \
        -e WG_HOST=🚨YOUR_SERVER_IP \
        -e PASSWORD=🚨YOUR_ADMIN_PASSWORD \
        -v ~/.wg-easy:/etc/wireguard \
        -p 51820:51820/udp \
        -p 51821:51821/tcp \
        --cap-add=NET_ADMIN \
        --cap-add=SYS_MODULE \
        --sysctl="net.ipv4.conf.all.src_valid_mark=1" \
        --sysctl="net.ipv4.ip_forward=1" \
        --restart unless-stopped \
        weejewel/wg-easy

    💡 Замените YOUR_SERVER_IP своим IP адресом, или dns именем.

    💡 Замените YOUR_ADMIN_PASSWORD на пароль для веб-админки.

    Конфигурация сохраняется в ~/.wg-easy.

  5. Зайдите в веб интерфейс по адресу http://<ваш ip>:51821 и добавьте пользователей. Пароль для доступа был установлен на предыдущем шаге.

  6. Обновление сервера (если надо). Для обновления надо остановить докер, скачать новую версию докера и запустить его снова.

    docker stop wg-easy
    docker rm wg-easy
    docker pull weejewel/wg-easy

    И снова выполните из предыдущего пункта команду docker run -d \ ....

проект Wireguard UI

https://github.com/ngoduykhanh/wireguard-ui/

Установка

  1. Покупаем vps, vds сервер на Debian, Ubuntu

  2. Заходим на сервер

    ssh root@<ip адрес сервера>

    Вводим пароль

  3. Обновляем по

    apt update && apt upgrade -y
  4. Устанавливаем wireguard

    apt install wireguard -y
  5. Включаем ip forwarding на сервере

    echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
    sysctl -p

    устанавливаем iptables:

    apt install iptables -y
  6. Устанавливаем wireguard-ui

    • создаем каталог wireguard-ui и преходим в него

      mkdir wireguard-ui
      cd wireguard-ui
    • Качаем tar архив из релизов https://github.com/ngoduykhanh/wireguard-ui/releases

      wget <ссылка на tar.gz файл>
      
    • Смотрим имя загруженного файла:

      ls -la
    • Распаковываем скачанный файл:

      tar -xvf <скачанный архив>
    • Запускаем wireguard-ui для создания конфигурации

      ./wireguard-ui
    • Останавливаем wireguard-ui Нажимаем в консоли Ctrl+C

  7. Запускаем службу для wireguard: После запуска web интерфейса у нас создастся файл конфигурации для wireguard по пути /wtc/wireguard/wg0.conf. Теперь можно включить и запускать wireguard как сервис, чтобы при перезапуске компьютера работал wireguard.

    systemctl enable [email protected]
    • Создаем службы для перезапуска wireguard в случае изменения конфигурации. Выполняем в терминале следующие команды:

      cd /etc/systemd/system/
      cat << EOF > wgui.service
      [Unit]
      Description=Restart WireGuard
      After=network.target
      
      [Service]
      Type=oneshot
      ExecStart=/usr/bin/systemctl restart [email protected]
      
      [Install]
      RequiredBy=wgui.path
      EOF
      cd /etc/systemd/system/
      cat << EOF > wgui.path
      [Unit]
      Description=Watch /etc/wireguard/wg0.conf for changes
      
      [Path]
      PathModified=/etc/wireguard/wg0.conf
      
      [Install]
      WantedBy=multi-user.target
      EOF
      systemctl enable wgui.{path,service}
      systemctl start wgui.{path,service}
  8. Создаём файл для автоматического запуска веб-интерфейса в случае перезапуска компьютера:

    cd /etc/systemd/system/
    cat << EOF > wireguard-ui.service
    [Unit]
    Description=WireGuard UI Service
    After=network.target
    
    [Service]
    Type=simple
    User=root
    WorkingDirectory=/root/wireguard-ui
    ExecStart=/root/wireguard-ui/wireguard-ui
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
    
    EOF
    systemctl enable wireguard-ui.service
    systemctl start wireguard-ui.service
  9. Заходим в веб интерфейс wireguard-ui

    • в браузере вводим http://<адрес сервера>:5000
    • вводим логин и пароль admin admin
    • в настройках Wiregard Server:
      • в поле Post Up Script вводим:
      iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
      • в поле Post Down Script вводим:
      iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

    , где eth0 - имя сетевого интерфейса, через который будут подключаться клиенты. Скорее всего это eth0, но убедиться можно выполнив команду ip a на сервере и найдя имя интерфейса с внешним ip адресом по которому вы подключаетесь к серверу.

    • Сохраняем Save и применяем конфигурацию Apply Config.
  10. Добавляем пользователей

    • Добавляете пользователей
    • После добавления пользователей надо перезагрузить wireguard применив конфигурацию - нажав кнопку Apply Config в веб интерфейсе.
    • делимся конфигурационным файлом или qr-кодом с пользователем.

Инструкция для пользователей

https://timeweb.cloud/docs/timeweb-private-vpn/vpn-wireguard-setup

linux-wg-ui-manual's People

Contributors

cucumberian avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.