本文内容仅作交流学习和查阅技术资料之用,请勿用于商业用途!如造成任何后果,本文作者概不负责。谢谢您的关注!
如果您有任何问题或建议,可以发送邮件到 zrg1390556487@gmail.com
1. 服务端
1.1. 服务部署第一步
首先,购买一台境外云服务器
- 搬瓦工
- DigitalOcean
- AWS
- Vultr
1.2. 安装和配置 Shadowsocks
安装 pip
// CentOS # yum install python3-pip
或者:
# curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py" # python get-pip.py
安装及配置 shadowsocks
// 使用 pip 安装 shadowsocks # pip install shadowsocks
// 也可以选择自动安装脚本
// 配置 shadowsocks # vim /etc/shadowsocks.json
{ "server": "123.123.123.123", "server_port": 8388, "local_address":"127.0.0.1", "local_port":1080, "port_password":{ "9001":"password9001", "9002":"password9002", "9003":"password9003" }, "password": "password", "method": "aes-256-cfb", "timeout":600 }
解释: - "server": "123.123.123.123" :: 服务器 IP 地址 - "server_port": 8388 :: 服务器端口号 - "local_address":"127.0.0.1" :: 本地回环地址 - "local_port":1080, :: 本地端口号 - "port_password" :: 映射端口和密码 - "password": "password" :: 密码 - "method": "aes-256-cfb" :: 加密方式,详细可参考 [[http://ucdok.com/project/generate_password.html][password tool]] - "timeout":600 :: 超时时间
配置自启动脚本
# vim /etc/systemd/system/shadowsocks.service
[Unit] Description=Shadowsocks [Service] TimeoutStartSec=0 ExecStart=/usr/bin/ssserver -c /etc/shadowsocks.json [Install] WantedBy=multi-user.target
设置 shadowsocks 自启动
# systemctl enable shadowsocks # systemctl start shadowsocks # systemctl status shadowsocks -l
1.3. 使用 Docker 安装 Shadowsocks(推荐)
安装 docker
# CentOS Linux 系列 # yum install docker # systemctl enable docker # systemctl start docker
# CentOS Stream # Docker官网安装教程:https://docs.docker.com/engine/install/centos/ # yum install -y yum-utils # yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # yum install docker-ce docker-ce-cli containerd.io # systemctl start docker # systemctl enable docker
部署 Shadowsocks
# docker run -dt --name ss -p 6443:6443 mritd/shadowsocks -s "-s 0.0.0.0 -p 6443 -m aes-256-cfb -k test123 --fast-open"
2. 客户端
目前支持以下客户端进行连接:
- Linux
- Windows
- Mac OS X
- Android
- IOS(需要美区账号)
2.1. Linux
2.1.1. 安装、配置和使用 Linux Shadowsocks 客户端
Linux 系列
Debian/Ubuntu:
$ sudo apt-get install python-pip $ sudo pip install shadowsocks
Fedora/Centos:
$ sudo yum install python-setuptools
or
$ sudo dnf install python-setuptools $ sudo easy_install pip $ sudo pip install shadowsocks
OpenSUSE:
$ sudo zypper install python-pip $ sudo pip install shadowsocks
Archlinux:
$ sudo pacman -S python-pip sudo pip install shadowsocks
sslocal 是客户端软件,ssserver 是服务端软件,常见于 Linux 发行版,如 Ubuntu。sslocal 在 usr/local/bin 目录下,也有其他发行版在 /usr/bin 目录下,可以使用 whereis 命令找到它的位置。
$ whereis sslocal
sslocal: /usr/local/bin/sslocal
/etc/shadowsocks.json
{ "server":"server-ip", "server_port":8000, "local_address": "127.0.0.1", "local_port":1080, "password":"your-password", "timeout":600, "method":"aes-256-cfb" }
// 启动 $ sudo sslocal -c /etc/shadowsocks.json
// 后台运行 $ sudo sslocal -c /etc/shadowsocks.json -d start
/etc/rc.local
$ sudo vim /etc/rc.local
sudo sslocal -c /etc/shadowsocks.json -d start
// 检查是否正常工作 # sudo systemctl status rc-local.service
2.1.2. 开启全局代理
安装及配置 polipo
$ sudo apt install polipo $ sudo vim /etc/polipo/config
logSyslog = true logFile = /var/log/polipo/polipo.log proxyAddress = "0.0.0.0" socksParentProxy = "127.0.0.1:1080" socksProxyType = socks5 chunkHighMark = 50331648 objectHighMark = 16384 serverMaxSlots = 64 serverSlots = 16 serverSlots1 = 32
重启 polipo
$ sudo systemctl restart polipo
设置全局变量 http_proxy and https_proxy
$ export http_proxy="http://127.0.0.1:8123/" $ export https_proxy="https://127.0.0.1:8123/"
测试
$ curl www.google.com
2.1.3. 问题解决
ShadowSocks start error: undefined symbol EVP_CIPHER_CTX_cleanup [原因分析]
openssl 1.1.0 "EVP_CIPHER_CTX_cleanup" is old.
[解决办法]
$ vim /usr/local/lib/python3.5/dist-packages/shadowsocks/crypto/openssl.py
VIM Command: :%s/cleanup/reset/ :x
not support "chacha20" [解决办法]
$ apt install m2crypto gcc -y $ wget -N --no-check-certificate https://download.libsodium.org/libsodium/releases/libsodium-1.0.8.tar.gz $ tar zxvf libsodium-1.0.8.tar.gz $ cd libsodium-1.0.8 $ sudo ./configure $ sudo make && make install $ sudo echo "include ld.so.conf.d/*.conf" > /etc/ld.so.conf $ sudo echo "/lib" >> /etc/ld.so.conf $ sudo echo "/usr/lib64" >> /etc/ld.so.conf $ sudo echo "/usr/local/lib" >> /etc/ld.so.conf $ sudo ldconfig
2.2. Windows
2.2.1. 下载
发送邮件至 zrg1390556487@gmail.com,索取 Windows Shadowsocks 客户端。
2.2.2. 配置
- 解压
- 运行
- 配置
- 设置代理
2.3. Android
2.3.1. 下载
发送邮件至 zrg1390556487@gmail.com,索取 Android Shadowsocks 客户端。
2.3.2. 配置
2.4. IOS
- 打开 Apple 应用市场, 搜索 "shadowrocket"。我记得不错的话,标价应该是:¥12
- 配置
2.5. Mac OS X
3. 浏览器插件:SwitchyOmega
该插件用于调节代理,方便快速切换代理上网模式。根据目前使用经验,Linux 必装,Windows 可选。
3.1. 下载
发送邮件至 zrg1390556487@gmail.com,索取 Mac OS X Shadowsocks 客户端。
3.2. 配置
- 设置代理
设定规则 可选规则
rule:http://autoproxy-gfwlist.googlecode.com/svn/trunk/gfwlist.txt
or
https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt
4. 参考资料
- https://zh.wikipedia.org/zh-hans/Shadowsocks
- https://shadowsocks.com
- http://shadowsocks.org/
- 在 CentOS 7 下安装配置 shadowsocks
- Install And Use Shadowsocks Command Line Client on Linux
- ShadowsocksR 客户端 小白使用教程
- ShadowSocks启动报错undefined symbol EVP_CIPHER_CTX_cleanup
- SwitchyOmega
- IOS系统推荐几款支持Shadowsocks的代理软件
- 各种系统下Shadowsocks客户端的安装与配置
- linux 配置shadowsocks代理全局代理
- linux ubuntu下使用ss设置全局代理,命令行也走代理