Surfing, it’s so simple! 上网就该如此简单!,如同大陆同胞常喊的,Shadowsocks跟Squid一样是很成熟的Proxy程式了,虽然我自己是比较喜欢Squid,但是应用在手机上连线就比较麻烦了,免费VPN一大堆,可是限制很多、不然就是广告一大堆 🙁 所以选择了占用资源最少的shadowsocks-libev,而且全部透过dnf安装,在Debian 11, CentOS 6.10 (Final)、7.6.1810安装上也顺利成功执行,方便性非常高🤖🤓🤖
至于说为什么要选买VPS装Shadowsocks不直接买VPN呢,比如说在HostUS租个最便宜的KVM-0.5方案(512MB内存、750GB流量),一年只需要45美金(约1,400台币),若是在RamNode租512MB SKVMS方案(512MB内存、1TB流量),一年只需要32.40美金(约1,010台币),所以如果担心网速慢又不想跟太多人共用频宽,而且没有特殊需要切换国家的需求,如果又想学习操作Linux(或是过个干瘾?!),买个便宜的VPS来装Shadowsocks做VPN应用是最实惠的 🤖🤓🤖
安装方法
### 阶段A. Debian
1 2 3 |
sudo apt update sudo apt install -y shadowsocks-libev # 接着直接往下跳到建立设定档的阶段C |
### 阶段B. CentOS 8
B1. 安装epel的软件源
1 2 |
cd /opt sudo yum install -y dnf epel-release |
B2. 下载repo
1 2 3 4 |
rm -f /etc/yum.repos.d/outman-shadowsocks-libev.repo URL=https://copr.fedorainfracloud.org/coprs/outman/shadowsocks-libev/repo/epel-8/outman-shadowsocks-libev-epel-8.repo curl -sSL "$URL" -o /etc/yum.repos.d/outman-shadowsocks-libev.repo cat /etc/yum.repos.d/outman-shadowsocks-libev.repo |
B3. 安装依赖套件并更新系统,此时应该会出现有shadowsocks-libev可以安装了 🤓
1 |
sudo dnf update -y && dnf info shadowsocks-libev |
B4. 安装shadowsocks-libev
1 |
sudo dnf install -y libsodium simple-obfs shadowsocks-libev |
### C. 修改设定档,请注意server_port、password两个部分可以自订,其他无须修改
1 2 3 4 5 6 7 8 9 10 11 |
rm -f /etc/shadowsocks-libev/config.json cat >> /etc/shadowsocks-libev/config.json <<- EOF { "server":["::0","0.0.0.0"], "mode":"tcp_and_udp", "server_port":8088, "password":"520be", "timeout":60, "method":"chacha20-ietf-poly1305" } EOF |
### D. 设定防火墙,将自订的8088连接埠加入白名单(默认是8388)
1 2 3 4 5 |
service iptables stop iptables -A INPUT -p tcp --dport 8088 -j ACCEPT iptables -A INPUT -p udp --dport 8088 -j ACCEPT service iptables save systemctl restart iptables |
# firewalld切换成下列指令
1 2 3 |
firewall-cmd --permanent --add-port=8088/tcp firewall-cmd --permanent --add-port=8088/udp firewall-cmd --reload |
### F. 启用shadowsocks-libev服务并启动shadowsocks-libev
1 2 |
systemctl enable shadowsocks-libev systemctl start shadowsocks-libev |
额外的指令
# 检查shadowsocks-libev启动状态
systemctl restart shadowsocks-libev
systemctl status shadowsocks-libev -l
ps ax | grep ss-server
netstat -atunp | grep ss-server
# 查询最消耗内存的程式
top -b -o +%MEM
# (可选)最佳化系统的吞吐量、支撑能力
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
ulimit -n 51200 sysctl -w net.core.default_qdisc=fq sysctl -w net.core.rmem_default=65536 sysctl -w net.core.wmem_default=65536 sysctl -w net.core.rmem_max=67108864 sysctl -w net.core.wmem_max=67108864 sysctl -w net.core.netdev_max_backlog=4096 sysctl -w net.ipv4.tcp_congestion_control=htcp sysctl -w net.ipv4.tcp_mtu_probing=1 sysctl -w net.ipv4.tcp_rmem='4096 87380 33554432' sysctl -w net.ipv4.tcp_wmem='4096 65536 33554432' # 个人常用的最佳化指令开始 sysctl -w net.core.optmem_max=25165824 sysctl -w net.core.somaxconn=4096 sysctl -w net.ipv4.ip_forward=1 sysctl -w net.ipv4.route.flush=1 sysctl -w net.ipv4.tcp_fastopen=3 sysctl -w net.ipv4.tcp_fin_timeout=30 sysctl -w net.ipv4.tcp_keepalive_time=1200 sysctl -w net.ipv4.tcp_max_syn_backlog=4096 sysctl -w net.ipv4.tcp_max_tw_buckets=1440000 sysctl -w net.ipv4.tcp_mtu_probing=1 sysctl -w net.ipv4.tcp_syncookies=1 sysctl -w net.ipv4.tcp_tw_recycle=0 sysctl -w net.ipv4.tcp_tw_reuse=1 sysctl -w fs.file-max=2097152 ###个人常用的最佳化指令结束 sysctl --system |
- ref.
- librehat/shadowsocks
- Shadowsocks 使用说明 · shadowsocks Wiki
- Shadowsocks Windows 使用说明 · shadowsocks Wiki
- Configuration via Config File · shadowsocks Wiki
- Troubleshooting · shadowsocks Wiki
- Optimizing Shadowsocks · shadowsocks Wiki
客户端
- Android
- iOS
- 浏览器
- Windows
- Mac OS
- Linux
- OpenWRT
pip install shadowsocks
- Shadowsocks-Qt5 @ GitHub
- Outline @ GitHub
opkg install shadowsocks-libev
opkg install shadowsocks-libev-polarssl
