вторник, 28 апреля 2020 г.

Ubuntu 20.04 shadowsocks over websocket (HTTPS) use v2ray-plugin client

Установка на клиенте Ubuntu 18.04

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=+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 серверный порт должен совпадать с локальным портом!!!

Сложило впечатление что на Ubuntu 20.04 конфиг не считывается
ss-local -c config.json
 
$ 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
    "mode":"tcp_and_udp"
}

Сохранить.

$ 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

Так не заработало, работало в 18.04

 На 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

1 комментарий:

  1. привет. пробовал собрать shadowsocks v2ray nginx tls websocket в одном флаконе?

    ОтветитьУдалить