воскресенье, 5 мая 2019 г.

Connect to OpenVPN over Shadowsocks

Connect to OpenVPN over Shadowsocks
How to tunnel OpenVPN over Shadowsocks
Как легко повысить производительность сети Ubuntu 16.04 / 17.10 с помощью TCP BBR
Как настроить сервер FAST Shadowsocks
Как настроить прокси-сервер Shadowsocks-libev в Ubuntu 16.04 / 17.10
ss+v2ray with tls behind nginx over cf


Стенд

Для Ubuntu 16.04:

$ 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 nano /etc/shadowsocks-libev/config.json

{
    "server":"XXX.XXX.XXX.XXX",
    "server_port":80,
    "local_port":1080,
    "password":"JichOihoga",
    "timeout":300,
    "method":"aes-256-cfb",
    "fast_open":true,
    "plugin":"/etc/shadowsocks-libev/v2ray-plugin",
    "plugin_opts":"server",
    "nameserver":"8.8.8.8",
    "reuse_port": true,
    "mode":"tcp_and_udp"
}


$ sudo systemctl restart shadowsocks-libev.service

Работает.

$ sudo nano /etc/stunnel/stunnel.conf

Комментируем:

#[ovpn]
#accept = 53
#connect = 127.0.0.1:1194

Сохранить.

$ sudo /etc/init.d/stunnel4 restart
 
$  sudo ufw allow 80
$ sudo ufw disable && sudo ufw enable


Установка на клиенте.

Установка на клиенте 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

{
    "server":"XXX.XXX.XXX.XXX",
    "server_port":80,
    "local_port":1080,
    "password":"JichOihoga",
    "timeout":300,
    "method":"aes-256-cfb",
    "fast_open":true,
    "plugin":"/etc/shadowsocks-libev/v2ray-plugin",
    "plugin_opts":"server",
    "nameserver":"8.8.8.8",
    "reuse_port": true,
    "mode":"tcp_and_udp"
}


Сохранить.

$ sudo systemctl stop shadowsocks-libev.service && sudo systemctl disable shadowsocks-libev.service



Проверяем клиент

#$ sudo  systemctl stop ss-local.service

Проверяем:

$ ss-local -s "XXX.XXX.XXX.XXX" -p 80 -l 80 -k "JichOihoga" -m "aes-256-cfb" --plugin "/etc/shadowsocks-libev/v2ray-plugin"  -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

[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





$ sudo nano /etc/openvpn/client.conf

Добавляем:

socks-proxy 127.0.0.1 80
;route SHADOWSOCKS_SERVER_IP 255.255.255.255 net_gateway

Сохранить.

Проверяем:
$ sudo openvpn --config /etc/openvpn/client.conf


Делаем сервис для запуска:

$ sudo nano /etc/systemd/system/ovpn.service

[Unit]
Description=Daemon to start OpenVPN Client
Wants=network-online.target
After=network.target

[Service]
Type=simple
ExecStart=openvpn --config /etc/openvpn/client.conf

[Install]
WantedBy=multi-user.target

Сохранить.

$ sudo systemctl daemon-reload && sudo systemctl enable ovpn.service && sudo systemctl restart ovpn.service
$ sudo  systemctl status ovpn.service
$ sudo journalctl --unit=ovpn.service

Оптимизация сервера и настройка ядра.

$ sudo nano /etc/security/limits.conf

Добавить:
 
* soft nofile 51200
* hard nofile 51200

Сохранить

$ sudo nano /etc/sysctl.conf

Добавить в конец:

fs.file-max = 51200

net.core.rmem_max = 67108864
net.core.wmem_max = 67108864
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.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_mem = 25600 51200 102400
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864
net.ipv4.tcp_mtu_probing = 1
net.ipv4.tcp_congestion_control = hybla

Сохранить.

$ sudo sysctl -p

Комментариев нет:

Отправить комментарий