- bbr、bbr魔改版(南琴浪)、pcc
- shadowsocks-libev 版本: 3.3.4
- kcptun 版本: 20200701
- udpspeederv2 版本: 20200714.0
- udp2raw 版本: 20200727.0
- tinyPortMapper 版本: 20180620.0
基于mritd/shadowsocks镜像制作
- 下载脚本
curl -L https://raw.githubusercontent.com/sola97/docker-ss-kcp-udpspeeder/master/generate.py > generate.py
python3 generate.py
运行,要求python3.6+- 输入IP和端口等后得到生成的客户端和服务端命令
- 手动粘贴运行
各模块可以单独启用
-s
: 指定 shadowsocks 命令,默认为ss-server
-S
: shadowsocks-libev 参数字符串-k
: 指定 kcptun 命令,默认为kcpserver
-K
: kcptun 参数字符串-u
: udpspeederv2 的参数字符串-t
: first udp2raw 参数字符串-T
: second udp2raw 参数字符串-b
: 指定要启用的bbr模块-B
:/etc/rinetd.conf
配置文件内容-m
: first tinyPortMappper的参数字符串-M
: second tinyPortMappper的参数字符串
-s
: 参数后指定一个 shadowsocks 命令,如 ss-local,不写默认为 ss-server;该参数用于 shadowsocks 在客户端和服务端工作模式间切换,可选项如下:ss-local
、ss-manager
、ss-nat
、ss-redir
、ss-server
、ss-tunnel
-S
: 参数后指定一个 shadowsocks-libev 的参数字符串,所有参数将被拼接到ss-server
后-k
: 参数后指定一个 kcptun 命令,如 kcpclient,不写默认为 kcpserver;该参数用于 kcptun 在客户端和服务端工作模式间切换,可选项如下:kcpserver
、kcpclient
-K
: 参数后指定一个 kcptun 的参数字符串,所有参数将被拼接到kcptun
后;不写默认为禁用;-u
: 参数后指定一个 udpspeederv2 的参数字符串,所有参数将被拼接到udpspeederv2
后;不写默认为禁用;-t
: 参数后指定一个 udp2raw 的参数字符串,所有参数将被拼接到udp2raw
后;不写默认为禁用;-T
: 第二个 udp2raw 进程的参数字符串;同上,不写默认为禁用;-b
: 选择启用的bbr模块,可选的有rinetd-bbr
(原版)、rinetd-bbr-powered
(魔改版)、rinetd-pcc
(另一个TCP拥塞控制算法)-B
:/etc/rinetd.conf
的配置,留空自动根据ss监听端口生成,示例:0.0.0.0 6443 0.0.0.0 6443
-m
: 参数后指定一个tinyPortMappper的参数字符串,所有参数将被拼接到tinymaper
后;不写默认为禁用;-M
: 第二个 tinyPortMappper进程的参数字符串,同上,不写默认为禁用;
方案说明
只启用BBR加速
Server 端
docker run -dt \
--cap-add=NET_ADMIN \
--restart=always \
--name ssserver \
-p 6443:6443 \
-p 6443:6443/udp \
sola97/shadowsocks \
-s "ss-server" \
-S "-s 0.0.0.0 -p 6443 -m rc4-md5 -k passwd -u --fast-open" \
-b "rinetd-bbr" \
-B "0.0.0.0 6443 0.0.0.0 6443" //此行可选
以上命令相当于执行了
ss-server -s 0.0.0.0 -p 6443 -m rc4-md5 -k passwd -u --fast-open
/usr/bin/rinetd-bbr -f -c /etc/rinetd.conf raw eth0
cat <<EOF >> /etc/rinetd.conf
0.0.0.0 6443 0.0.0.0 6443
EOF
Client 端
docker run -dt \
--restart=always \
--name ssclient \
-p 1080:1080 \
-p 1080:1080/udp \
sola97/shadowsocks \
-s "ss-local" \
-S "-s $SS_SERVER_IP -p 6443 -b 0.0.0.0 -l 1080 -u -m rc4-md5 -k passwd --fast-open"
以上命令相当于执行了
ss-local -s $SS_SERVER_IP -p 6443 -b 0.0.0.0 -l 1080 -u -m rc4-md5 -k passwd --fast-open
方案说明
SS + v2ray-plugin + websocket + tls + bbr
Server 端
docker run -dt \
--cap-add=NET_ADMIN \
--restart=always \
--name ssserver_https \
-p 443:6443 \
-p 443:6443/udp \
-v /path/fullchain.cer:/etc/v2ray-plugin/fullchain.cer \ //域名的fullchain证书
-v /path/private.key:/etc/v2ray-plugin/private.key \ //域名的private.key证书
sola97/shadowsocks \
-s "ss-server" \
-S "-s 0.0.0.0 -p 6443 -m rc4-md5 -k passwd -u --fast-open
--plugin v2ray-plugin --plugin-opts=server;tls;host=$server_domain;cert=/etc/v2ray-plugin/fullchain.cer;key=/etc/v2ray-plugin/private.key" \
-b "rinetd-bbr"
Client 端
docker run -dt \
--restart=always \
--name ssclient \
-p 1080:1080 \
-p 1080:1080/udp \
sola97/shadowsocks \
-s "ss-local" \
-S "-s $server_domain -p 443 -b 0.0.0.0 -l 1080 -u -m rc4-md5 -k passwd --fast-open --plugin v2ray-plugin --plugin-opts=tls;host=$server_domain"
方案说明
UDPspeeder kcptun finalspeed $$ 同时加速tcp和udp流量
Server 端
docker run -dt \
--restart=always \
--name ssserver \
-p 6443:6443 \
-p 6443:6443/udp \ //暴露SS端口用于直连
-p 6500:6500/udp \
-p 6501:6501/udp \
sola97/shadowsocks \
-s "ss-server" \
-S "-s 0.0.0.0 -p 6443 -m rc4-md5 -k passwd -u --fast-open" \
-k "kcpserver" \
-K "-l 0.0.0.0:6500 -t 127.0.0.1:6443 --mode fast2 --mtu 1300" \
-u "-s -l0.0.0.0:6501 -r 127.0.0.1:6443 -f1:3,2:4,8:6,20:10 -k passwd "
以上命令相当于执行了
ss-server -s 0.0.0.0 -p 6443 -m rc4-md5 -k passwd -u --fast-open
kcpserver -l 0.0.0.0:6500 -t 127.0.0.1:6443 --mode fast2 --mtu 1300
speederv2 -s -l0.0.0.0:6501 -r 127.0.0.1:6443 -f1:3,2:4,8:6,20:10 -k passwd
Client 端
docker run -dt \
--restart=always \
--name ssclient \
-p 6500:6500 \
-p 6500:6500/udp \
-p 1080:1080 \
-p 1080:1080/udp \
sola97/shadowsocks \
-s "ss-local" \
-S "-s 127.0.0.1 -p 6500 -b 0.0.0.0 -l 1080 -u -m rc4-md5 -k passwd --fast-open" \
-k "kcpclient" \
-K "-l :6500 -r $SS_SERVER_IP:6500 --mode fast2 --mtu 1300" \
-u "-c -l[::]:6500 -r$SS_SERVER_IP:6501 -f1:3,2:4,8:6,20:10 -k passwd"
以上命令相当于执行了
ss-local -s 127.0.0.1 -p 6500 -b 0.0.0.0 -l 1080 -u -m rc4-md5 -k passwd --fast-open
kcpclient -l :6500 -r $SS_SERVER_IP:6500 --mode fast2 --mtu 1300
speederv2 -c -l[::]:6500 -r$SS_SERVER_IP:6501 -f1:3,2:4,8:6,20:10 -k passwd
方案说明
在方案三的基础上将两路UDP流量用udp2raw伪装成TCP
kcptun client---->udp2raw client--------------->udp2raw server---->kcptun server
UDPspeeder client---->udp2raw client--------------->udp2raw server---->UDPspeeder server
Server 端
docker run -dt \
--restart=always \
--cap-add=NET_ADMIN \
--name ssserver \
-p 6443:6443 \
-p 6443:6443/udp \
-p 4096:4096 \
-p 4097:4097 \
sola97/shadowsocks \
-s "ss-server" \
-S "-s 0.0.0.0 -p 6443 -m rc4-md5 -k passwd -u --fast-open" \
-k "kcpserver" \
-K "-l 0.0.0.0:6500 -t 127.0.0.1:6443 --mode fast2 --mtu 1300" \
-u "-s -l0.0.0.0:6501 -r 127.0.0.1:6443 -f1:3,2:4,8:6,20:10 -k passwd " \
-t "-s -l0.0.0.0:4096 -r 127.0.0.1:6500 -k passwd --cipher-mode xor --auth-mode simple --raw-mode faketcp -a" \
-T "-s -l0.0.0.0:4097 -r 127.0.0.1:6501 -k passwd --cipher-mode xor --auth-mode simple --raw-mode faketcp -a"
以上命令相当于执行了
ss-server -s 0.0.0.0 -p 6443 -m rc4-md5 -k passwd -u --fast-open
kcpserver -l 0.0.0.0:6500 -t 127.0.0.1:6443 --mode fast2 --mtu 1300
speederv2 -s -l0.0.0.0:6501 -r 127.0.0.1:6443 -f1:3,2:4,8:6,20:10 -k passwd
udp2raw -s -l0.0.0.0:4096 -r 127.0.0.1:6500 -k passwd --cipher-mode xor --auth-mode simple --raw-mode faketcp -a
udp2raw -s -l0.0.0.0:4097 -r 127.0.0.1:6501 -k passwd --cipher-mode xor --auth-mode simple --raw-mode faketcp -a
Client 端
docker run -dt \
--cap-add=NET_ADMIN \
--restart=always \
--name ssclient \
-p 6500:6500 \
-p 6500:6500/udp \
-p 1080:1080 \
-p 1080:1080/udp \
sola97/shadowsocks \
-t "-c -l0.0.0.0:3333 -r$SS_SERVER_IP:4096 -k passwd --cipher-mode xor --auth-mode simple --raw-mode faketcp -a" \
-T "-c -l0.0.0.0:3334 -r$SS_SERVER_IP:4097 -k passwd --cipher-mode xor --auth-mode simple --raw-mode faketcp -a" \
-k "kcpclient" \
-K "-l :6500 -r 127.0.0.1:3333 --mode fast2 --mtu 1300" \
-u "-c -l[::]:6500 -r127.0.0.1:3334 -f1:3,2:4,8:6,20:10 -k passwd" \
-s "ss-local" \
-S "-s 127.0.0.1 -p 6500 -b 0.0.0.0 -l 1080 -u -m rc4-md5 -k passwd --fast-open"
以上命令相当于执行了
udp2raw -c -l0.0.0.0:3333 -r$SS_SERVER_IP:4096 -k passwd --cipher-mode xor --auth-mode simple --raw-mode faketcp -a
udp2raw -c -l0.0.0.0:3334 -r$SS_SERVER_IP:4097 -k passwd --cipher-mode xor --auth-mode simple --raw-mode faketcp -a
kcpclient -l :6500 -r 127.0.0.1:3333 --mode fast2 --mtu 1300
speederv2 -c -l[::]:6500 -r127.0.0.1:3334 -f1:3,2:4,8:6,20:10 -k passwd
ss-local -s 127.0.0.1 -p 6500 -b 0.0.0.0 -l 1080 -u -m rc4-md5 -k passwd --fast-open
注意:启用udp2raw或BBR的时候要指定docker --cap-add=NET_ADMIN
环境变量 | 作用 | 取值 |
---|---|---|
SS_MODULE | shadowsocks 启动命令 | ss-local 、ss-manager 、ss-nat 、ss-redir 、ss-server 、ss-tunnel |
SS_CONFIG | shadowsocks-libev 参数字符串 | 所有字符串内内容应当为 shadowsocks-libev 支持的选项参数 |
KCP_MODULE | kcptun 启动命令 | kcpserver 、kcpclient |
KCP_CONFIG | kcptun 参数字符串 | 所有字符串内内容应当为 kcptun 支持的选项参数 |
UDPSPEEDER_CONFIG | udpspeederv2 参数字符串 | 所有字符串内内容应当为 udpspeederv2 支持的选项参数,为空时不启动 |
UDP2RAW_CONFIG_ONE | 第一个 udp2raw 进程参数字符串 | 所有字符串内内容应当为 udp2raw 支持的选项参数,为空时不启动 |
UDP2RAW_CONFIG_TWO | 第二个 udp2raw 进程参数字符串 | 所有字符串内内容应当为 udp2raw 支持的选项参数,为空时不启动 |
BBR_MODULE | 启用的bbr模块 | rinetd-bbr 、rinetd-bbr-powered 、rinetd-pcc , 为空时不启动 |
BBR_CONFIG | /etc/rinetd.conf 文件内容 |
所有字符串内内容应当为rinted支持的格式 |
TINY_MAPPER_CONFIG_ONE | 第一个tinyPortMapper进程参数字符串 | 所有字符串内内容应当为 tinyPortMapper支持的选项参数, 为空时不启动 |
TINY_MAPPER_CONFIG_TWO | 第二个tinyPortMapper进程参数字符串 | 所有字符串内内容应当为 tinyPortMapper支持的选项参数, 为空时不启动 |
使用时可指定环境变量,如下
docker run -dt --name ss -p 6443:6443 -p 6500:6500/udp -e SS_CONFIG="-s 0.0.0.0 -p 6443 -m rc4-md5 -k passwd" -e KCP_MODULE="kcpserver" -e KCP_CONFIG="-t 127.0.0.1:6443 -l :6500 --mode fast2 --mtu 1300" sola97/shadowsocks
更新日志
- 2021-07-18
更新generate.py,自动在docker-compose文件夹下生成yml文件
- 2020-09-17
更新generate.py,设置服务端为--network=host,用于支持Full cone NAT
- 2020-08-05
取消SS为必须项,更新generate.py,添加udp2raw设置raw-mode
- 2020-07-21 基于mritd/shadowsocks:3.3.4-20200701
添加TinyPortMapper
- 2020-05-16 基于mritd/shadowsocks:3.3.4-20200409
更新 generate.py,添加UDPSpeeder的FEC参数选项
- 2020-01-06 基于mritd/shadowsocks:3.3.3-20191229
添加v2ray(ws+tls)的配置说明
- 2020-01-01 添加基于LKL的BBR
添加BBR,更新 generate.py
- 2019-12-31 基于mritd/shadowsocks:3.3.3-20191127
更新 generate.py,添加用于计算丢包率的脚本