VPN сервер по протоколу shadowsocks
В этой статье мы подробнее рассмотрим настройку vpn сервера и клиента по протоколу
после создания VPS к вам на почту придут данные для входа на сервер по протоколу SSH. Для входа нужно будет знать пароль суперпользователя root, а также ip адрес сервера.
Итак, для примера, я имею следующие данные:
логин: root
пароль: 12345678
Мы будет работать с клиентского хоста, который тоже в OS GNU/Linux, допустим пусть это будет дистрибутив. И у нас уже должен быть настроен доступ к серверу по SSH. (Подробнее про настройку подключения по SSH).
Заходим на сервер.
Внимание если у вас успешно настроен вход по ssh, то далее идут команды запускаемые уже на сервере. Так, как мы сразу логинемся под супер-пользователем root, приставка sudo в командах нам не потребуется.
Обновляем сервер:
Устанавливаем пакет Shadowsocks реализация на Си есть в официальных репозиториях Debian. Вы можете установить её с помощью команды:
На этом с установкой, всё, НО если вдруг, по каким либо причинам вы решите устанавливать из исходников, то пожалуйста:
Шаг 1. Установка необходимых пакетов в систему:
Шаг 2. Клонирование репозитория
Далее нужно перейти в этот каталог с исходниками:
Для обновления исходников всех зависимостей выполните команду:
Шаг 3. Сборка пакета из исходников
Для этого, в каталоге с исходниками уже написан скрипт, нам его нужно будет только запустить следующим образом(добавив этому файлу права на выполнение)
и уже для сборки .deb пакета достаточно выполнить:
Шаг 4. Установка
После завершения выполнения команды пакеты будут находится выше текущей папки на уровень. Для их установки надо выполнить:
(статья про установку приложений из deb пакета)
Теперь самое главное в этой процедуре, это настройка нашего shadowsocks
Конфигурационный файл shadowsocks находится здесь:
и его содержимое выглядит вот так:
☯
Terminal:
⌕
≡
✕
root@111.111.111.111:~# cat /etc/shadowsocks-libev/config.json
{
"server":["::1", "111.111.111.111"],
"mode":"tcp_and_udp",
"server_port":8388,
"local_port":1080,
"password":"12345678_na-pRimer_!)",
"timeout":86400,
"method":"chacha20-ietf-poly1305"
}
server - IP адрес, на котором программа будет ожидать соединений, должно соответствовать внешнему IP адресу вашего сервера.
mode - указывает какой протокол соединение использовать - tcp, udp или оба.
server_port - порт сервера, который вы будете использовать для подключения, по умолчанию - 8388.
local_port - порт клиента, к которому будет подключаться браузер по протоколу SOCS5.
password - пароль, который будет использоваться клиентами для подключения.
method - метод шифрования, по умолчанию используется chacha20-ietf-poly1305.
в поле server устанавливаем IP адрес вашего сервера,
Также в поле password, надо прописать пароль, который будет использоваться на клиенте для подключения к этому серверу. Всё остальное можно оставить по умолчанию. После внесения изменений конфигурационный файл может выглядеть вот так:
все остальные поля оставляем как здесь.
Единственно, что ещё стоит проверить это доступность порта, который мы указываем в поле server_port, в нашем случае это:
8388
(как проверить доступность порта и/или открыть его)
После внесения необходимых изменений в конфигурационный файл, для применения настроек, не забываем перезагрузить эту службу.
На этом базовая настройка закончена, можно переходить к подключению. Если вы хотите запустить сервер для отладки, чтобы видеть всё, что происходит, можете остановить systemd службу и запустить его напрямую без systemd:
☯
Terminal:
⌕
≡
✕
root@111.111.111.111:~# systemctl stop shadowsocks-libev root@111.111.111.111:~# /usr/bin/ss-server -c /etc/shadowsocks-libev/config.json 2022-12-30 03:04:32 INFO: UDP relay enabled 2022-12-30 03:04:32 INFO: initializing ciphers... chacha20-ietf-poly1305 2022-12-30 03:04:32 INFO: tcp server listening at [::1]:8388 2022-12-30 03:04:32 INFO: tcp server listening at 111.111.111.111:8388 2022-12-30 03:04:32 INFO: udp server listening at [::1]:8388 2022-12-30 03:04:32 INFO: udp server listening at 111.111.111.111:8388 2022-12-30 03:04:32 INFO: running from root user
Настройка клиента, и настройка браузера для подключения через shadowsocks
Устанавливаем также как и на сервере:
Или из исходников, как пожелаете, шаги те-же самые, что мы уже сделали на сервере.
Аналогично, после установки нужно отредактировать конфигурационный файл, так чтобы он был таким же как и на Вашем сервере. В моём примерном случае это будет:
☯
Terminal:
⌕
≡
✕
user@mx:~
$ cat /etc/shadowsocks-libev/config.json
{
"server":["::1", "111.111.111.111"],
"mode":"tcp_and_udp",
"server_port":8388,
"local_port":1080,
"password":"12345678_na-pRimer_!)",
"timeout":86400,
"method":"chacha20-ietf-poly1305"
}
в поле server ip вашего сервера, в поле password ,пароль который вы указали в этом же конфиге на своём сервере.
После этого можно запустить клиента, командой:
Опция -v здесь означает максимально подробный вывод, а -c - указывает путь к конфигурационному файлу.
☯
Terminal:
⌕
≡
✕
user@mx:~ $ sudo ss-local -v -c /etc/shadowsocks-libev/config.json [sudo] password for user: 2022-12-30 11:07:39 INFO: initializing ciphers... chacha20-ietf-poly1305 2022-12-30 11:07:39 INFO: listening at 127.0.0.1:1080 2022-12-30 11:07:39 INFO: udprelay enabled 2022-12-30 11:07:39 INFO: running from root user
Клиент запущен, но ваш трафик ещё не перенаправляется через тоннель. Для этого надо настроить подключение к прокси в вашем браузере. Клиент ожидает соединений от браузера на порту 1080 (по умолчанию).
Для настройки прокси в браузере Firefox или Waterfox откройте Настройки.
В разделе Основные (General) скролим в самый низ и находим Параметры сети(Network Settings):
Тут нажмите Настроить(settings) и в открывшемся окне введите свой внутренний IP адрес 127.0.0.1 и порт из наших настроек 1080:
Сохраните настройки и полностью перезапустите браузер. И после этого пробуйте открывать сайты.
После этого Firefox будет использовать Shadowsocks для открытия сайтов. Если вы откроете сайт eth0.me, то увидите, что ваш IP адрес соответствует адресу сервера, на котором установлен Shadowsocks.
Обратите внимание, что многие провайдеры блокируют сайты по DNS, так что в настройках своего роутера можно указать DNS Google - 8.8.8.8 или включить в браузере DNS over HTTPS.
Снова сохраните настройки и полностью перезапустите браузер.
-
Создано 24.12.2022 15:37:56
-
Roman Sakhno

Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.