Привет фейслесс.
В этой статье мы рассмотрим 3 способа развернуть свой ВПН. 1 очень простой и полностью бесплатный с ограничениями — Shadowsocks. 2-й и 3-й платные, ограничения зависят от бюджета — OpenVPN и Shadowsocks.
ОЧЕНЬ ВАЖНО!
С недавнего времени Heroku больше не поддерживает бесплатные проекты.
Альтернативы: (автором этого текста сервисы ниже не тестировались)
Содержание
Что такое Shadowsocks?
Это клиент с открытым исходным кодом, сделанный и имеющий широкое распространение в Китае, для обхода великого Китайского фаервола. Существует ПО как для клиента, так и для сервера.
Как он работает?
Клиент притворяется прокси сервером, получает входящие соединения и шифрует их, передаёт на сервер и там выпускает в интернет.
Общие характеристики
- Все данные, которые проходят через клиент и сервер зашифрованы.
- Скорость работы. По сравнению с SSH туннелем, который работает по схожему принципу, shadowsocks имеет большую пропускную способность.
- Алгоритм шифрования можно выбрать.
- Возможность настроить доступ на уровне отдельных программ, сайтов.
- OpenVPN, Tor, SSH довольно просто определяются китайским фаерволом. Shadowsocks – нет. Даже если вашему провайдеру захочется троттлить соединение к прокси, есть возможность прикрутить обфускацию соединения. Плагин маскирует прокси-трафик под HTTPS или TLS/SSL.
- Удобные клиенты для любых устройств. Можно забыть о ненадежных ВПН мобильных устройств, скачиваешь клиент и подключаешься к собственному серверу.
- Чем лучше шифрование, тем более он требователен, особо заметно на слабых, старых телефонах и ПК.
Он подойдёт для всего, как и обычный впн. Но что-то не законное лучше не делать как и через обычный впн, хостер может слить все данные. Для этого лучше юзать хостеров стран третьего мира, но даже там могут возникнуть проблемы.
1 Способ. Shadowsocks + Heroku.
Heroku предоставляет бесплатный хостинг, этим мы и будем пользоваться. Но разумеется существуют ограничения.
- Временная квота составляет 550 часов в месяц или же ~22 дня непрерывной работы.
- Сервер уходит в спящий режим после 30 минут отсутствия запросов к нему. С одной стороны это доставляет неудобства в виде задержек ответа до полминуты после перерыва в активности. С другой стороны, это экономит отведённую временную квоту.
- Квота на передачу данных равна 2ТБ в месяц. То есть в случае с прокси это даёт 1ТБ трафика в месяц.
Регистрируем аккаунт на Heroku. После регистрации подтверждаем Email, и входим в аккаунт, если не вошли. Далее нажимаем здесь. У вас откроется страница создания приложения на Heroku.
Придумываем одинаковое название для — «app-name» и «AppName».
ENCRYPT — Алгоритм шифрования, чача один из лучших.
PASSWORD — Придумываем сложный пароль.
QR_Path — Лучше сделать сложный и непонятный URL, при переходе будет отображаться QR код для подключения к серверу.
Как всё заполнили, нажимаем — Deploy app. Ждём окончания…
Далее открываем наше приложение, и в конце URL пишем то что заполняли в QR-Path. Если что-то забыли, или хотите изменить — Settings > Config Vars > Reveal Config Vars.
*Как подключиться к серверу Shadowsocks?
2 способ. Shadowsocks + VDS\VPS.
Что понадобится?
Собственно сам арендуемый сервер.
putty – клиент для различных протоколов удалённого доступа, включая SSH, Telnet, rlogin. Будем с помощью него манипулировать сервером.
Можно юзать vdsin’у, (скидка 10%) там нету заполнения данных документов, только email, пароль, и данные оплаты. Оплата там ежедневная.
Устанавливаем ubuntu.
Запускаем putty, вводим ip сервера, нажимаем соединиться
В полях:
login as:
как правило – root
[email protected]'s:
password: пароль от удаленного доступа, у разных хостеров он выдаётся по разному, но обычно, данные приходят на почту, так же они должны быть в разделах “Доступ”, “Подключение”, или как-то так в админке.
*Вставлять в putty shift+insert
Установка
Обновляем репозитории:sudo apt update && apt upgrade -y
Устанавливаем snapd:sudo apt install -y snapd
Делаем ребут сервера:sudo reboot
Устанавливаем shadowsocks (на C, быстрота и вес):sudo snap install shadowsocks-libev
Создаём директорию для конфига:sudo mkdir -p /var/snap/shadowsocks-libev/common/etc/shadowsocks-libev
Создаём конфиг:sudo touch /var/snap/shadowsocks-libev/common/etc/shadowsocks-libev/config.json
Открываем кфг в nano:sudo nano /var/snap/shadowsocks-libev/common/etc/shadowsocks-libev/config.json
Вставляем туда код:
{
"server":"ip",
"server_port":443,
"local_port":1080,
"password":"pass",
"timeout":20,
"method":"chacha20-ietf-poly1305",
"fast_open":true,
"nameserver":"1.1.1.1",
"mode":"tcp_and_udp"
}
– ip – ip вашего сервера
– port – любой, можно поставить 443
– local_port – не менять
– pass – придумать пароль, будет использоваться для авторизации в клиенте shadowsocks
– timeout – оставить 20
– method – метод шифрования трафика, чем мощнее метод тем требовательней, клиент. Рекомендую оставить указаный метод. Если будет много есть, или быстро тратить батарейку на телефоне, то можно поставить – aes-256-gcm
– fast_open снижает пинг, если проблемы, стоит отключить его – false вместо true
– nameserver – днс, если оставить пустым, будет дефолтный днс хостера, а так там стоит днс от CloudFlare то есть 1.1.1.1, то же рекомендую оставить
– mode – tcp/udp трафика или обоих, если в сети есть специфические требования, возможно потребуется установить tcp_only, а так tcp_and_udp
*ctrl+o – сохранить, ctrl+x – выйти
Далее делаем автозапуск:
sudo touch /etc/systemd/system/[email protected]
sudo nano /etc/systemd/system/[email protected]
В открывшимся nano вставляем код:
[Unit]
Description=Shadowsocks-Libev Custom Server Service for %I
Documentation=man:ss-server(1)
After=network-online.target
[Service]
Type=simple
ExecStart=/usr/bin/snap run shadowsocks-libev.ss-server -c /var/snap/shadowsocks-libev/common/etc/shadowsocks-libev/%i.json
[Install]
WantedBy=multi-user.target
Запускаем сервер:sudo systemctl enable --now [email protected]
Проверяем запустился ли сервер:sudo systemctl status [email protected]
Опционально: Редактируем настройки ядра, для максимальной производительности
Открываем настройки ядра:
sudo nano /etc/sysctl.conf
В конце файла вставляем код:
fs.file-max = 51200
net.core.netdev_max_backlog = 250000
net.core.somaxconn = 4096
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.ip_local_port_range = 10000 65000
net.core.netdev_max_backlog = 4096
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_mtu_probing = 1
net.core.rmem_max = 67108864
net.core.wmem_max = 67108864
net.ipv4.tcp_mem = 25600 51200 102400
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864
ctrl+o, ctrl+x
Применяем настройки:
sudo sysctl -p
Прикручиваем v2ray
v2ray уже есть в Shadowsocks + Heroku. Это только если вы устанавливаете shadowsocks на vps\vds. Следующие содержимое рассчитано, на то что вы устанавливали сервер по данному гайду. Если же нет, будьте внимательны к путям.
Скачиваем плагин:
wget https://github.com/shadowsocks/v2ray-plugin/releases/download/v1.3.1/v2ray-plugin-linux-amd64-v1.3.1.tar.gz
Смотрите актуальную версию плагина тут. На момент написания статьи версия 1.3.1.
Разархивируем:
tar -xf filename.tar.gz
Перемещаем и переименовываем:
mv v2ray-plugin_linux_amd64 /var/snap/shadowsocks-libev/common/etc/shadowsocks-libev/v2ray-plugin
Даём права:chmod +x /var/snap/shadowsocks-libev/common/etc/shadowsocks-libev/v2ray-plugin
setcap cap_net_bind_service=+ep /var/snap/shadowsocks-libev/common/etc/shadowsocks-libev/v2ray-plugin
Редактируем конфиг:nano /var/snap/shadowsocks-libev/common/etc/shadowsocks-libev/config.json
В конце вставляем:"plugin":"/var/snap/shadowsocks-libev/common/etc/shadowsocks-libev/v2ray-plugin"
Редактируем конфиг запуска ss-сервера:sudo nano /etc/systemd/system/[email protected]
Вставляем туда код:
[Unit]
Description=Shadowsocks-Libev Custom Server Service for %I
Documentation=man:ss-server(1)
After=network-online.target
[Service]
Type=simple
ExecStart=/usr/bin/snap run shadowsocks-libev.ss-server --plugin /var/snap/shadowsocks-libev/common/etc/shadowsocks-libev/v2ray-plugin >
[Install]
WantedBy=multi-user.target
Перезагружаем ss-сервер (выключение сервера):sudo systemctl stop [email protected] && sudo systemctl disable --now [email protected]
Запуск ss-сервера:sudo systemctl enable --now [email protected]
Проверка рабоспособности ss-сервера:sudo systemctl status [email protected]
3 способ. OpenVPN + vps\vds.
По моему мнению, OpenVPN будет хуже shadowsocks, поэтому мне лень что-то писать, смотрим видео.
Как подключиться к серверу Shadowsocks?
Качаем клиент Shadowsocks.
Кидаем папку в удобное место. Установки нет, это portable версия, при запуске создаются конфиг файлы.
ip – адрес – ip сервера
Порт – как в конфиге
Пароль – как в конфиге
Шифрование – это метод, как в конфиге
Таймаут – как в конфиге, 20
*Плагин – если устанавливали, указываем v2ray.
Больше ничего не трогаем.
Как подключиться к ВПН?
ПКМ по значку shadowsocks на панели задач в трее, там “Системный прокси-сервер” – “Для всей системы”.
Так же выбрать сервер, в одноимённой вкладки.
“Автозагрузка” – если при запуске ПК нет интернета, значит shadowsocks не запустился с системой. Дополнительные меры предосторожности. Если отвалится что-то на пути – то интернет отключится во всей системе.
Как подключить другие устройства?
ПКМ по значку в трее, “Серверы”, “Поделиться конфигурацией сервера”, появится qrcode, и снизу адрес, нужно либо отсканировать код, либо импортировать адрес ниже.
На этом пожалуй всё.