Acris/docker-shadowsocks-libev
GitHub: Acris/docker-shadowsocks-libev
一个基于 Alpine Linux 的 Docker 镜像,集成 shadowsocks-libev 与 v2ray-plugin,用于快速部署支持 TLS/QUIC 的代理服务。
Stars: 305 | Forks: 95
# Shadowsocks-libev Dockerfile
此 Dockerfile 基于 Alpine Linux 构建用于 [shadowsocks-libev](https://github.com/shadowsocks/shadowsocks-libev/) 的镜像,并集成了 [v2ray-plugin](https://github.com/teddysun/v2ray-plugin)。
**标签:**
- latest
- shadowsocks-libev: v3.3.5
- v2ray-plugin: v5.1.0
- nightly
- shadowsocks-libev: master 分支
- v2ray-plugin: master 分支
## 快速开始
运行以下命令获取 Docker 镜像:
```
docker pull acrisliu/shadowsocks-libev
```
启动一个实例:
```
docker run -d --name=shadowsocks-libev -p 8388:8388/tcp -p 8388:8388/udp --restart=always acrisliu/shadowsocks-libev
```
## 设置特定配置
你可以使用环境变量来指定配置。
例如,使用加密方法 `aes-256-gcm` 和密码 `YourPassword` 启动容器:
```
docker run -d \
-e METHOD=aes-256-gcm \
-e PASSWORD=YourPassword \
--name=shadowsocks-libev \
-p 8388:8388/tcp \
-p 8388:8388/udp \
--restart=always \
acrisliu/shadowsocks-libev
```
可用的环境变量及其默认值:
- `SERVER_PORT`:远程服务器的端口号,默认值为 `8388`。
- `PASSWORD`:远程服务器的密码,默认值为 `ChangeMe!!!`。
- `METHOD`:加密方法,默认值为 `chacha20-ietf-poly1305`。
- `TIMEOUT`:套接字超时时间(秒),默认值为 `86400`。
- `DNS_ADDRS`:为内部 DNS 解析器设置名称服务器,默认值为 `1.1.1.1,1.0.0.1`。
- `ARGS`:`ss-server` 支持的额外参数,默认值为 `-u`,以启用 UDP 中继。
## 启用 v2ray-plugin
默认情况下,v2ray-plugin 是禁用的。请使用 `ARGS` 环境变量并添加 `--plugin`、`--plugin-opts` 参数来启用它。
例如,若要启用带有 TLS 模式并启用 UDP 中继的 v2ray-plugin:
```
docker run -d \
-e "ARGS=--plugin v2ray-plugin --plugin-opts server;tls;host=yourdomain.com;path=/v2ray;cert=/root/.acme.sh/yourdomain.com/fullchain.cer;key=/root/.acme.sh/yourdomain.com/yourdomain.com.key -u" \
-e PASSWORD=YourPassword \
-v /root/.acme.sh:/root/.acme.sh \
--user root \
--name=shadowsocks-libev \
-p 8388:8388/tcp \
-p 8388:8388/udp \
--restart=always \
acrisliu/shadowsocks-libev
```
**启用 QUIC 模式的 v2ray-plugin:**
建议通过运行以下命令来增加最大缓冲区大小:
```
sysctl -w net.core.rmem_max=2500000
```
此命令将最大接收缓冲区大小增加到大约 2.5 MB。
```
docker run -d \
-e "ARGS=--plugin v2ray-plugin --plugin-opts server;mode=quic;host=yourdomain.com;path=/v2ray;cert=/root/.acme.sh/yourdomain.com/fullchain.cer;key=/root/.acme.sh/yourdomain.com/yourdomain.com.key" \
-e PASSWORD=YourPassword \
-v /root/.acme.sh:/root/.acme.sh \
--user root \
--name=shadowsocks-libev \
-p 8388:8388/tcp \
-p 8388:8388/udp \
--restart=always \
acrisliu/shadowsocks-libev
```
*注意:如果要启用 v2ray-plugin 的 QUIC 模式,必须禁用 ss-server 的 UDP 中继,即 `ARGS` 中不要包含 `-u` 参数。*
请记得将你的证书挂载到容器中,推荐使用 [acme.sh](acme.sh) 来签发证书。
更多 v2ray-plugin 配置请参考 [v2ray 插件文档](https://github.com/teddysun/v2ray-plugin/blob/master/README.md)
## 使用 docker-compose
docker-compose.yml:
```
services:
shadowsocks-libev:
container_name: shadowsocks-libev
image: acrisliu/shadowsocks-libev
user: root
ports:
- "8388:8388/tcp"
- "8388:8388/udp"
volumes:
- /root/.acme.sh:/root/.acme.sh:ro
environment:
- PASSWORD=YourPassword
- ARGS=--plugin v2ray-plugin --plugin-opts server;tls;host=yourdomain.com;path=/v2ray;cert=/root/.acme.sh/yourdomain.com/fullchain.cer;key=/root/.acme.sh/yourdomain.com/yourdomain.com.key -u
restart: always
```
## 如何升级
只需使用以下命令:
```
# 拉取最新镜像
docker pull acrisliu/shadowsocks-libev
# 停止并移除旧容器
docker stop shadowsocks-libev
docker rm shadowsocks-libev
# 使用最新镜像启动新容器
docker run -d \
-e PASSWORD=YourPassword \
--name=shadowsocks-libev \
-p 8388:8388/tcp \
-p 8388:8388/udp \
--restart=always \
acrisliu/shadowsocks-libev
```
标签:Alpine Linux, Docker, Dockerfile, NIDS, Shadowsocks, Shadowsocks-libev, TLS, UDP 转发, v2ray-plugin, VPN, 代理, 加密传输, 后台服务, 安全防御评估, 容器化, 开源, 无文件攻击, 流量混淆, 环境变量配置, 端口映射, 网络安全, 网络穿透, 自定义配置, 请求拦截, 防御工具, 隐私保护