Shadowsocks (简体中文)
Shadowsocks是一个轻量级socks5代理,有多种实现方式。
Contents
安装
可自[community]中安装已打包好的shadowsocks。
shadowsocks-libev或shadowsocks | shadowsocks基本包 |
libsodium python2-numpy python2-salsa20 |
Salsa20和Chacha20支持; |
配置
shadowsocks以json为配置文件格式,以下是一个样例:
/etc/shadowsocks/config.json
{ "server":"remote-shadowsocks-server-ip-addr", "server_port":443, "local_address":"127.0.0.1", "local_port":1080, "password":"your-passwd", "timeout":300, "method":"chacha20-ietf", "fast_open":false, "workers":1 }
server | 服务端监听地址(IPv4或IPv6) |
server_port | 服务端端口,一般为443
|
local_address | 本地监听地址,缺省为127.0.0.1 可用-b参数设置
|
local_port | 本地监听端口,一般为1080
|
password | 用以加密的密匙 |
timeout | 超时时间(秒) |
method | 加密方法,默认的table 是一种不安全的加密。建议使用chacha20-ietf 。
|
fast_open | 是否启用TCP-Fast-Open |
wokers | worker数量,如果不理解含义请不要改 |
客户端
命令行
在config.json
所在目录下运行sslocal
(shadowsocks-libev 使用 ss-local
)即可;若需指定配置文件的位置:
# sslocal -c /etc/shadowsocks/config.json
,或可尝试手动运行:
# sslocal -s 服务器地址 -p 服务器端口 -l 本地端端口 -k 密码 -m 加密方法
配合nohup和&可以使之后台运行,关闭终端也不影响:
#nohup sslocal -s 服务器地址 -p 服务器端口 -l 本地端端口 -k 密码 -m 加密方法 &
以守护进程形式运行客户端
Shadowsocks的systemd服务可在/etc/shadowsocks/
里调用不同的conf-file.json
(以conf-file
为区分标志),例:
在/etc/shadowsocks/
中创建了foo.json
配置文件,那么执行以下语句就可以调用该配置:
# systemctl start shadowsocks@foo
若需开机自启动:
# systemctl enable shadowsocks@foo
图形界面客户端
安装 shadowsocks-qt5。
浏览器配置
Firefox
以下是本地监听端口127.0.0.1:1080
配置完毕后,Firefox使用代理服务器的方法示例。
安装代理插件foxyproxy:打开浏览器右上角菜单,进入扩展管理,在搜索框中输入foxyproxy,安装foxyproxy代理插件,安装完毕后重启浏览器。
设置代理:找到foxyproxy插件,单击进入foxyproxy的设置界面,在代理服务器目录左侧选择添加代理服务器,为新加代理起一个名字,然后在代理服务器设置里选择手动设置代理服务器,ip地址栏填写127.0.0.1,勾选SOCKS代理服务器,点选SOCKS V5,然后确定。
开启快速添加(可选):在foxyproxy设置中,选择快速添加,勾选启用,在进入某些需要代理的网站时可以按下Alt+f2将网址添加到设定的代理中(!此功能需要foxyproxy标准版)。
使用代理:在foxyproxy上鼠标右键点击,指针移动到添加的代理上,就可以选择使用此代理服务器。也可以根据个人需求给某些特定域名添加到代理列表,使指定域名使用相应的代理设置。
更多有关foxyproxy内容,请到foxyproxy官网查看。
Chrome/Chromium
以下是本地监听端口127.0.0.1:1080
配置完毕后,Chrome/Chromium使用代理服务器的方法示例。
方法一:
请安装 Proxy SwitchyOmega插件(SwitchySharp已停止开发),若商店打不开的话可以直接下载Github上面的crx文件可参考该扩展提供的图解流程。
另外提供老版Proxy SwitchySharp扩展因为它诞生早,经过了更多用户的考验,且基本功能完备。
也可以选用其他代理扩展,设置方法类似。
方法二:
1.直接指定Chromium走socks代理似乎不能远程dns解析,这未必是用户的期望,可使用privoxy等软件转化socks代理为http代理。
编辑privoxy配置文件(不要漏下1080后面的点)
/etc/privoxy/config
forward-socks5 / 127.0.0.1:1080 . listen-address 127.0.0.1:8118
重启服务应用更改:
# /etc/init.d/privoxy restart
2.假设转化后的http代理为127.0.0.1:8118,则在终端中启动:
$ chromium %U --proxy-server=127.0.0.1:8118
服务端
命令行运行服务端
方法一:
- 在服务器上
cd
到config.json
所在目录: - 运行
ssserver
;
如果想在后台一直运行,可改执行:nohup ssserver > log &
;
方法二:
若不想加载config.json
,可手动运行:
# ssserver -s 监听地址(通常为0.0.0.0) -p 监听端口 -k 密码 -m 加密方法 -t 超时时间(秒)
配合nohup和&可使之后台运行,关闭终端也不影响,例如:
# nohup ssserver -s 0.0.0.0 -p 443 -k a29rw4pacnj2ahmf -m aes-192-cfb -t 600 &
以守护进程形式运行服务端
以上只是启动了客户端的守护进程,如果架设的是服务器,则需要:
# systemctl start shadowsocks-server@foo # systemctl enable shadowsocks-server@foo
加密方法
可选的加密方式:
- aes-256-cfb(Shadowsocks经典、传统的加密算法,也是Shadowsocks的作者推荐过的加密算法,移动平台可能开销稍高)
- aes-128-cfb
- aes-192-cfb
- aes-256-ofb
- aes-128-ofb
- aes-192-ofb
- aes-128-ctr
- aes-192-ctr
- aes-256-ctr
- aes-128-cfb8
- aes-192-cfb8
- aes-256-cfb8
- aes-128-cfb1
- aes-192-cfb1
- aes-256-cfb1
- aes-256-gcm
- aes-128-gcm
- aes-192-gcm
- bf-cfb
- camellia-128-cfb
- camellia-192-cfb
- camellia-256-cfb
- cast5-cfb
- chacha20
- idea-cfb
- rc2-cfb
- rc4-md5
- salsa20
- seed-cfb
加密类别列表参见[1]。 并且可以使用[2]脚本来比较和找出在你机器上运行最快的加密方法。