Замутил себе такой зоопарк на всякий случай, в связи с нынешними событиями. Объясню зачем. Мой роутер с Asuswrt-Merlin поддерживает OpenVPN и WireGuard, но не умеет Shadowsocks + VLESS, которыми я пользуюсь на ПК, поэтому решил попробовать замутить сразу всё на одном сервере.
Первое, что нужно сделать, найти и купить VPS физически находящийся за пределами РФ. Выбор большой, на любой вкус и кошелёк. В качестве основной системы, выбираем Ubuntu. В моём случае это Ubuntu 22.04.
Для подключения будем использовать Putty:
Вводим IP вашего сервера и жмакаем Open.
Установка максимально простая. Вводим логин и пароль от вашего сервера и копипастим команды в терминал по очереди.
Ставить этот зоопарк будем в контейнеры Docker.
1. Установите Docker и Docker Compose:
Если Docker и Docker Compose еще не установлены, установите их:
sudo apt update
sudo apt install docker.io docker-compose
sudo systemctl start docker
sudo systemctl enable docker
2. Установка и настройка WireGuard в Docker
Создайте директорию для WireGuard:
mkdir -p ~/wireguard
cd ~/wireguard
Создайте файл docker-compose.yml для WireGuard:
Добавьте в него следующую конфигурацию:
version: '3.8'
services:
wireguard:
image: linuxserver/wireguard
container_name: wireguard
cap_add:
- NET_ADMIN
- SYS_MODULE
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
- SERVERURL=your_server_domain_or_ip
- SERVERPORT=51820
- PEERS=1
- PEERDNS=auto
- INTERNAL_SUBNET=10.0.0.0/24
volumes:
- ./config:/config
- /lib/modules:/lib/modules
ports:
- "51820:51820/udp"
sysctls:
- net.ipv4.conf.all.src_valid_mark=1
restart: unless-stopped
Внимание! Пикабу режет форматирование, а это важно. Ориентируйтесь на скрин, а то будет ошибка:
Запустите контейнер WireGuard:
sudo docker-compose up -d
В принципе всё. WireGuard установлен и работает.
Чтобы получить QR-код для подключения и убедиться, что WireGuard работает, вводим команду:
sudo docker logs wireguard
3. Установка и настройка 3x-ui в Docker
Клонируем исходники. Ставить будем последнюю стабильную версию. Перед установкой желательно проверить на github.
Запустите контейнер 3x-ui
На этом, в принципе, установка завершена :)
Теперь открываем браузер и заходим в админку по ссылке:
http://yourserverip:2053/panel/, где yourserverip - IP-адрес вашего сервера (протокол http://, а не https://).
Логин и пароль - admin/admin и входим в удобную панель управления:
Первым делом идём в Настройки панели -> Настройки безопасности и меняем логин/пароль на собственные. В идеале можно ещё поменять порт панели и URL адреса панели.
Далее жмакаем Подключения -> Добавить подключение
Придумываем название, выбираем Протокол Shadowsocks. Остальное не трогаем и нажимаем - создать.
Теперь можно добавить VLESS. Также жмакаем Подключения -> Добавить подключение. Пишем своё название и выбираем протокол VLESS. Порт 443. В разделе Security выбираем REALITY. Во Flow ставим в xtls-rprx-vision. В поле uTLS рекомендуею выбирать chrome, но можно выбрать любое другое из списка. В полях Dest и SNI, либо оставить по умолчанию, либо прописать на выбор:
После сгенерировать сертификаты кнопкой и создать подключение.
Подключиться можно по QR-коду (для смартфонов) или по ссылке (для ПК), которые можно получить из созданных нами подключений.
На этом в принципе с серверной частью всё.
В качестве клиентов для ПК и смартфонов используйте на выбор - Nekoray или Hiddify.
P.S. Большинству наверное такой зоопарк не интересен, но... знаю, что протоколы OpenVPN и WireGuard уже умеют тормозить и довольно успешно, поэтому неплохо когда на одном сервере есть несколько работающих одновременно вариантов.