Ubuntu16.04下实现全局代理(ss+genpac)

在Ubuntu系统下,实现科学上网有以下几种方案:

1.SS配合使用Polipo实现终端中的代理,同时在系统设置中修改全局全局网络环境

2.SS配合SwitchOmega插件实现谷歌浏览器中的代理(也有关于火狐浏览器的设置)

3.SS配合genpac实现系统全局代理(推荐!!!)

本文主要讲解第3种方法(因为第3种方法是我唯一成功实现的,而且相比较其他两种方法,也是比较简单的)

(1)首先是安装shadowsocks,这个可以使用pip安装,若无则需要安装pip工具包:

然后安装shadowsocks:

安装完成后,在终端输入 sslocal检测是否安装成功

(2)然后新建配置文件config.json,写入以下内容,并保存至本地某路径下:

然后执行

若设置成功,则会出现以下提示:

《Ubuntu16.04下实现全局代理(ss+genpac)》

 

ps:也可以安装GUI版本的shadowsocks,这里放上github地址,具体方法可参考此博客

(3)此时虽然SS已经连接成功,但是还需要系统配置代理才能使用

先需要安装genpac工具(基于gfwlist的代理自动配置(Proxy Auto-config)文件生成工具,支持自定义规则,github地址):

然后进入你要生成配置文件的存放目录:

执行:

没毛病的话,大部分人这里会报错(~~~)

然后可以执行

ps:也可以直接把gfwlist.txt下载到本地,然后执行以下命令

成功之后会在该目录下生成一个autoproxy.pac文件。然后打开System Settings->Hardware->Network->Network proxy,将Method设置为Automatic,,然后Configuration URL中填写autoproxy.pac文件路径,这里注意路径格式:

然后点击Apply system wide,并输入root密码即可

《Ubuntu16.04下实现全局代理(ss+genpac)》

(4)接着安装一个privoxy代理工具,实现终端内socks5转换为http/https,进而将http/https请求转发给ss,实现终端内的代理:

安装好后编辑privoxy的配置文件,在/etc/privoxy/目录下:

在文档中搜索“listen-address”(即监听地址),找到如下一行:listen-address localhost:8118 确保它没有被注释(如果这一行有#号,就手动删除)。

再查找“forward-socks5t”,找到如下一行:forward-socks5t / 127.0.0.1:1080 . 同样确保它没有被注释。如果没有这一行,就手动添加(注意最后1080之后还有一个点)

然后保存退出,执行:

来启动privoxy

ps:不同平台做法可能不同,具体可以查阅官网。(P.S. 之后每次修改了配置文件后,都要执行sudo service privoxy restart来重启服务)

最后,再配置/etc/profile:

然后执行 source /etc/profile,再执行curl www.google.com ,若返回的是所抓取到的谷歌网页页面内容,则说明配置成功

《Ubuntu16.04下实现全局代理(ss+genpac)》

(5)若感觉每次打开代理都需要输入命令sslocal -c /xxx/config.json很麻烦的话,可以向rc.local文件中添加开机启动命令

(6)至此,完成!

参考文章(鸣谢):

https://blog.csdn.net/bingyu9875/article/details/54600691#title-2

https://blog.csdn.net/qq_27803491/article/details/58233565

https://blog.csdn.net/yanzi1225627/article/details/51121507

点赞
  1. alan说道:

    :biggrin:谢谢!安装步骤走,成功了!

发表评论

电子邮件地址不会被公开。 必填项已用*标注