Ubuntu Desktop 下使用shadowsocks协议实现pac

使用gost连接shadowsocks server

这里使用gost当shadoswsocks client 是因为系统里有些程序不支持SOCK5,我们可以
使用gost把SOCK5 转成HTTP代理
首先下载gost
wget https://github.com/ginuerzh/gost/releases/download/v2.4/gost_2.4_linux_amd64.tar.gz
下载之后解压文件
压缩包里面就只有一个gost文件,把这个文件mv 到/bin目录下
新建一个systemd unit file

cat >> /lib/systemd/system/gost.service <<EOF
[Unit]
Description=Gost Client Service
After=network.target
[Service]
Type=simple
User=nobody
ExecStart=/bin/gost -L http://127.0.0.1:1080 -F ss://aes-256-cfb:password@ip:port
[Install]
WantedBy=multi-user.target
EOF

启动gost,并设置成开机启动

systemctl daemon-reload
systemctl start gost.service
systemctl enable gost.service

如果正常没报错的话可以ps看到gost进程和1080/tcp端口开放

生成pac file

使用genpac生成pac file
github项目地址:https://github.com/JinnLynn/genpac
安装genpac
pip install genpac

安装好之后执行

mkdir ~/shadowsocks
genpac --proxy="PROXY 127.0.0.1:1080" --gfwlist-proxy="PROXY 127.0.0.1:1080" -o ~/.config/shadowsocks/autoproxy.pac --gfwlist-url="https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt"

网络代理 - 自动设置
url 是生成pac file的路径

验证

打开浏览器设置成使用系统代理
访问百度 搜索关键字 ip
访问Google 搜索关键字 ip
查看自己的外网ip
如果两个ip不一样则配置成功

自动更新pac文件

linux下可以使用cron定时任务的方式实现自动更新pac文件
执行crontab -e添加下面任务

0 12 * * * /usr/local/bin/genpac --format=pac --pac-proxy="PROXY 127.0.0.1:1080" --gfwlist-local=~/.config/shadowsocks/autoproxy.pac --gfwlist-update-local -o ~/.config/shadowsocks/autoproxy.pac >/dev/null 2>&1

参考文章: http://blog.leanote.com/post/sxdeveloper/Ubuntu%E4%B8%8B%E8%AE%BE%E7%BD%AEShadowsocks%E7%9A%84%E9%9D%9E%E5%85%A8%E5%B1%80%E4%BB%A3%E7%90%86%EF%BC%88PAC%E8%87%AA%E5%8A%A8%E4%BB%A3%E7%90%86%EF%BC%89

文章作者: j0ck1e
文章链接: https://blog.j0ck1e.com/2017/12/25/pac/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 j0ck1e's blog