Назад

VPN на 3X-UI, без Docker

Добрый день. Как было замечено в комментариях прошлой темы по 3X-UI, в ответ на сложности с получением сертификата SSl, есть возможность его установить без Docker. Вот, сегодня тема об этом.

Ссылка на GitHub автора скрипта — GitHub — MHSanaei/3x-ui: Xray panel supporting multi-protocol multi-user expire day & traffic & ip limit (Vmess & Vless & Trojan & ShadowSocks)

Выбор сервера под VPN

Я предлагаю 4 хороших и проверенных хостинга, под зарубежный или российский VPN (для релокантов). Посмотреть их описание можно в предыдущих статьях.

Установка

apt update && apt upgrade -y
bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)

В конце очень быстрой установки, мы получим логин и пароль. Либо, мы сами вводом свои данные логин-пароль-порт.

Панель управления 3X-UI находится по адресу: http://yourip:2053 (или ваш порт).

После установки, мы можем управлять сервером из консоли через следущие команды:

x-ui control menu usages: 
----------------------------------------------
x-ui              - Enter     Admin menu
x-ui start        - Start     x-ui
x-ui stop         - Stop      x-ui
x-ui restart      - Restart   x-ui
x-ui status       - Show      x-ui status
x-ui enable       - Enable    x-ui on system startup
x-ui disable      - Disable   x-ui on system startup
x-ui log          - Check     x-ui logs
x-ui banlog       - Check Fail2ban ban logs
x-ui update       - Update    x-ui
x-ui install      - Install   x-ui
x-ui uninstall    - Uninstall x-ui
----------------------------------------------

Получаем SSL на панель

Расскажу от 3 способах получить SSL, первый, встроен в скрипт 3X-UI. Поэтому начнем с него.

Через X-UI:

x-ui

Выбираем пункт 15 и введем наш домен, к которому прилинкован IP сервера.

Переходим в панель 3X-UI по адресу yourdomain.com:2053(или тот порт, который вы указали при установке). В разделе Panel Settings прописываем пути к сертификатам SSL:

/root/.acme.sh/your_domain_ecc/fullchain.cer
/root/.acme.sh/your_domain_ecc/your_domain.key

Пример:

Через Cloudflare. Прилинковываем наш домен к Cloudflare и выпускаем сертификат на 15 лет через их сервис

Через Acme:

apt install cron  && apt install socat
curl https://get.acme.sh | sh -s [email protected]
mkdir -p /var/lib/certs/

DOMAIN и SUBDOMAIN1.DOMAIN — пишем наши домены и суб-домены. Которые мы прилинковали заранее к нашему IP. Если суб-домены не нужны, удаляем их

~/.acme.sh/acme.sh --set-default-ca --server letsencrypt --issue --standalone \
-d DOMAIN \
--key-file /var/lib/certs/key.pem \
--fullchain-file /var/lib/certs/fullchain.pem

Добавляем наши полученные сертификаты в панель 3X-UI, вместе с доменом.

Создаем VPN профайлы

Shadowsocks

Переходим на вкладку Inbounds > Add Inbound

Remark — любое рандомное название

Protocol — shadowsocks

Нажимаем Create

Теперь можно отсканировать QR код и пользоваться VPN на Shadowsocks

VLESS + Reality

Remark — любое рандомное название

Protocol — vless

Port — 443

Ниже, где Transparent Proxy ставим галочку на Reality

 uTLS — Chrome

Dest — microsoft.com:443

Server Names — microsoft.com,www.microsoft.com

И нажать кнопку Get New Key > Create

Если у вас занят 443 порт, то пользуем альтернативу:

VLESS/VMESS no 443

Порт — пусто (по умолчанию)

Безопасность — TLS

Протокол передачи — TCP

Сертификат — сертификат с панели, который мы ранее выпустили

uTLS — random

Ну и вы можете сами экспериментировать с протоколами 🙂

Безопасность сервера

Защитим сервер от взлома через брутфорс:

apt install fail2ban -y && apt install ufw -y && apt install nano -y
touch /etc/fail2ban/jail.local && nano /etc/fail2ban/jail.local

Откроется редактор, вставим в него код:

[sshd]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
logpath = /var/log/auth.log
findtime = 600
maxretry = 3
bantime = 43200

Нажимаем ctlr + x, далее Y и enter, чтобы сохранить.

Отключаем двухсторонний пинг

Чтобы улучшить нашу маскировку, отключим пинг

 nano /etc/ufw/before.rules

Меняем концовку следующего выражения с ACCEPT на DROP:

-A ufw-before-input -p icmp --icmp-type echo-request -j DROP

Нажимаем ctlr + x, далее y + enter, чтобы сохранить.

Включаем фаервол

Чтобы включить фаервол, нужно заранее выписать все используемые порты на сервере, для этого мы установим netstat и посмотрим какие порты нужно открыть:

apt install net-tools
netstat -ntlp | grep LISTEN

Смотрите порты, которые идут после 0.0.0.0:порт или IP_адрес вашего_сервера:порт, например:

  1. 0.0.0.0:993
  2. 76.20.7.12:53
  3. :::22

Их необходимо открыть в UFW или через панель управления вашим сервером/хостингом. Смотря как это реализовано у вас. Например:

ufw allow 22/tcp && ufw allow 443 && ufw allow 40000 && ufw enable

Подтверждаем через Y + Enter

Напоследок очистимся и перезагрузимся:

apt update && apt upgrade -y && apt autoclean -y && apt clean -y && apt autoremove -y && reboot

Программы для VPN

Буду рекомендовать только одну программу, которая есть для всех платформа (Android, iOS, Windows, MacOS, Linux). Это Hiddify.

Заранее благодарен за уточняющие комментарии, для меня они очень важны и помогает улучшить базу знаний на блоге. Спасибо вам!

Atlant
Atlant
http://vpneasy.pro
Пишу только о VPN и современных протоколах защиты и передачи данных. Проект не монетизируется и не направлен на извлечение выгоды. Миссия этого проекта — дать доступ к технологиям защиты собственных данных.
5 3 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
16 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Слава
Слава
8 месяцев назад

Дмитрий привет!
Еще круче кажется нашел вариант https://github.com/hiddify/Hiddify-Manager
Они там очень хорошо все описывают, даже по созданию домена, я себе поставил очень быстро, сейчас разбираюсь….

Stanner
Stanner
Ответить на  Atlant
8 месяцев назад

Чтобы работал ChatGPT и т.д. — ставят ещё WARP Proxy и через него пускают нужные домены.

Слава
Слава
Ответить на  Atlant
8 месяцев назад

Дмитрий привет, мне тоже не понравилось, 3X-UI попроще будет, тоже систему испортил, буду переустанавливать… я chat GPT не использую, можешь и от сервака зависит? на разных пробовал?

Слава
Слава
Ответить на  Atlant
8 месяцев назад

на чем в итоге остановился на vps? тут автор из прошлой статьи дополнения сделал и ответил на возникающие вопросы, можно по настройкам пост дополнить https://habr.com/ru/articles/770400/

stan5
stan5
6 месяцев назад

Спасибо!немного добавлю для таких, как я (тупых))))

  1. apt update && apt upgrade -y
  2. sudo apt install curl (иначе ошибка bash)

Включение BBR в UbuntuВключение производится добавлением двух параметров ядра в файл /etc/sysctl.conf

sudo nano /etc/sysctl.conf

Необходимо добавить эти два параметра в самый конец файла.

net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr

После чего включить добавленные параметры ядра командой:

sysctl -p

Скорость по speedtest сразу взлетает.
Ну и у меня путь к сертификатам тут-
/root/cert/yourdomen/fullchain.pem
/root/cert/yourdomen/privkey.pem
После этого всё завелось.

AlexiosCol
AlexiosCol
5 месяцев назад

Может быть и глупый вопрос, но никак не получается самому — при установке SSL сертификата через CloudFlare, что делать дальше? То есть куда прописывать эти ключи? Я выпустил их напрямую через 3X-UI в терминале — 16 пункт, все гуд, без ошибок — но главная панель все равно на http://

AlexiosCol
AlexiosCol
Ответить на  AlexiosCol
5 месяцев назад

В итоге получилось разобраться — все дело было в названии:

Certificate = Public Key = /root/cert/domain.com.cer
Key = Private Key = /root/cert/domain.com.key

Это для сертификата, который выпущен через CloudFlare.

артем
артем
1 месяц назад

не работает ограничение по айпи адресам в 3x-ui, как исправить этот момент. Я ставлю ограничение на 1айпи, подключаюсь с двух разных сетей, а трафик все равно идет