Shadowsocks

跳转至: 导航, 搜索
注意: 该软件需要一个 VPS 服务器,单架设客户端没用。

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 版。此版本仍在活跃开发以应对墙的最新变化。且具有内存占用小,效率高的优势。

服务器端

安装

注意: 仅支持 Leap 15.1+ 或者 Tumbleweed。不支持 SLE(SUSE 企业版)和旧版 Leap。
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 配置。