Yet another SIP003 plugin for shadowsocks, based on v2ray
Shadowsocks over websocket (HTTPS)
Ubuntu 18.04 пакеты в репозитарии
# apt update
# apt upgrade
# apt install mc
# adduser user
# usermod -aG sudo user
# su user
$ cd ~
$ mkdir ~/.ssh
$ cd ~/.ssh
$ ssh-keygen -t rsa
Скачать и использовать для входа /home/user/.ssh/id_rsa
$ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
$ rm ~/.ssh/id_rsa.pub
$ rm ~/.ssh/id_rsa
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys
$ exit
# nano /etc/ssh/sshd_config
Проверить:
PasswordAuthentication no
.....
PubkeyAuthentication yes
ChallengeResponseAuthentication no
Сохранить.
$ sudo systemctl reload sshd
После проверки входа и sudo
Отключть вход root по ssh
$ sudo nano /etc/ssh/sshd_config
Исправить:
PermitRootLogin no
Сохранить.
$ sudo systemctl reload sshd
# отключим ipv6
$ sudo /bin/su -c "echo 'net.ipv6.conf.all.disable_ipv6 = 1' >> /etc/sysctl.conf"
$ sudo /bin/su -c "echo 'net.ipv6.conf.default.disable_ipv6 = 1' >> /etc/sysctl.conf"
$ sudo /bin/su -c "echo 'net.ipv6.conf.lo.disable_ipv6 = 1' >> /etc/sysctl.conf"
#sudo /bin/su -c "echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf"
$ sudo sysctl -p
Getting started with acme.sh Let's Encrypt SSL client
Установка бесплатного ssl-сертификата Let’s Encrypt
Должен быть домен example.com
На 80 порту работать web сервер
$ sudo apt install nginx
$ mkdir /var/www/example.com -p
$ sudo nano /etc/nginx/conf.d/example.com.conf
$ sudo systemctl reload nginx
$ sudo -i
# curl https://get.acme.sh | sh
Делаем сертификаты:
# /root/.acme.sh/acme.sh --issue -d example.com -w /var/www/example.com
[Mon Jun 17 12:28:42 CEST 2019] Your cert is in /root/.acme.sh/example.com/example.com.cer
[Mon Jun 17 12:28:42 CEST 2019] Your cert key is in /root/.acme.sh/example.co/example.com.key
[Mon Jun 17 12:28:42 CEST 2019] The intermediate CA cert is in /root/.acme.sh/example.co/ca.cer
[Mon Jun 17 12:28:42 CEST 2019] And the full chain certs is there: /root/.acme.sh/example.com/fullchain.cer
Установка shadowsocks-libev
$ sudo apt install shadowsocks-libev
$ wget https://github.com/shadowsocks/v2ray-plugin/releases/download/v1.1.0/v2ray-plugin-linux-amd64-v1.1.0.tar.gz
$ tar -xf v2ray-plugin-linux-amd64-v1.1.0.tar.gz
$ sudo mv v2ray-plugin_linux_amd64 /etc/shadowsocks-libev/v2ray-plugin
$ sudo chmod +x /etc/shadowsocks-libev/v2ray-plugin
#$ sudo setcap 'cap_net_bind_service=+eip' /etc/shadowsocks-libev/v2ray-plugin
$ sudo setcap 'cap_net_bind_service=+ep' /etc/shadowsocks-libev/v2ray-plugin
$ sudo setcap 'cap_net_bind_service=+ep' /usr/bin/ss-server
Проверяем:
$ sudo systemctl stop shadowsocks-libev.service
$ sudo nano /etc/shadowsocks-libev/config.json
Правим службу
Установка на клиенте Ubuntu 18.04
shadowsocks-libev на клиенте под линуксом сразу запустить не смог, собирал несколько раз, пока не выяснил, что есть фича - серверный порт должен совпадать с локальным !!!
$ sudo apt install shadowsocks-libev
=========================================================================
для Ubuntu 16.04 заменяем sudo apt install shadowsocks-libev на :
$ sudo apt update && sudo apt upgrade -y && sudo apt install software-properties-common nano git -y && sudo add-apt-repository ppa:max-c-lv/shadowsocks-libev && sudo apt update && sudo apt install shadowsocks-libev -y
=========================================================================
$ wget https://github.com/shadowsocks/v2ray-plugin/releases/download/v1.1.0/v2ray-plugin-linux-amd64-v1.1.0.tar.gz
$ tar -xf v2ray-plugin-linux-amd64-v1.1.0.tar.gz
$ sudo mv v2ray-plugin_linux_amd64 /etc/shadowsocks-libev/v2ray-plugin
$ sudo chmod +x /etc/shadowsocks-libev/v2ray-plugin
$ sudo setcap 'cap_net_bind_service=+ep' /etc/shadowsocks-libev/v2ray-plugin
#$ sudo setcap 'cap_net_bind_service=+ep' /usr/bin/ss-server
$ sudo setcap 'cap_net_bind_service=+ep' /usr/bin/ss-local
Обратить внимание на Ubuntu серверный порт должен совпадать с локальным портом!!!
$ sudo nano /etc/shadowsocks-libev/config.json
Обратить внимание от сервера отличается отсутствием:
"plugin_opts":"server",
{
"server":"
"server_port":443,
"local_port":443,
"password":"
"timeout":300,
"method":"aes-256-cfb",
"fast_open":true,
"plugin":"/etc/shadowsocks-libev/v2ray-plugin",
"nameserver":"1.1.1.1",
"reuse_port": true
}
Сохранить.
$ sudo systemctl stop shadowsocks-libev.service && sudo systemctl disable shadowsocks-libev.service
Самое время проверить, или если захочется запускать вручную :
$ ss-local -s "
Сложило впечатление что на Ubuntu 20.04 конфиг не считывается
На Ubuntu 20.04 заработало только так:
ss-local -s "
Делаем сервис для запуска:
$ sudo nano /etc/systemd/system/ss-local.service
[Unit]
Description=Daemon to start Shadowsocks Client
Wants=network-online.target
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/ss-local -c /etc/shadowsocks-libev/config.json
# Ubuntu 20.04 раскомментировать:
#ExecStart=/usr/bin/ss-local -s "
[Install]
WantedBy=multi-user.target
Сохранить.
$ sudo systemctl daemon-reload
$ sudo systemctl enable ss-local.service
$ sudo systemctl restart ss-local.service
$ sudo systemctl status ss-local.service
$ sudo journalctl --unit=ss-local.service
Shadowsocks over websocket (HTTPS)
Ubuntu 18.04 пакеты в репозитарии
# apt update
# apt upgrade
# apt install mc
# adduser user
# usermod -aG sudo user
# su user
$ cd ~
$ mkdir ~/.ssh
$ cd ~/.ssh
$ ssh-keygen -t rsa
Скачать и использовать для входа /home/user/.ssh/id_rsa
$ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
$ rm ~/.ssh/id_rsa.pub
$ rm ~/.ssh/id_rsa
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys
$ exit
# nano /etc/ssh/sshd_config
Проверить:
PasswordAuthentication no
.....
PubkeyAuthentication yes
ChallengeResponseAuthentication no
Сохранить.
$ sudo systemctl reload sshd
После проверки входа и sudo
Отключть вход root по ssh
$ sudo nano /etc/ssh/sshd_config
Исправить:
PermitRootLogin no
Сохранить.
$ sudo systemctl reload sshd
# отключим ipv6
$ sudo /bin/su -c "echo 'net.ipv6.conf.all.disable_ipv6 = 1' >> /etc/sysctl.conf"
$ sudo /bin/su -c "echo 'net.ipv6.conf.default.disable_ipv6 = 1' >> /etc/sysctl.conf"
$ sudo /bin/su -c "echo 'net.ipv6.conf.lo.disable_ipv6 = 1' >> /etc/sysctl.conf"
#sudo /bin/su -c "echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf"
$ sudo sysctl -p
Getting started with acme.sh Let's Encrypt SSL client
Установка бесплатного ssl-сертификата Let’s Encrypt
Должен быть домен example.com
На 80 порту работать web сервер
$ sudo apt install nginx
$ mkdir /var/www/example.com -p
$ sudo nano /etc/nginx/conf.d/example.com.conf
server { listen 80; server_name example.com; root /var/www/example.com/; location ~ /.well-known/acme-challenge { allow all; } }
Сохранить.
$ sudo systemctl reload nginx
$ sudo -i
# curl https://get.acme.sh | sh
Делаем сертификаты:
# /root/.acme.sh/acme.sh --issue -d example.com -w /var/www/example.com
[Mon Jun 17 12:28:42 CEST 2019] Your cert is in /root/.acme.sh/example.com/example.com.cer
[Mon Jun 17 12:28:42 CEST 2019] Your cert key is in /root/.acme.sh/example.co/example.com.key
[Mon Jun 17 12:28:42 CEST 2019] The intermediate CA cert is in /root/.acme.sh/example.co/ca.cer
[Mon Jun 17 12:28:42 CEST 2019] And the full chain certs is there: /root/.acme.sh/example.com/fullchain.cer
Установка shadowsocks-libev
$ sudo apt install shadowsocks-libev
$ wget https://github.com/shadowsocks/v2ray-plugin/releases/download/v1.1.0/v2ray-plugin-linux-amd64-v1.1.0.tar.gz
$ tar -xf v2ray-plugin-linux-amd64-v1.1.0.tar.gz
$ sudo mv v2ray-plugin_linux_amd64 /etc/shadowsocks-libev/v2ray-plugin
$ sudo chmod +x /etc/shadowsocks-libev/v2ray-plugin
#$ sudo setcap 'cap_net_bind_service=+eip' /etc/shadowsocks-libev/v2ray-plugin
$ sudo setcap 'cap_net_bind_service=+ep' /etc/shadowsocks-libev/v2ray-plugin
$ sudo setcap 'cap_net_bind_service=+ep' /usr/bin/ss-server
Проверяем:
$ sudo systemctl stop shadowsocks-libev.service
$ sudo nano /etc/shadowsocks-libev/config.json
{
"server":"0.0.0.0",
"server_port":443,
"local_port":1080,
"password":"password",
"timeout":300,
"method":"aes-256-cfb",
"fast_open":true,
"plugin":"/etc/shadowsocks-libev/v2ray-plugin",
"plugin_opts":"server;tls;host=
example.com",
"nameserver": "1.1.1.1",
"reuse_port": true
}
Сохранить.
Впечатление такое что при запуске shadowsocks-libev.service
не видит
tls
"plugin_opts":"server;tls;host=zaz01.info",
Поэтому запускать будем (обязательно попробовать):
$ sudo -i
# cd /etc/shadowsocks-libev
# ss-server -c config.json -p 443 --plugin v2ray-plugin --plugin-opts "server;tls;host=
example.com;cert=/root/.acme.sh/
example.com/fullchain.cer;key=/root/.acme.sh/
example.com/
example.com.key
;loglevel none
"
Далее копируем сертификаты
$ sudo cp
/root/.acme.sh/
example.com/fullchain.cer
/etc/shadowsocks-libev/
$ sudo cp
/root/.acme.sh/
example.com/
example.com.key
/etc/shadowsocks-libev/
Правим службу
shadowsocks-libev.service
$ sudo nano /lib/systemd/system/
shadowsocks-libev.service
Правим
ExecStart
:
# This file is part of shadowsocks-libev.
#
# Shadowsocks-libev is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This file is default for Debian packaging. See also
# /etc/default/shadowsocks-libev for environment variables.
[Unit]
Description=Shadowsocks-libev Default Server Service
Documentation=man:shadowsocks-libev(8)
After=network.target
[Service]
Type=simple
EnvironmentFile=/etc/default/shadowsocks-libev
User=nobody
Group=nogroup
LimitNOFILE=32768
#ExecStart=/usr/bin/ss-server -c $CONFFILE $DAEMON_ARGS
ExecStart=/usr/bin/ss-server -c /etc/shadowsocks-libev/config.json -p 443 --plugin /etc/shadowsocks-libev/v2ray-plugin --plugin-opts "server;tls;host=zaz01.info;cert=/etc/shadowsocks-libev/fullchain.cer;key=/etc/shadowsocks-libev/
example.com
.key;loglevel none"
[Install]
WantedBy=multi-user.target
Сохранить.
$ sudo systemctl daemon-reload
$ sudo systemctl restart shadowsocks-libev.service
$ sudo systemctl status shadowsocks-libev.service
Скачаем клиент:
shadowsocks-windows
Скачаем плагин:
v2ray-plugin-windows-386-v1.1.0.tar.gz
Переименуем и положим в папку Shadowsocks-4.1.6
Настроим:
Проверка скорости интернета при канале 50 Mbps :Установка на клиенте Ubuntu 18.04
shadowsocks-libev на клиенте под линуксом сразу запустить не смог, собирал несколько раз, пока не выяснил, что есть фича - серверный порт должен совпадать с локальным !!!
$ sudo apt install shadowsocks-libev
=========================================================================
для Ubuntu 16.04 заменяем sudo apt install shadowsocks-libev на :
$ sudo apt update && sudo apt upgrade -y && sudo apt install software-properties-common nano git -y && sudo add-apt-repository ppa:max-c-lv/shadowsocks-libev && sudo apt update && sudo apt install shadowsocks-libev -y
=========================================================================
$ wget https://github.com/shadowsocks/v2ray-plugin/releases/download/v1.1.0/v2ray-plugin-linux-amd64-v1.1.0.tar.gz
$ tar -xf v2ray-plugin-linux-amd64-v1.1.0.tar.gz
$ sudo mv v2ray-plugin_linux_amd64 /etc/shadowsocks-libev/v2ray-plugin
$ sudo chmod +x /etc/shadowsocks-libev/v2ray-plugin
$ sudo setcap 'cap_net_bind_service=+ep' /etc/shadowsocks-libev/v2ray-plugin
#$ sudo setcap 'cap_net_bind_service=+ep' /usr/bin/ss-server
$ sudo setcap 'cap_net_bind_service=+ep' /usr/bin/ss-local
Обратить внимание на Ubuntu серверный порт должен совпадать с локальным портом!!!
$ sudo nano /etc/shadowsocks-libev/config.json
Обратить внимание от сервера отличается отсутствием:
"plugin_opts":"server",
{
"server":"
example.com
","server_port":443,
"local_port":443,
"password":"
password
","timeout":300,
"method":"aes-256-cfb",
"fast_open":true,
"plugin":"/etc/shadowsocks-libev/v2ray-plugin",
"plugin_opts":"tls;host=
example.com",
"nameserver":"1.1.1.1",
"reuse_port": true
}
Сохранить.
$ sudo systemctl stop shadowsocks-libev.service && sudo systemctl disable shadowsocks-libev.service
Самое время проверить, или если захочется запускать вручную :
$ ss-local -s "
example.com
" -p 443 -l 443 -k "password
" -m "aes-256-cfb" --plugin "/etc/shadowsocks-libev/v2ray-plugin" -vСложило впечатление что на Ubuntu 20.04 конфиг не считывается
ss-local -c config.json
На Ubuntu 20.04 заработало только так:
ss-local -s "
example.com
" -p 443 -l 443 -k "password
" -m "aes-256-cfb" --plugin "/etc/shadowsocks-libev/v2ray-plugin" --plugin-opts "tls;host=example.com
" -vДелаем сервис для запуска:
$ sudo nano /etc/systemd/system/ss-local.service
[Unit]
Description=Daemon to start Shadowsocks Client
Wants=network-online.target
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/ss-local -c /etc/shadowsocks-libev/config.json
# Ubuntu 20.04 раскомментировать:
#ExecStart=/usr/bin/ss-local -s "
example.com
" -p 443 -l 443 -k "password
" -m "aes-256-cfb" --plugin "/etc/shadowsocks-libev/v2ray-plugin" --plugin-opts "tls;host=example.com
" [Install]
WantedBy=multi-user.target
Сохранить.
$ sudo systemctl daemon-reload
$ sudo systemctl enable ss-local.service
$ sudo systemctl restart ss-local.service
$ sudo systemctl status ss-local.service
$ sudo journalctl --unit=ss-local.service
Комментариев нет:
Отправить комментарий