polipo pac

最近又跟墙斗争了,吗的,升级安卓5之后Nexus 5手机特别耗电,最近终于找到原因了。google认为wifi没有连接,所以一直保持3g的连接,然后导致一些服务也在不停连接,然后就很耗电。这TM不能忍。

考虑到手机还要经常上一些国内的网站,一直保持VPN也不是办法。突然发现,android现在支持在连接wifi的时候设置pac,那就爽了。考虑到教育网翻墙快,我就设想设置一个跳板服务器,通过跳板服务器翻墙。又考虑到好多设备要翻墙,可以搞个缓存,于是就用到了polipo

Polipo配置:

因为教育网的服务器不能翻墙,要设置polipo的转发,主要就是转发。之前设置过shadowsocks,直接转发到shadowsocks端口即可。没有shadowsocks,直接使用ssh转发也可以,只要是socks的都行。主要是shadowsocks比较专业。其他设置查看man。

PAC:

既然wifi就支持PAC,就不需要其他翻墙软件了。我尝试过好几种方案。如根据解析的IP是否是国外,根据dns是否能解析等。最后还是觉得根据域名来比较好,网上有个gfwlist。然后将这里面的域名搞出来,但还是不全,比如gvt1.com就不在里面,没有他就不能在google play上下载东西(gvt1.com好像是google的CDN网络)。我还得考虑google scholar的问题,得用tor翻墙,否则会被认为是机器人。最后的PAC见github

现在手机就好了,以前7个小时的电池能用1天了,爽!而且国内网站不卡,完美。

shadowsocks和systemd

起因:

据说国家局域网在4月就开始实施了,我顿时就吓尿了。上个外网要2次NAT不是坑爹吗。加上最近据说IOS的VPN也被封了。我就觉得手机翻墙应该换个方式了。找了找发现shadowsocks最合适,手机也不用root。在学校这个是没有任何问题的,在家速度好像慢一点,估计是出口的时候非教育网审查比较严格。所以我宁可经过学校的电脑翻墙。那么就需要转发。(电脑可以在学校的电脑开个shadowsocks客户端转成sock5,然后接收所有非本地的请求,浏览器可以直接使用)

解决:

转发有很多种方法,比如github上有人给出的iptables和haproxy,我还是用最简单的ssh吧。可是ssh相当于加密两次(shadowsocks加密,ssh转发加密),有点浪费。 ssh -fNqn -L \*:28765:shadow_server:shadow_port server 。连接服务器时,把相应端口和ip改成学校的即可。

维护:

很久之前就想搞搞systemd,但是KDE的开机启动太方便,以至于我根本不想理systemd。回家不登录图形界面就不能利用KDE了。必须得学学。关于systemd的争议已经很久了。我觉得还是systemd更先进,尽管刚开始接触有点复杂,其实还是很容易使用的。最好的学习方式还是看看别人怎么写的。

根据wiki,可到 /etc/systemd/ 和 /usr/lib/systemd/ 找相应的service看看写法。然后根据manservice,大概就能写出开机脚本了。

这次我是用他来启动一个ssh转发的开机脚本。如下: 一般有ssh都是需要以用户模式启动的,因为要用到认证文件。 systemctl --user enable sshforwarding.service

日志:

journalctl 是和systemd配套的。为了查看服务的运行情况,就要查看日志。用 sudo journalctl -F _SYSTEMD_UNIT 找到要查看的服务的名称,然后 sudo journalctl -e _SYSTEMD_UNIT=shadowsocks@shadowsocks.service 就能查看过滤后的日志,查看连接信息。

测试:

现在手机翻墙感觉快了一点,日。不知道是不是心理作用,youtube能流畅看了。希望国家局域网是谣言,日tm。