VPN за 15 минут на собственном сервере

VPN за 15 минут на собственном сервере

Павел Мрыкин

Введение

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

Да, стоит оговориться, что речь пойдёт о Shadowsocks, и если с помощью VPN вы хотите добиться анонимности, то эта технология вам не подходит, подробнее можно прочитать здесь.

Если вы не захотите всё это настраивать - всегда можете воспользоваться ботом, который выдаст вам ключ для подключения к VPN.

Что вам пригодится

Если же вы хотите подключиться, например к chatGPT или другим сервисам, которые закрыли доступ из РФ - вам понадобится:

1. Купить виртуальный сервер, я выбрал pq.hosting, т.к. там без проблем можно оплатить всё за рубли.

2. Какой покупать? Я выбрал с минимальными характеристиками, операционной системой Ubuntu 20.04

2. Приложение Termius, для подключения к серверу.

Версия для MAC OS:
https://termius.com/

Версия для Windows:
https://termius.com/free-ssh-client-for-windows

3. Базовые навыки работы с консолью (SSH), да, на большинстве серверов уже есть встроенная услуга с установленным VPN, но сегодня не про него.

4. Клиент для использования на устройствах.

Для новичков рекомендую решения от Outline, мультиплатформенное, простое, практически с одной кнопкой:
https://getoutline.org/ru/get-started/

Кому нужно больше настроек:
1. Для Desktop: qv2ray - позволяет настроить исключения, чтобы, например Яндекс видел ваше реальное местоположение для доставки.

2. Shadowrocket для iOS - также позволяет достаточно гибко настраивать и в том числе делиться подключенными серверами.

Покупка Виртуального сервера (VPS/VDS)

  1. Переходим по ссылке на сайт Хостинг-провайдера и регистрируемся.
  2. После того, как попали в личный кабинет, выбираем раздел "Товары и услуги - Виртуальные серверы" - нажимаем на кнопку "Заказать"

3. На следующем шаге выбираем Страну, где должен быть сервер, срок оплаты и характеристики, достаточно самых минимальных.

4. Я при установке рекомендую выбирать следующие параметры предустановленного ПО:

5. После выбора всех необходимых характеристик - жмём кнопку "В корзину", пусть вас не смущает цена в €, она сконвертируется в рубли.

6. На странице "Корзина" жмём "Оплатить"

7. В качестве способа оплаты выбираем ЮMoney

и дальше выбираем удобный способ оплаты и ждём, когда в списке серверов напротив нашего нового появится надпись "Активен".

Подключение к серверу

После оформления заявки на сервер и его оплаты - вам на почту придёт письмо с данными для подключения к нему:

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

Если письмо на почту не пришло, но сервер уже "Активен", то можно ускорить процесс и подсмотреть данные в панели управления. Нажимаем на 3 точки, справа от нашего сервера и в появившемся списке выбираем "Инструкция", после чего видим данные с доступами точно в таком же виде, как и выше.

  1. Надеюсь, вы уже установили Termius, чтобы подключиться к серверу. Если нет - скачиваем, открываем и добавляем новый сервер с данными из письма выше.
Добавляем новый сервер (host)
По очереди заполняем поля данными из письма. Поле Label заполняем любым понятным для нас значением. Галка вверху показывает, что настройки сохранены.

2. Дважды кликаем по получившемуся подключению и попадаем в консоль сервера.


Настройка VPN

Принцип работы с консолью:

  • Каждую команду копируем отдельно
  • Вставляем в терминал (чёрное окно с зелёными буквами)
  • Нажимаем Enter на клавиатуре
  • Если просят ввести Y/n для подтверждения - вводим y и нажимаем Enter
  • Дожидаемся, когда буквы перестанут бежать по экрану и снова появится строка с вашим логином вида root@vm234242:~# (по умолчанию примерно так)

1. Установка текстового редактора

sudo apt install nano

2. Установка Shadowsocks (VPN)

sudo apt install shadowsocks-libev

3. Устанавливаем firewall (пригодится для открытия портов, если окажутся закрытыми)

sudo apt install ufw

4. Устанавливаем Curl (пригодится для генерации ссылки)

apt install curl


Конфигурация VPN

Для того, чтобы подключиться к вашему серверу, необходимо задать его настройки, выбранная мной версия позволяет одновременно создать несколько пользователей и управлять ими.

Ниже приведу пример настройки подключения для базовой конфигурации и одного дополнительного пользователя.

  1. Вводите команду для редактирования конфигурации по умолчанию
sudo nano /etc/shadowsocks-libev/config.json

2. Вы попадаете в файл конфигурации, необходимо удалить весь текст, который будет внутри. Воспользуйтесь стрелками на клавиатуре и кнопками delete или backspace.

3. Прежде чем копировать код ниже, вставьте его в блокнот/заметки и замените адрес сервера и пароль на ваши данные, после того, как подставите данные - вставляйте из в консоль

{
"server": "ВАШ_АДРЕС_СЕРВЕРА_ИЗ_ПИСЬМА",
"mode":"tcp_and_udp",
"server_port":7000,
"local_port":1080,
"password":"ПРИДУМАЙТЕ_ПАРОЛЬ",
"timeout":60,
"method":"chacha20-ietf-poly1305"
}

СОХРАНИТЕ АДРЕС ПОРТА И ПАРОЛЬ, они понадобятся для файла подключения.

4. У вас получится примерно следующее

5. Для сохранения настройки нажмите CTRL+X, после чего введите Y для согласия с внесёнными изменениями

Добавляем второго пользователя

Если для вас это не актуально - переходите к следующей части

1. Настройка второго пользователя будет отличаться именем файла, номером порта и паролем.

2. Создаём новый файл конфигурации и открываем его следующей командой:

sudo touch & nano /etc/shadowsocks-libev/user1.json

Имя вместо user1 может быть другое, но обязательно на английском.

3. В уже имеющемся блокноте меняем порт на одну цифру и задаём другой пароль.

Ещё раз: СОХРАНИТЕ АДРЕС ПОРТА И ПАРОЛЬ, в соответствии с пользователем для которого вы его создали.

Активируем сервер

  1. Открываем настройки командой
sudo nano /lib/systemd/system/shadowsocks-libev-server@.service

2. Удаляем всё, что было внутри и вставляем текст ниже:

[Unit]
Description=Shadowsocks-Libev Custom Server Service for %I
Documentation=man:ss-server(1)
After=network-online.target
[Service]
Type=simple
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
AmbientCapabilities=CAP_NET_BIND_SERVICE
DynamicUser=true
ExecStart=/usr/bin/ss-server -c /etc/shadowsocks-libev/%i.json
[Install]
WantedBy=multi-user.target

Активируем пользователей

Команды

Для профиля по умолчанию

sudo systemctl enable shadowsocks-libev-server@config.service

Для дополнительного профиля, если меняли имя выше в файле конфигурации - замените user1 на соответствующее имя.

sudo systemctl enable shadowsocks-libev-server@user1.service

Если кого-то из пользователей пользователей потребуется остановить, то сделать это можно будет командой:

sudo systemctl stop shadowsocks-libev-server@config.service

Проверка активности сервера

Для каждого пользователя используем свою команду, вместо config подставляем другого пользователя, если необходимо проверить его статус.

sudo systemctl restart shadowsocks-libev-server@config.service

Открытие портов

Пункт иногда не обязательный, но бывает, что если его пропустить - ничего не заработает.

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

sudo ufw allow 22
sudo ufw allow 7000
sudo ufw allow 7001
sudo ufw enable

Подключение к серверу

Для генерации ссылки используйте команду:

python3 <(curl -s https://raw.githubusercontent.com/amayatsky/shadowsocks-url-generator/master/ss-genuri.py) \
-c /etc/shadowsocks-libev/config.json

В результате вы получите ссылку вида:

Копируйте её и переходите к этапу "Подключение к серверу"

Если консоль выдаст ошибку, попробуйте альтернативную команду:

python <(curl -s https://raw.githubusercontent.com/amayatsky/shadowsocks-url-generator/master/ss-genuri.py) \
-c /etc/shadowsocks-libev/config.json

Если и в этом случае получили ошибку - используйте способ ниже.

Альтернативный способ:

Для генерации ссылки можно использовать веб-сервис:

https://zhiyuan-l.github.io/SS-Config-Generator/

Вводим в поля данные из файла конфигурации и нажимаем кнопку «Generate»:

Подключение к серверу

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

Нажимаем "Добавить сервер", а в списке серверов нажимаем "Подключиться".


Проверка работы

Переходим на сайт 2ip.ru и проверяем, что IP совпадает с IP вашего сервера

Я забыл ключ, не работает, что делать?

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

sudo nano /etc/shadowsocks-libev/config.json

Если забыли название файла, то можно использовать команду:

ls /etc/shadowsocks-libev/

Она отобразит список файлов, которые вы создали в соответствующей папке

Если перестал работать VPN, используйте команды для его перезапуска, убедитесь, что используете корректное название файла:

sudo systemctl restart shadowsocks-libev-server@config.service

Заключение

Инструкция получилась большой, но по факту вся операция занимает не больше 15-30 минут. Когда же сервер уже куплен и нужно только установить пароли, то все настройки занимают не больше 5 минут.

Не хотите всё это настраивать, но хотите получить доступ к VPN на выделенном сервере:

Воспользуйтесь ботом для получения персонального ключа: @GOTOVpn_bot

Вопросы - t.me/mrykin

Report Page