网站首页 文章专栏 在linux中使用sslocal与auto pac
在linux中使用sslocal与auto pac
创建于:2018-04-06 16:00:00 更新于:2021-04-15 18:17:52 羽瀚尘 1760
linux设备 pac, sslocal, centos, ubuntu,

近日重新安装了笔记本的系统,换成了centos, 一个linux的发行版,感觉还不错。奈何没有了windows版本的shadowsocks,就暂时没有了自动翻墙的便捷。

科普一下,自动翻墙是依赖于一个PAC文件,里面放着国内访问不了的域名。这样在上网的时候可以只在访问不了的域名才翻墙,而在访问百度这样的国内网站时不翻墙,以提升速度。

虽然目前的电脑是centos系统,但是autopac的配置也同样适用于其他linux系统。

安装shadowsocks

pip install shadowsocks

配置shadowsocks

  1. 在/etc下创建shadowsocks.json配置文件

这个文件可以放在任何地方

sudo touch /etc/shadowsocks.json

然后用vim或者其他编辑器,在shadowsocks.json中加入如下内容:

{
"server":"your_server_ip",
"server_port":your_server_port,
"password":"your_password",
"method":"your_encrypt_method",
"local":"127.0.0.1",
"local_port":your_local_port
}

其中以your_开头的设置,都是按照你的服务器的配置 或者本地配置 来配置的。

安装与配置genpac

pip install genpac

生成pac文件

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

配置系统的网络proxy

命令行配置[20190206更新]

全局代理 由于shadowsocks在本地开启的是socks5代理,而我们的系统使用http或https代理,需要一种在本地对http、https转socks5的方法。

这里提到使用polipo进行转换,而实测不需要,只需要在终端输入以下命令:

export http_proxy="socks5://127.0.0.1:1080/"

可以看到我们在http_proxy中定义了socks5代理,在ubuntu 16.04 desktop版本中实测无需转换即可上网。

pac代理

这里可以看到命令行设置gnomeautoproxy.pac的方法为

gsettings set org.gnome.system.proxy mode 'auto'
gsettings set org.gnome.system.proxy autoconfig-url http://my.proxy.com/autoproxy.pac

实测发现该设置仅对gnome应用实用,命令行无法使用。

GUI界面配置

按如下路径打开代理配置:

[system] settings -> network -> network proxy

选择代理方式为automatic, 配置url填写为

file:///home/your_name/shadowsocks/autoproxy.pac

其中,your_name是需要根据实际情况更改的内容。

Reference: 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

关掉界面就可以愉快地自动pac了。

当然,前提是你有配置好的服务器,本地也开启了sslocal.

另外,发现centos自带的中文输入法一点都不好用,在考虑换成sougou.