February 8

Поднимаем собственный VPN

Сегодня поговорим о том, как создать свой собственный VPN, который будет использовать только вы. Это позволит вам просматривать ленту в Инстаграме или задавать вопросы ChatGPT. Многие пользователи предпочитают бесплатные сервисы, но они часто сильно ограничивают скорость интернета и показывают много рекламы, а также не обеспечивают достаточной конфиденциальности. Платные версии таких сервисов тоже не всегда устраивают, так как на их сервера подключено много других пользователей, не говоря уже о продаже вашей конфиденциальной информации.

Нравится? Отлично, будем устанавливать WireGuard. Это относительно свежая технология, которая обеспечивает быстрое, конфиденциальное и стабильное подключение.

Решение проблемы

1) Нужно подписаться на Telegram канал

2) Проблема решается очень просто: нужен виртуальный сервер(подойдет почти любой, но с хорошим каналом), ~4$ и немножко терпения. Пользоваться будем WireGuard, который мы установим на свой сервер с помощью Docker.

Требования к серверу:

  • Дата-центр сервера должен быть за пределами России, по понятным причинам.
  • 1 ядро процессора.
  • Не менее 512MB оперативной памяти.
  • Ширина канала больше 100Mbit/sec.

Установка Wireguard с помощью Docker

После того как мы купили сервер нужно поставить систему Ubuntu или Debian. Подключаемся по SSH и вводим следующий спектр команд:

apt update && apt upgrade -y - обновляем кэш репозиториев и систему.


Далее установим Docker:

apt install docker.io

apt install docker-compose


Создадим директорию для конфигурационных файлов:

mkdir -p ~/wireguard/config


Создадим и настроим конфигурационный файл Docker:

nano ~/wireguard/docker-compose.yml


  • Все, что помечено #optional - вы можете менять на нужные вам параметры.
  • Настройки оптимальны для всех, нужно только заменить значение PEERS на нужное вам, в зависимости от того, сколько устройств будут пользоваться VPN.
version: "2.1"
services:
  wireguard:
    image: lscr.io/linuxserver/wireguard
    container_name: wireguard
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
      - SERVERURL=auto #optional
      - SERVERPORT=51820 #optional
      - PEERS=4 #optional
      - PEERDNS=auto #optional
      - INTERNAL_SUBNET=10.13.13.0 #optional
      - ALLOWEDIPS=0.0.0.0/0 #optional
    volumes:
      - ~/wireguard/config:/config
      - /lib/modules:/lib/modules
    ports:
      - 51820:51820/udp
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1
    restart: unless-stopped

Здесь настройка конфигурации завершена.


Создадим и запустим Docker контейнер:

cd ~/wireguard
docker-compose up -d


После выполнения команды можем убедиться в успешном запуске контейнера: docker ps

Конфиг для телефона

Чтобы добавить конфиг на телефон достаточно отсканировать QR-код, который появится после выполнения команды:

docker exec -it wireguard /app/show-peer X


Вместо X подставьте цифру нужного потока(PEER)


Скачиваем мобильное приложение для телефона и выполняем следующие действия:

  • Нажимаем + в правом верхнем углу экрана.
  • Выбираем пункт "Создать из QR-кода".
  • Наводим на ранее сгенерированный QR код из SSH-клиента.
  • Называем конфиг как удобно.

Конфиг для Компьютера

Скачиваем приложение для FTP-доступа к хостингу(я использую FileZilla) и подключаемся к серверу.


Заходим в директорию /root/wireguard/config и видим перед собой потоки, их количество вы задавали ранее, заходим в папку с нужным потоком, в ней несколько файлов:

  • peerX.conf - файл конфига потока.
  • peerX.png - изображение QR-кода.
  • публичный и приватный ключи, которые нам не потрубуются.

Переносим peerX.conf себе на компьютер и скачиваем WireGuard.


Нажимаем на кнопку добавить туннель.


Выбираем файл peerX.conf, и жмем подключиться.


Заходим на 2ip.io и проверяем работоспособность соединения.

Вывод

Буквально за 20 минут и за ~4$ мы сделали себе надежный и быстрый VPN, подключаясь к которому мы можем не бояться обрыва сети. Так же мы избавили себя от назойливой рекламы и можем поделиться конфигом с кем угодно.

Не забудьте подписаться на Telegram канал