嗯..Shadowsocks很好用

    话说原来是把VPS把在Linode的日本节点的,当时网速还是可以的,就在前段时间(其实是今年过年前了- -! )突然发现大陆所有地方都ping不通了…这,你懂的,但是我又没有发什么和谐的东东,只能让Linode管理员给换一个IP了,Linode的管理员还是比较nice的,发了一个ticket很快就给我换了另外一个日本节点的IP,居然还被天朝给封了,这让连换了几个IP还是不行,最后只能让他给我迁移到US的节点了,在Fremont,看到Last login:那一刻眼泪都要流出来了呀.后来太知道好像日本的节点大多都被封掉了,在US没有被封但是延时好高啊,打一个命令半秒才显示出来,好在用shadowsocks的速度还行.

    之前都直接用ssh爬梯子,之前也说过容易被ISP封端口,每半个月换一次端口实在不能忍受,看到好多人推荐用ss,自己试了试确实不错

    ss安装比较简单啦,需要python环境,具体安装过程不表,去github上看看一下就会了,主要是还有多个平台上的client,比较方便

    启动server还需要带一些参数,包括用户名密码什么的,像我怎么懒记东西的人怎么记得了这么多参数,而且在cmd中带用户名密码不太安全,ps一下就看到了,还好可以用-c指定配置文件,得配置文件的可见性调到只有root可见就好了

    这是我的配置文件/etc/shadowsocks.json

    

{

    "server":"0.0.0.0",

    "server_port":your-port,

    "local_address": "127.0.0.1",

    "local_port":1080,

    "password":"xxxxxxxx",

    "timeout":300,

    "method":"aes-256-cfb",

    "fast_open": true,

    "workers": 5

}

      看到我开了5个worker来跑,fast_open这个参数默认是false的,这里官网上写了这个是开启TCP Fast Open配置,这个据说打开TCP连接的速度会快一些(没感觉….),不过这里需要kernel 3.7+,然后设置echo 3 > /proc/sys/net/ipv4/tcp_fastopen ,Linode不错的一点就是会给你的VPS升级到更新的kernel,我的现在的版本是4.0.2

    配置好之后就可以开启了,ss的server名字就叫ssserver..安装好后应该在你的/usr/bin目录下

    root下执行

    ssserver -c /etc/shadowsocks.json –pid-file /your-pid-path/shadowsocks.pid –log-file /your-log-path/ssserver.log -d start

    pid和log文件目录可以不需要加上,默认的话我也不知道在哪^_^

    这里需要注意加上-d.以后台程序.不然–pid-file和–log-file参数会不起作用,log会直接打在stdout上

    嗯..一切看上去好像很美满的梯子,终于有一天,我再也没有办法忍受隔着太平洋的半秒延迟了,刚好又记得,Linode官网上说15年会上线singapore节点,到官网上看新建的VPS已经可以选singapore了,马上发ticket给管理员说帮忙迁移VPS到singapore,他会问你这样你的IP原来的IP会原来改变,要你确认是否需要迁移,必须是呀!!数据迁移过来大概算了1个多小时

    迁移完boot server,才发现原来ss没有写入开机启动,安装ss时又没有提供.service文件(我用的CentOS7),自己写一个吧,照着之前编译php时生成的php-fpm.service copy一份

    

[Unit]

Description=Shadowsocks

After=syslog.target network.target

[Service]

Type=simple

PIDFile=/your-pid-path/shadowsocks.pid

ExecStart=/usr/bin/ssserver -c /etc/shadowsocks.json –pid-file /your-pid-path/shadowsocks.pid –log-file /your-log-path/ssserver.log -d start

ExecReload=/bin/kill -USR2 $MAINPID

[Install]

WantedBy=multi-user.target

    主要看ExecStart变量啦,比较容易看懂,文件保存为ssserver.service后cp到/usr/lib/systemd/system/目录下,注意用root权限(systemctl大法好啊~如果用是red hat 6或者以下的就是ini.d,用的是ini.d脚本.这里我就不说了)

    然后systemctl start ssserver如果目录没有写错的话就可以看到ss已经启动啦

    需要开机启动用systemctl enable sserver

    大功告成,有人说用VPN多省事呀,不用搞这么一大堆东西,好像VPN比较容易被封吧??而且VPN一代理就是全局的,挂个QQ什么的就不需要梯子了吧,ss主要还是浏览网页的时候用,开一个client然后chrome用proxy switchyOmega(proxy switchysharp的进化版)就好啦.而且ss在windows/OS X/Linux/Android/iOS下都有客户端,配置也方便,呃…iOS的客户端未越狱的情况下好像不能全局代理吧..那就开个pptpd吧

    

Leave a Reply

Your email address will not be published. Required fields are marked *