Centos 7 搭建 Shadowsocks 配置 iptables 规则

写在前面

最近心血来潮,弄了一个VPS来玩,顺便学习一下Linux。玩VPS第一个想到的事就是搭梯子科学上网。

这里搭的第一个梯子,就是Shadowsocks。因为安装和配置都很方便,也是当前比较受欢迎的工具。难怪有那么多人卖ss的帐号。

只不过由于已经肉身翻墙,只能测试出shadowsocks成功连接上后,能带我上日本的google,却不是很确定在墙内能不能用。

如果墙内有便宜的vps,那我倒是可以搭个梯子再翻回来看视频,再也不用为“只限内地播放”的视频找ip了。

以下是安装ss的记录。

安装Shadowsocks

首先,先在VPS上安装ss的服务端,这里用的系统是Centos 7 64bit。

用putty连接上后,由于系统自带python2.7,所以就用pip的安装方法:

    yum install python-setuptools && easy_install pip
    pip install shadowsocks

服务端就算安装完毕了。

客户端从官网上下载。

配置ss和iptables规则

1. 配置和启动Shadowsocks

为了以后查找和修改方便,我选择用配置文件的方式启动ss。首先,创建配置文件:

    vim /etc/shadowsocks.json

添加一下内容:

{
    "server":"111.111.111.111",    #VPS的ip
    "server_port":8388,         #默认端口8388,可以改成别的例如8390
    "local_address": "127.0.0.1",   
    "local_port":1080,          
    "password":"mypassword*&#@", #连接ss的密码
    "timeout":600,              #我用了300
    "method":"aes-256-cfb",     #推荐的加密方式
    "fast_open": false
}

然后就可以用这个配置文件,让ss在后台执行。如果修改的配置文件,可以先停止,再执行:

    ssserver -c /etc/shadowsocks.json -d stop
    ssserver -c /etc/shadowsocks.json -d start

2. 配置iptable规则,开放端口

这里同样适用修改配置文件的方式修改规则(其实是记不住指令):

    vim /etc/sysconfig/iptables

在有ACCEPT的规则下面添加一条开放ss端口的规则,如果前面使用了8388作为端口,那么就添加:

-A INPUT -p tcp --dport 8388 -j ACCEPT

由于这条规则只存储在/etc/sysconfig/iptables这个配置文件内,并没有添加到内存里,所以需要reload一下iptables:

service iptables reload

ps:之前在网上搜到有人也因为防火墙的问题连接不上ss,用修改/etc/sysconfig/iptables的方式添加规则后还是连不上,就是因为没有reload。但是有人居然建议他们执行 iptables -F。这样虽然能连上,但是却把防火墙的规则清除了,相当于在裸奔啊…………

3. 连接测试

由于已经在墙外,只能测试有没有连接成功。

运行ss客户端,按照之前在vps上配置ss的资料填入:

ss-1.png

确定后,在任务栏图标上 启用系统代理,然后可以再打开日志看有没有连接上:

ss-2.png

ss-3.png

这里显示的是timeout,因为ip是假的。其实可以连上,成功的时候显示的是:

[2016-03-31 12:33:13] Shadowsocks started

在vps上查看是否有连接:

    iptables -n -v -L -t filter
    netstat -a

正常情况下能看到有ip连接8388端口。

连接后上google,可以发现google跳转到vps机房所在国家的google网站:

ss-4.png

写在后面

这里只记录了Shadowsocks最基础的配置。如果真要做到开放多个账户拿出去卖,还需要进一步优化。

End.