Shadowsocks готовим домашний vpn на расберипай 2022

У нас в Армении очень чистый интернет. Насколько я знаю, понятия блокировка сайтов у нас в стране не существует, в отличии от большанства других стран СНГ. Поэтому я решил создать себе VPN сервер и дать его своим друзьям, чтобы они могли свободно пользоватся интернетом. Есть много разных сервисов для поднятия vpn сервиса, openvpn, wireguard итд, но мне кажется что они в большинстве своём имеют слишком широкий функционал чтобы запускать на встроеных устройствах. Если цель это просто обход блокировок, и шифрация промежуточного трафика то по моему shadowsocks самый лучший вариант.

Самый простой способ поставить шадоусокс на малину это использовать apt-get. Но в нём последний билд shadowsocks был в 2018 году. Поэтому лучше установить самому с гитхаба https://github.com/shadowsocks/shadowsocks-rust/. Кроме того, shadowsocks с тех пор переписывали с питона на си, а теперь и вовсе поддерживается только версия на rust.

Чтобы скачать нужно просто скачать tar архив с релизов билдов и распаковать. В релизах есть много билдов под разные архитектуры и libc. Если используете raspbian, то нужно искать билд с приставкой gnu. В моём случае на raspberry pi b+ 1 подошел билд shadowsocks-v1.15.0-alpha.9.armv7-unknown-linux-gnueabihf.tar.xz. Если распаковать и запустить билд с неподходящей архитектурой то сервер небзапустится и будет жаловатся на бинарник.

wget https://github.com/shadowsocks/shadowsocks-rust/releases/download/v1.15.0-alpha.9/shadowsocks-v1.15.0-alpha.9.armv7-unknown-linux-gnueabihf.tar.xz

tar -xzvf shadowsocks-v1.15.0-alpha.9.armv7-unknown-linux-gnueabihf.tar.xz

Для запуска сервера используется бинарник ssserver. Для настройки можно использовать флаги запуска, но лучше использовать конфиг https://shadowsocks.org/guide/configs.html

Я использовал такой конфиг. Далее нужно просто запустить сервер: ./ssserver и все должно работать:


На этом этапе VPN уже должен быть готов, если вы правильно настроили port forwarding на роутере, или uPnP. В моём случае я настроил uPnP через upnpc который можно установить через apt-get. В этом гайде рассматривается полная настройка uPnP.

Так-же нужно настроить systemd, чтобы он автоматически запускал ssserver при старте системы и перезапускал процесс если что-то пошло нетак. Для этого создаём конфиг /etc/systemd/system/shadowsocks.service 

[Unit]
Description=Shadowsocks
After=syslog.target network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=simple
ExecStart=/home/pi/ssserver --config /home/pi/config.json

[Install]
WantedBy=multi-user.target

Далее включаем сервис в список systemd: sudo service shadowsocks enable и стартуем sudo service shadowsocks start.


Комментарии

Популярные сообщения из этого блога

DOS атака при помощи Python

Ведем телеграм канал через питон

Django migrations не видит изменения моделей