和Shadowsocks一起科学上网
拖延症晚期,本来上上个月把新机器折腾好了之后就想写这个内容的,丢到Todo里后就没理它了,今天发现还有一个更早前想写的内容至今也没开始码。 这篇东西呢,没什么干货,只是一个整理,记下如何利用Shadowsocks来科学上网,包括VPS相关的内容。因此,对于不同的VPS提供商、不同的OS可能不适用,可以自行搜索。
VPS搭建服务器¶
稍微讲讲VPS的选择吧,一句话,你选的VPS所在的网络必须能够访问你的目标网站,比如你想通过VPS上Google,那选阿里云你就只会一脸懵逼了。
穷人表示我用的是DigitalOcean,还是最便宜的$5一个月那种,不过也够用了,流量好像是不限制的,带宽貌似是百兆,以下简称DO。
额,毕竟不是软文也不是小白教程,就不截没必要的图了。Droplet选的Ubuntu 14.04,创建完毕后,DO会给你发邮件,里面有VPS的IP以及root用户的密码,用ssh工具(Windows下可以下载putty)连接上去进行如设置root密码等一系列基础的配置后即可:
- *unix:
ssh root@IP
- Windows: 在putty里填写IP,然后点击连接
开启IPv6¶
默认的情况下DO是关闭IPv6的,可以到Droplet的管理页面中开启,系统会为VPS分配相应的IPv6地址,如下图:
接着需要到VPS上配置IPv6,使用ssh连接,编辑 /etc/network/interfaces
,在 auto eth0
后加上下面的内容:
iface eth0 inet6 static
address primary_ipv6_address
netmask 64
gateway ipv6_gateway
autoconf 0
dns-nameservers 2001:4860:4860::8844 2001:4860:4860::8888 209.244.0.3
其中 primary_ipv6_address
和 ipv6_gateway
换成上面那张图里DO分配给你的内容,保存后 service networking restart
重启网络即可,实在不行重启VPS,可以使用 ifconfig
来查看是否配置成功。
在VPS上配置Shadowsocks服务¶
在VPS上配置Shadowsocks实质上就是搭建一个SOCKS5服务,在Ubuntu下安装很容易:
apt-get install python-pip
pip install shadowsocks
安装完后还需要对Shadowsocks进行配置,找个地方创建一个配置文件即可,比如:
mkdir /etc/shadowsocks
vim /etc/shadowsocks/config.json
配置文件的基本内容:
{
"server":"::",
"server_port": 8382,
"local_port": 1080,
"password": "yourpassword",
"timeout": 600,
"method": "aes-256-cfb"
}
稍微解释下:
- server: 指定SOCKS5服务监听的IP,指定为
::
的话可以同时监听IPv4及IPv6。 - server_port: 指定监听的端口。
- password: 客户端连接SOCKS5服务时的密码。
更多的配置可以到Shadowsocks官网查看。
关于服务的启动,ssh连上服务器然后执行下面这个命令:
# 注意配置文件的路径
nohup ssserver -c /etc/shadowsocks/config.json >> /var/log/shadowsocks.log&
关闭服务的话。。不大优雅:
# 利用lsof通过端口号找到pid
lsof -i:port
kill xxx
使用Shadowsocks客户端¶
这里只讲Windows的,OSX上的也基本一样。
客户端的话到Github下载即可,Windows推荐使用Release里的2.5.6,亲测比较妥。
解压后直接启动,在服务器设定里添加服务器即可,填写你在VPS配置的那些内容:
- VPS IP (v4/v6均可)
- 端口、密码、加密方式均按配置文件填
代理模式¶
Shadowsocks的客户端有两种代理模式:PAC及全局模式。PAC就是只代理部分网站,而全局模式是代理所有的网站。
Shadowsocks客户端在本机运行了一个代理服务(实测不止SOCKS5,还有HTTP),默认监听端口为1080(可以通过配置修改)。有了代理服务器,剩下的问题就是将需要的流量转向代理。Shadowsocks根据代理模式来判断如何处理流量,PAC模式会根据PAC列表计算是否要代理,全局模式则全部代理,如果确定要代理,就将流量转向 127.0.0.1:1080
的代理服务,代理服务根据配置连接目标服务器,从而实现科学上网。
在Windows上,Shadowsocks是通过修改 Internet选项->连接->局域网(LAN)设置
中的内容实现流量转发(至本地代理服务),如下图:
当那个checkbox被勾上的时候,Windows会将它判定的LAN流量都经过Shadowsocks的脚本的过滤,这也就导致,你开启全局模式的时候,一些客户端中的浏览器(如QQ)也会被代理,这一定程度上会影响到使用。建议是不勾上,然后在需要的软件中自行设置HTTP代理。
比如说,Chrome中可以安装SwitchSharp这样的插件,设置代理服务器地址为 127.0.0.1:1080
,就可以比较灵活地使用Rule来控制代理了。同理,网易云音乐也可以在工具中设置相关的代理服务器,如下图:
自己可以查看一下使用的软件是否要被代理,比如IDM、迅雷之类的下载软件就可以考虑设置代理。
利用IPv6¶
如果你的运营商支持IPv6的话,建议在客户端配置上增加一个服务器,IP设置为VPS的IPv6 IP。Shadowsocks的服务端程序非常机智,如果你访问的网站是v4站点的话,服务器会在它那边使用v4访问该站,但结果依旧通过v6返回给你。对于校园网用户来说,IPv6一般都是免费的,可以省一笔流量费,并且,v6由于使用人数较少,网络状况也比较好。
PPTP VPN¶
这个是额外的,除了在VPS上搭建Shadowsocks服务以外,你还可以自己去做些别的,这里贴个PPTP VPN的教程。