Linux 安装 Shadowsocks 进行科学上网

作为一个天朝的开发者,不会科学上网是不行的。特别是技术信息,百度相较 Google 来说,其搜索结果少的可怜,且重复性极高。所以科学上网对于开发者就显得极其重要。

虽然科学上网方式很多,不过本篇的主角是 Shadowsocks,相信不少人都用其搭建公司或者个人的 VPN。本文将详述 Shadowsocks 的安装、配置等。

安装

除了安装服务端步骤与 Linux 的发行版有关外,其他步骤均适用绝大部分发行版,除非你的发行版不包含 systemd

CentOS

本步骤需要 git,可以通过以下命令安装:yum install git nss curl

$ yum install python-setuptools && easy_install pip
$ pip install git+https://github.com/shadowsocks/shadowsocks.git@master

配置

配置是一个 JSON 文件 /etc/ssserver.json

{
    "server": "0.0.0.0",
    "server_port": 8388,
    "local_address": "127.0.0.1",
    "local_port": "1080",
    "password": "123456",
    "port_password": {
        "8381": "foobar1",
        "8382": "foobar2"
    }
    "timeout": 300,
    "method": "aes-256-cfb",
}
参数 说明
server 服务器地址
server_port 服务器端口
local_address 本地地址
local_port 本地端口
password 密码
port_password 如果需要多用户密码,可以设置该参数,但是可能会与 server_portpassword 冲突,确保只保留一种方式。
timeout 超时时间,秒
method 加密方式,可以通过 ssserver --help 查看支持的方式

启动

配置完成后,先启动服务并测试下能否正常运行:

$ ssserver -c /etc/ssserver.json
INFO: loading config from /etc/ssserver.json
2019-04-28 18:17:30 INFO     loading libcrypto from libcrypto.so.10
2019-04-28 18:17:30 INFO     starting server at 0.0.0.0:8388

如果配置正确,应该可以看到上述启动信息,紧接着我们安装客户端进行科学上网,至于客户端,由于官网被墙,我们可以到 Github 上搜索下载(Release),这里就不详述了。

如果一切正常,我们会看到以下类似的信息,如果连接不上服务端,一般是配置问题,请仔细检查服务器地址、端口、密码和加密方式等。

2019-04-28 18:20:01 INFO     connecting 8.8.8.8:53 from 125.89.51.147:28374
2019-04-28 18:20:01 INFO     connecting 8.8.8.8:53 from 125.89.51.147:28377
2019-04-28 18:20:01 INFO     connecting 172.217.163.234:443 from 125.89.51.147:28378
2019-04-28 18:20:02 INFO     connecting www.google.com.hk:443 from 113.106.120.102:46412

服务

最后当测试没有毛病后,自然是新建一个服务,使其开机自启动。

先创建一个 systemd 的 service 配置 /etc/systemd/system/ssserver.service

[Unit]
Description=Shadowsocks Server
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
Type=simple
PIDFile=/var/run/ssserver.pid
ExecStart=/usr/bin/ssserver -c /etc/ssserver.json
Restart=on-failure
RestartPreventExitStatus=1

开机自启

$ systemctl enable ssserver

启动服务

$ systemctl start ssserver

大功告成!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据