|
| 1 | +--- |
| 2 | +title: Shadowsocks |
| 3 | +slug: /shadowsocks |
| 4 | +tags: |
| 5 | + - 代理 |
| 6 | + - 加速 |
| 7 | +--- |
| 8 | + |
| 9 | +import Meta from './_include/shadowsocks.md'; |
| 10 | + |
| 11 | +<Meta name="meta" /> |
| 12 | + |
| 13 | +## 入门指南{#guide} |
| 14 | + |
| 15 | +Shadowsocks 需要遵循中国法律,请勿违法使用或用于非法用途。 |
| 16 | + |
| 17 | +Websoft9 应用商店并不提供 Shadowsocks 的自动部署,本文档仅介绍 Shadowsocks 的使用参考。 |
| 18 | + |
| 19 | +### Docker Compose 部署文件 |
| 20 | + |
| 21 | +#### 服务端 |
| 22 | + |
| 23 | +``` |
| 24 | +services: |
| 25 | + shadowsocks: |
| 26 | + image: shadowsocks/shadowsocks-libev |
| 27 | + container_name: shadowsocks-libev |
| 28 | + restart: always |
| 29 | + environment: |
| 30 | + - PASSWORD=<Your password here> |
| 31 | + - METHOD=aes-128-gcm |
| 32 | + ports: |
| 33 | + - "8389:8388" |
| 34 | + - "8389:8388/udp" |
| 35 | +``` |
| 36 | + |
| 37 | +> aes-128-gcm 的加密算法对性能影响最小 |
| 38 | +
|
| 39 | +#### 客户端 |
| 40 | + |
| 41 | +客户端容器编排文件: |
| 42 | + |
| 43 | +``` |
| 44 | +services: |
| 45 | + webapp: |
| 46 | + image: ghcr.io/shadowsocks/sslocal-rust:latest |
| 47 | + container_name: $W9_ID |
| 48 | + restart: unless-stopped |
| 49 | + volumes: |
| 50 | + - ./config.json:/etc/shadowsocks-rust/config.json |
| 51 | + ports: |
| 52 | + - 1099:1088 |
| 53 | +volumes: |
| 54 | + data: |
| 55 | +``` |
| 56 | + |
| 57 | +客户端配置文件 config.json: |
| 58 | + |
| 59 | +``` |
| 60 | +{ |
| 61 | + "server": "<example.com>", |
| 62 | + "server_port": <server_port>, |
| 63 | + "password": "<Your password here>", |
| 64 | + "method": "aes-128-gcm", |
| 65 | + "local_address": "0.0.0.0", |
| 66 | + "local_port": 1088, |
| 67 | + "mode": "tcp_and_udp" |
| 68 | +} |
| 69 | +``` |
| 70 | +### 网络缓存优化 |
| 71 | + |
| 72 | +如果需要为 Shadowsocks 提供匹配的服务器网络缓存优化,具体的几个核心指标参考如下: |
| 73 | + |
| 74 | +``` |
| 75 | +sudo sysctl -w net.core.rmem_max=2097152 # 2MB |
| 76 | +sudo sysctl -w net.core.wmem_max=2097152 # 2MB |
| 77 | +sudo sysctl -w net.core.rmem_default=524288 # 512KB |
| 78 | +sudo sysctl -w net.core.wmem_default=524288 # 512KB |
| 79 | +sudo sysctl -w net.ipv4.tcp_rmem="4096 524288 2097152" # min 4KB, default 512KB, max 2MB |
| 80 | +sudo sysctl -w net.ipv4.tcp_wmem="4096 524288 2097152" # min 4KB, default 512KB, max 2MB |
| 81 | +``` |
| 82 | + |
| 83 | +## 配置选项{#configs} |
| 84 | + |
| 85 | +- 加密算法更改:修改环境变量 **METHOD** |
| 86 | + |
| 87 | +## 管理维护{#administrator} |
| 88 | + |
| 89 | +### 负载均衡 |
| 90 | + |
| 91 | +有两种负载均衡方案: |
| 92 | + |
| 93 | +- 服务端负载均衡:使用 HAProxy 将多个 Shadowsocks 服务包装为一个对外的服务 |
| 94 | +- 客户端负载均衡:在 Shadowsocks 客户端的配置中,设置多个 Shadowsocks 服务端以及负载策略 |
| 95 | + |
| 96 | +前者是比较简单的。 |
| 97 | + |
| 98 | +## 故障 |
| 99 | + |
| 100 | +#### 代理失效? |
| 101 | + |
| 102 | +定期重启可以解决大部分时候的代理失效问题 |
0 commit comments