Shadowsocks
Shadowsocks 是 v2ex 的 @clowwindy 发明的一种科学上网代理。原来只有 python 版本,被 v2ex 的无聊程序员当作了试验田,于是 nodejs,libev,libuv,go,erlang,csharp,ruby 等各种语言的 fork,以及 android,iOS,Windows,Mac OS X,Linux 甚至 openwrt 的客户端如雨后春笋般萌芽,甚至 chromeapp,docloud 这些移植都已经出现。具体见 Ports and Clients。关于它的讨论主要集中在 v2ex 的 shadowsocks 节点。
原作者的 Shadowsocks 受到不可抗力的影响已经停止开发并删除了源码和下载。一些分支也由于作者没时间更新而停滞死亡。但是总有些分支以及类似的软件仍然在蓬勃发展。目前 openSUSE 上提供的是 C 语言写的 shadowsocks-libev 版。此版本仍在活跃开发以应对墙的最新变化。且具有内存占用小,效率高的优势。
目录
服务器端
安装
sudo zypper install shadowsocks-libev
配置
修改配置文件:
sudo vi /etc/shadowsocks/shadowsocks-libev-config.json
{
"server": "106.187.50.131",
"server_port": 8356,
"local_port": 1080,
"password": "nGexi1702",
"timeout": 600,
"method": "aes-256-cfb"
}
"106.187.50.131" 替换成服务器的实际 IP 地址。详细配置请参见 https://github.com/shadowsocks/shadowsocks/wiki/Configuration-via-Config-File
启动
启动服务:
sudo systemctl start shadowsocks-libev-server@shadowsocks-libev-config
后面的 @shadowsocks-libev-config 是配置文件的名字。你可以创建多个不同的文件,启动不同配置的 shadowsocks。同时运行多个 shadowsocks 服务也是可以的,但它们必须使用不同的配置文件,不同的 server_port 。
设置服务开机启动:
sudo systemctl enable shadowsocks-libev-server@shadowsocks-libev-config
防火墙
如果你的服务器上安装并启用了 SuSEfirewall2 ,就需要更改规则以允许 Shadowsocks 通过。否则客户端和服务器将无法连接。记住上面配置文件中设置的 server_port:
sudo vi /etc/sysconfig/SuSEfirewall2.conf
FW_SERVICES_EXT_TCP="8356"
客户端
安装
配置
所有的 shadowsocks 移植均采用 config.json 配置文件,通常是位于 /etc/shadowsocks 文件夹下,以分支名 + config.json 命名,比如 libev 版的配置文件名为 shadowsocks-libev-config.json。
内容如下:
{ "server":"您的服务器域名或 IP 地址", "server_port":服务器端口, "local_port":本地端口, "password":"密码", "timeout":"600", "method":"aes-256-cfb" }
这里的本地端口是您稍后要在浏览器中设置代理时使用的端口。另外需要留意的是您在 VPS 和您的计算机上的 config.json 配置文件应该是完全相同的,也即:即使您在计算机上使用的是服务器端版本即无图形界面的 shadowsocks,它的作用也还是作为一个客户端,server 依然要填写远程服务器的地址而不是你的本地地址 127.0.0.1。
加密方法
常见问题
AWS/Azure 上的 SLE 无法安装
SLE 的官方源并不包含此软件,OBS 也不提供 SLE 软件包。建议更换虚拟机镜像到 Leap 15.2+ 再安装。
用了一段时间后突然连不上了
墙会识别长时间大流量的海外连接并限流或封锁这个 IP 地址。当你遇到这种情况,最好的办法是联系 VPS 提供商更换 IP 地址,并修改服务器和客户端的 Shadowsocks 配置。