Skip to content

Latest commit

 

History

History
227 lines (148 loc) · 13.3 KB

README.md

File metadata and controls

227 lines (148 loc) · 13.3 KB

Как развернуть свой Wireguard VPN сервер с WEB-интерфейсом за одну команду

WireGuard является одним из наиболее популярных и простых в использовании VPN-решений, предоставляющих безопасное сетевое соединение. Если вы ищете быстрый и простой способ развернуть собственный VPN-сервер WireGuard с WEB-интерфейсом, то Docker-контейнер представляет отличное решение. В этой статье мы рассмотрим, как установить и запустить Docker-контейнер WireGuard с WEB-интерфейсом за одну команду, а также как подключиться к нему с различных устройств.

Сервер

Развертывание WireGuard WEB UI сервера через Docker

Предварительные настройки

Для начала необходимо установить Ansible, инструмент автоматизации развертывания приложений на удаленных серверах. Выполните следующую команду для установки Ansible:

sudo apt install ansible

Также чтобы ansible подключатся к удаленному серверу через пароль установите:

sudo apt install sshpass

Далее создайте файл inventory.yml, в котором нужно указать данные для подключения к серверу, например:

---
all:
    hosts:
        ИмяСервера1:
            ansible_host: IP_Адрес
            ansible_user: Пользователь
            # SSH порт
            ansible_port: 22
            # Для этого устанавливали sshpass
            ansible_ssh_pass: Пароль

Замените ИмяСервера, IP_Адрес, Пользователь и Пароль на соответствующие значения для вашего сервера.

Вот та единственная команда

Теперь можно выполнить команду для развертывания WireGuard WEB UI сервера с помощью Docker-контейнера:

ansible-playbook -i ./inventory.yml -l ИмяСервера1 ./wireguard/install_wireguard_server.yml -e PasswordServer=990990

Здесь ИмяСервера - имя вашего сервера, PasswordServer - пароль для WEB-версии WireGuard. После успешного выполнения команды, WEB-версия WireGuard будет доступна по URL: IP_Адрес:51821. По умолчанию пароль 990990

Клиент

Телефон

Чтобы подключиться к VPN-серверу WireGuard с вашего телефона, выполните следующие шаги:

  1. Установите приложение WireGuard на свой телефон.

  2. Отсканируйте QR-код, как показано на скриншоте ниже:

    • Скриншот 1
    • Скриншот 2
  3. Нажмите "Добавить" и сохраните настройки VPN.

Linux

Для подключения к VPN-серверу WireGuard на Linux выполните следующие шаги:

  1. Получите файл конфигурации для подключения к VPN-серверу. Выглядит он примерно так:

    Сконфигурации

  2. Установить WireGuard

    sudo apt install wireguard
  3. Скопируйте файл конфигурации в папку /etc/wireguard/ с помощью следующей команды:

    cp ИмяКонфигурации.conf /etc/wireguard/
  4. Подключитесь к VPN-серверу WireGuard с помощью следующей команды:

    sudo wg-quick up ИмяКонфигурации
  5. Чтобы отключиться от VPN, выполните следующую команду:

    sudo wg-quick down ИмяКонфигурации

Теперь у вас есть свой собственный WireGuard VPN сервер с WEB-интерфейсом, развернутый с помощью Docker-контейнера. Вы можете подключиться к нему с различных устройств, включая телефоны и компьютеры с Linux. WireGuard предоставляет безопасное и эффективное шифрованное соединение, которое защищает вашу приватность и обеспечивает безопасность передачи данных в интернете.

Как развернуть NextCloud на HTTPS всего за одну команду

В современном мире облачные хранилища данных становятся все более популярными. Они предлагают удобный способ хранить, синхронизировать и обмениваться файлами, обеспечивая доступ к ним с любого устройства и из любой точки мира. Однако, многие пользователи предпочитают иметь полный контроль над своими данными и использовать собственные серверы для развёртывания облачных хранилищ. В этой статье мы рассмотрим, как развернуть NextCloud - одно из самых популярных облачных хранилищ с открытым исходным кодом - на HTTPS всего за одну команду.

Мы покажем вам пример команды развёртывания NextCloud на HTTPS, которую можно использовать для создания собственного облачного хранилища данных. Также рассмотрим создание резервной копии файлов NextCloud с помощью RSYNC и создание бесплатного доменного имени для обеспечения доступа к вашему облачному хранилищу из интернета.

Данная статья будет полезна как начинающим пользователям, которые только начинают знакомиться с NextCloud, так и опытным системным администраторам, которые хотят упростить и автоматизировать процесс развёртывания и управления своим облачным хранилищем.

Подготовка

Создайте на сервере папку по пути /mnt/extdisk. Это может быть смонтированный внешний диск

  1. Посмотреть список всех дисков

    sudo lsblk # Получить список дисков и их размер
    sudo blkid # Получить UID диска
  2. Создать точку(папку) монтирование для диска

    sudo mkdir /mnt/extdisk
  3. Добавить диск в конфигурационный файл /etc/fstab

    sudo nano /etc/fstab
    UUID=cf0d6629-2bd3-4874-94bf-053e750ae973   /mnt/extdisk   auto   defaults   1   0
    • cf0d6629-2bd3-4874-94bf-053e750ae973 - Это примерный UUID
  4. Теперь можно применить изменения, выполнив команду . Это применит настройки из файла fstab и монтирует ваш внешний диск в указанную точку монтирования.

    sudo mount -a

    Или это можно сделать вручную

    sudo mount /dev/sdX1 /mnt/extdisk

    Чтобы от монтировать диск, выполните:

    sudo umount /mnt/extdisk

Единая команда для развёртывания NextCloud на HTTPS

Пример команды для развёртывания NextCloud на HTTPS можно найти в репозитории NextCloud Docker на GitHub: https://github.com/nextcloud/docker/tree/master/.examples/docker-compose/insecure/postgres/fpm.

  1. Выполните следующую команду, чтобы передать переменные из командной строки во время запуска docker-compose:
ansible-playbook -i ./inventory.yml -l ИмяСервера1 ./nextcloud/install_nextcloud_server.yml -e POSTGRES_PASSWORD=10101010 -e UUID_EXTERNAL_DISK=cf0d6629-2bd3-4874-94bf-053e750ae973
  • Параметр POSTGRES_PASSWORD - пароль для базы данных PostgreSQL.
  • Параметр UUID_EXTERNAL_DISK - uuid вашего внешнего диска, его можно получить через blkid
  1. Подождите около 2 минут, чтобы все приложения запустились.
  2. Перейдите по URL-адресу https://Хост.
  3. Создайте учётную запись администратора, указав следующие данные:
    • Пользователь: nextcloud
    • Пароль: nextcloud10101010
  4. Рекомендуется пропустить установку рекомендуемых расширений.

Создание резервной копии всех файлов NextCloud с помощью RSYNC

DISK=$HOME
ansible-playbook -i ./inventory.yml -v -l ИмяСервера1 ./nextcloud/backup_nextcloud_server.yml -e LOCAL_PATH_BACKUP="$DISK/backup_nextcloud"
  • Параметр LOCAL_PATH_BACKUP - путь на локальной машине, куда будет сохранена резервная копия.

Создание бесплатного доменного имени

  1. Зарегистрируйтесь на https://my.noip.com/.
  2. Войдите в панель управления https://my.noip.com/dynamic-dns.
  3. Создайте доменное имя:
    1. Новое доменное имя.
    2. Адрес сервера.

FileBrowser

  • Развернуть FileBrowser на удаленном сервере
ansible-playbook -i ./inventory.yml -v -l ИмяСервера1 ./filebrowser/up.yml
  • Конфигурации из контейнера FileBrowser будет храниться в папке /home/filebrowser_conf на удаленном сервере. Команда ниже скачивает эту папку с удаленного сервера в локальную папку ./filebrowser/filebrowser_conf
ansible-playbook -i ./inventory.yml -v -l ИмяСервера1 ./filebrowser/download_conf.yml

Монтировать локальную папку на удаленный сервер

  • Вы можете смонтировать локальную папку на удаленный сервере через обратный SHH туннель и sshfs
LOCAL_PATH="..."
LOCAL_PASSWORD="..."
ansible-playbook -i ./inventory.yml -v -l ИмяСервера1 ./filebrowser/local_mount.yml -e LOCAL_USER=$USER -e LOCAL_PATH="'$LOCAL_PATH'" -e LOCAL_PASSWORD=$LOCAL_PASSWORD

Теория

Что делает команда:

ssh -R -N 8989:localhost:22 root@95.163.237.188 &

Данная команда устанавливает удаленное пробросление порта через SSH на удаленной машине с IP-адресом 95.163.237.188.

Подробнее, она создает проброс порта, где порт 8989 на удаленной машине будет перенаправляться на порт 22 (стандартный порт SSH) на локальной машине (той, с которой выполняется команда). То есть, когда удаленный сервер будет получать соединение на порт 8989, это соединение будет перенаправляться на порт 22 локальной машины.

Команда выполняется от имени пользователя root на удаленной машине, что означает, что у вас должны быть права администратора на этой машине для ее выполнения.