{"id":23498378,"url":"https://github.com/cucumberian/linux-wg-ui-manual","last_synced_at":"2025-09-05T16:43:34.395Z","repository":{"id":220459455,"uuid":"723876177","full_name":"cucumberian/linux-wg-ui-manual","owner":"cucumberian","description":"manual for installing wireguard web interface","archived":false,"fork":false,"pushed_at":"2023-11-27T00:20:16.000Z","size":3,"stargazers_count":18,"open_issues_count":0,"forks_count":5,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-25T05:31:54.885Z","etag":null,"topics":["documentation","linux","manual","vpn","web-interface","wg-easy","wireguard-ui","wireguard-vpn-setup"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cucumberian.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-27T00:13:42.000Z","updated_at":"2024-12-07T02:26:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"be2f6f0b-0a21-47f6-8aba-5762a4976402","html_url":"https://github.com/cucumberian/linux-wg-ui-manual","commit_stats":null,"previous_names":["cucumberian/linux-wg-ui-manual"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cucumberian%2Flinux-wg-ui-manual","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cucumberian%2Flinux-wg-ui-manual/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cucumberian%2Flinux-wg-ui-manual/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cucumberian%2Flinux-wg-ui-manual/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cucumberian","download_url":"https://codeload.github.com/cucumberian/linux-wg-ui-manual/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239147106,"owners_count":19589539,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["documentation","linux","manual","vpn","web-interface","wg-easy","wireguard-ui","wireguard-vpn-setup"],"created_at":"2024-12-25T05:31:39.562Z","updated_at":"2025-02-16T15:18:22.789Z","avatar_url":"https://github.com/cucumberian.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Установка на сервер wireguard с веб-интерфейсом\n\n## Описание\nВ данном руководстве рассмотрены команды для установки на linux сервер wireguard с веб-интерфейсом [wg-easy](https://github.com/wg-easy/wg-easy) или [wireguard-ui](https://github.com/ngoduykhanh/wireguard-ui/).\n\n## Используемое ПО\n### Windows\n - Windows terminal\n### Linux\n - terminal\n\n\n\n## проект Wg-easy\nhttps://github.com/wg-easy/wg-easy\n### Установка\n1. Покупаем vps, vds сервер на Debian, Ubuntu\n2. Заходим на сервер под рутом\n    ```shell\n    ssh root@\u003cip адрес сервера\u003e\n    ```\n    Вводим пароль\n3. Установка докера\n\n    ```shell\n    apt install curl -y\n    curl -sSL https://get.docker.com | sh\n    ```\n2. Запуск приложения\n    ```shell\n    docker run -d \\\n        --name=wg-easy \\\n        -e WG_HOST=🚨YOUR_SERVER_IP \\\n        -e PASSWORD=🚨YOUR_ADMIN_PASSWORD \\\n        -v ~/.wg-easy:/etc/wireguard \\\n        -p 51820:51820/udp \\\n        -p 51821:51821/tcp \\\n        --cap-add=NET_ADMIN \\\n        --cap-add=SYS_MODULE \\\n        --sysctl=\"net.ipv4.conf.all.src_valid_mark=1\" \\\n        --sysctl=\"net.ipv4.ip_forward=1\" \\\n        --restart unless-stopped \\\n        weejewel/wg-easy\n    ```\n    💡 Замените YOUR_SERVER_IP своим IP адресом, или dns именем.\n\n    💡 Замените YOUR_ADMIN_PASSWORD на пароль для веб-админки.\n\n    Конфигурация сохраняется в `~/.wg-easy`.\n\n3. Зайдите в веб интерфейс по адресу `http://\u003cваш ip\u003e:51821` и добавьте пользователей. Пароль для доступа был установлен на предыдущем шаге.\n\n4. Обновление сервера (если надо).\nДля обновления надо остановить докер, скачать новую версию докера и запустить его снова.\n\n    ```shell\n    docker stop wg-easy\n    docker rm wg-easy\n    docker pull weejewel/wg-easy\n    ```\n\n    И снова выполните из предыдущего пункта команду `docker run -d \\ ...`.\n\n## проект Wireguard  UI\nhttps://github.com/ngoduykhanh/wireguard-ui/\n### Установка\n1. Покупаем vps, vds сервер на Debian, Ubuntu\n2. Заходим на сервер\n    ```shell\n    ssh root@\u003cip адрес сервера\u003e\n    ```\n    Вводим пароль\n3. Обновляем по\n    ```shell\n    apt update \u0026\u0026 apt upgrade -y\n    ```\n4. Устанавливаем _wireguard_\n    ```shell\n    apt install wireguard -y\n    ```\n5. Включаем ip forwarding на сервере\n    ```shell\n    echo \"net.ipv4.ip_forward=1\" \u003e\u003e /etc/sysctl.conf\n    sysctl -p\n    ```\n    устанавливаем _iptables_:\n    ```shell\n    apt install iptables -y\n    ```\n\n6. Устанавливаем wireguard-ui\n    - создаем каталог `wireguard-ui`  и преходим в него\n        ```shell\n        mkdir wireguard-ui\n        cd wireguard-ui\n        ```\n    - Качаем tar архив из релизов https://github.com/ngoduykhanh/wireguard-ui/releases\n        ```sell\n        wget \u003cссылка на tar.gz файл\u003e\n        ```\n    - Смотрим имя загруженного файла:\n        ```shell\n        ls -la\n        ```\n    - Распаковываем скачанный файл:\n        ```shell\n        tar -xvf \u003cскачанный архив\u003e\n        ```\n\n    - Запускаем wireguard-ui для создания конфигурации\n        ```shell\n        ./wireguard-ui\n        ```\n    - Останавливаем _wireguard-ui_\n        Нажимаем в консоли `Ctrl+C`\n\n7. Запускаем службу для _wireguard_:\n    После запуска web интерфейса у нас создастся файл конфигурации для _wireguard_ по пути `/wtc/wireguard/wg0.conf`. Теперь можно включить и запускать _wireguard_ как сервис, чтобы при перезапуске компьютера работал _wireguard_.\n    ```shell\n    systemctl enable wg-quick@wg0.service\n    ```\n    - Создаем службы для перезапуска _wireguard_ в случае изменения конфигурации.\n        Выполняем в терминале следующие команды:\n        ```shell\n        cd /etc/systemd/system/\n        cat \u003c\u003c EOF \u003e wgui.service\n        [Unit]\n        Description=Restart WireGuard\n        After=network.target\n\n        [Service]\n        Type=oneshot\n        ExecStart=/usr/bin/systemctl restart wg-quick@wg0.service\n\n        [Install]\n        RequiredBy=wgui.path\n        EOF\n        ```\n\n        ```shell\n        cd /etc/systemd/system/\n        cat \u003c\u003c EOF \u003e wgui.path\n        [Unit]\n        Description=Watch /etc/wireguard/wg0.conf for changes\n\n        [Path]\n        PathModified=/etc/wireguard/wg0.conf\n\n        [Install]\n        WantedBy=multi-user.target\n        EOF\n        ```\n\n        ```shell\n        systemctl enable wgui.{path,service}\n        systemctl start wgui.{path,service}\n        ```\n\n7. Создаём файл для автоматического запуска веб-интерфейса в случае перезапуска компьютера:\n    ```shell\n    cd /etc/systemd/system/\n    cat \u003c\u003c EOF \u003e wireguard-ui.service\n    [Unit]\n    Description=WireGuard UI Service\n    After=network.target\n\n    [Service]\n    Type=simple\n    User=root\n    WorkingDirectory=/root/wireguard-ui\n    ExecStart=/root/wireguard-ui/wireguard-ui\n    Restart=on-failure\n\n    [Install]\n    WantedBy=multi-user.target\n\n    EOF\n    ```\n    ```shell\n    systemctl enable wireguard-ui.service\n    systemctl start wireguard-ui.service\n    ```\n\n9. Заходим в веб интерфейс _wireguard-ui_\n    - в браузере вводим `http://\u003cадрес сервера\u003e:5000`\n    - вводим логин и пароль `admin` `admin`\n    - в настройках __Wiregard Server__:\n        - в поле __Post Up Script__ вводим:\n        ```shell\n        iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE\n        ```\n        - в поле __Post Down Script__ вводим:\n        ```shell\n        iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE\n        ```\n    , где `eth0` - имя сетевого интерфейса, через который будут подключаться клиенты. Скорее всего это `eth0`, но убедиться\n    можно выполнив команду `ip a` на сервере и найдя имя интерфейса\n    с внешним ip адресом по которому вы подключаетесь к серверу.\n    - Сохраняем __Save__ и применяем конфигурацию __Apply Config__.\n\n10. Добавляем пользователей\n    - Добавляете пользователей\n    - После добавления пользователей надо перезагрузить _wireguard_ применив конфигурацию - нажав кнопку __Apply Config__ в веб интерфейсе.\n    - делимся конфигурационным файлом или qr-кодом с пользователем.\n\n\n## Инструкция для пользователей\nhttps://timeweb.cloud/docs/timeweb-private-vpn/vpn-wireguard-setup","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcucumberian%2Flinux-wg-ui-manual","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcucumberian%2Flinux-wg-ui-manual","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcucumberian%2Flinux-wg-ui-manual/lists"}