Ubuntu 16安装shadowsocks-qt5并使用PAC全局代理

Author Avatar
Litcc Posted in Dec 29, 2016 Updated in Feb 06, 2018
  • Read this article on other devices

在Ubuntu系统上安装代理软件shadowsocks 并使用pac代理(具体作用大家应该都能明白)

前言:

1.这个方案不支持个别SSR节点!在Ubuntu上使用有些混淆的节点话,请看这篇文章来使用SSR(如果你有更好的建议欢迎提出来哦!):

Ubuntu 16 shadowsocksr-libev安装

2.首先保持你系统是最新的

sudo apt-get update
sudo apt-get upgrade

一、安装 shadowsocks-qt5

第一种安装方式

shadowsocks-qt5 需要通过PPA源安装,仅支持Ubuntu 14.04或更高版本。
1、设置 PPA 源并安装 shadowsocks-qt5

sudo add-apt-repository ppa:hzwhuang/ss-qt5
sudo apt-get update
sudo apt-get install shadowsocks-qt5

2、安装过程遇到 libappindicator1 依赖问题(dependency problems),而 libappindicator1 又遇到 libindicator7 依赖的解决办法。一并安装 libappindicator1 libindicator7 依赖,再重新安装 shadowsocks-qt5。

sudo apt-get -f install libappindicator1 libindicator7

3、完成后就可以打开 shadowsocks-qt5 啦

第二种安装方式

这上面的呢是使用apt-get直接安装,下面我们介绍第二种使用方式,安装的版本会比上面这样安装的版本高一点。

由于个别的服务商更换了一些其他的加密方式比如CHACHA20-IETF-POLY1305,这种加密方式只有ShadowSocks-Qt5 V3.0.0才加入,由于apt-get上ss-qt5以及不再更新,我们只能去gayhub想办法咯

我们去这里下载最新的版本是后缀为.AppImage的文件哦,同学们别下载错啦

https://github.com/shadowsocks/shadowsocks-qt5/releases

下载好之后把IMG放到自己的文件夹里 然后给权限直接运行,代码如下 (我写这篇文章的时候是这个版本号,你们记得换成最新的哦)

chmod a+x Shadowsocks-Qt5-3.0.0-x86_64.AppImage
./Shadowsocks-Qt5-3.0.0-x86_64.AppImage

在着这里额外的提醒一下如果有出现libstdc++有问题就是版本不对, 升级一下gcc和g++

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install gcc-6
sudo apt install g++-6
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-6

如果你想在第二中安装好后在创建一个桌面快捷方式的话,如下

vim shoadowsocks.desctop

填入以下部分:

[Desktop Entry]
Type=Application
Version=V3.0.0alpha
Encoding=UTF-8
Name=shadowsocks-qt5
Comment=shadowsocks qt application
Icon=shadowsocks
Exec=/home/ddyyll/applications/shadowsocks/Shadowsocks-Qt5-v3.0.0alpha-amd64.AppImage
Terminal=false
StartupNotify=true
Categories=Internet
MimeType=application/shadowsocks

二、配置 shadowsocks-qt5

1、配置项(你也可以直接扫二维码添加)

配置项解释
配置名称「连接」的名称
服务器地址Shadowsocks服务器的IP地址或者域名
服务器端口Shadowsocks服务器的端口
密钥Shadowsocks的加密密钥
本地地址本地代理服务器监听IP地址
本地端口本地代理服务器监听端口
本地服务器类型本地代理服务器的类型
加密方式Shadowsocks的加密方式
超时TCP连接的最长空闲时间(秒)
重置数据流量流量统计中本期的最后一天,超过该天后,本期流量将被重置清零
自动化程序启动时自动连接(Shadowsocks-Qt5启动时自动激活该「连接」)

2、配置完成后点击「连接」

3、测试延迟

选中需要测试的「连接」
点击工具栏上的「测试延迟」按钮(或者通过右键菜单或菜单栏)
测试完成后将在主窗口的「延迟」一栏显示结果,如果服务器在3秒钟之内无响应,则视为超时。

1):延迟测试功能通过对SOCKS连接计时实现(服务器禁止常规的ping不妨碍延迟测试)。

2):错误可能是服务端的shadowsocks未运行或者防火墙配置不当造成的。

4、详细配置说明见 GitHub - Wiki

https://github.com/shadowsocks/shadowsocks-qt5/wiki/使用手册

三、配置全局代理

1、ubuntu 安装 pip
安装pip的方法:

apt-get install python-pip

2、安装GenPAC
GenPAC 是基于gfwlist的代理自动配置(Proxy Auto-config)文件生成工具,支持自定义规则。

sudo pip install genpac
pip install --upgrade genpac

3、下载gfwlist

genpac --pac-proxy "SOCKS5 127.0.0.1:1080" --gfwlist-proxy="SOCKS5 127.0.0.1:1080" --gfwlist-url=https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt --output="autoproxy.pac"

4、GenPAC 可选参数

genpac [-v] [-h] [--init [PATH]] [--format {pac,dnsmasq,wingy}]
       [--gfwlist-url URL] [--gfwlist-proxy PROXY]
       [--gfwlist-local FILE] [--gfwlist-update-local]
       [--gfwlist-disabled] [--gfwlist-decoded-save FILE]
       [--user-rule RULE] [--user-rule-from FILE]
       [--template FILE] [-o FILE] [-c FILE]
       [--pac-proxy PROXY] [--pac-precise] [--pac-compress]
       [--dnsmasq-dns DNS] [--dnsmasq-ipset IPSET]
       [--wingy-adapter-opts OPTS] [--wingy-rule-adapter-id ID]

获取gfwlist生成多种格式的翻墙工具配置文件, 支持自定义规则

optional arguments:
  -v, --version         版本信息
  -h, --help            帮助信息
  --init [PATH]         初始化配置和用户规则文件

通用参数:
  --format {pac,dnsmasq,wingy}
                        生成格式, 只有指定了格式, 相应格式的参数才作用
  --gfwlist-url URL     gfwlist网址,无此参数或URL为空则使用默认地址, URL为-则不在线获取
  --gfwlist-proxy PROXY
                        获取gfwlist时的代理, 如果可正常访问gfwlist地址, 则无必要使用该选项
                        格式为 "代理类型 [用户名:密码]@地址:端口" 其中用户名和密码可选, 如:
                          SOCKS5 127.0.0.1:8080
                          SOCKS5 username:password@127.0.0.1:8080
  --gfwlist-local FILE  本地gfwlist文件地址, 当在线地址获取失败时使用
  --gfwlist-update-local
                        当在线gfwlist成功获取且--gfwlist-local参数存在时, 更新gfwlist-local内容
  --gfwlist-disabled    禁用gfwlist
  --gfwlist-decoded-save FILE
                        保存解码后的gfwlist, 仅用于测试
  --user-rule RULE      自定义规则, 允许重复使用或在单个参数中使用`,`分割多个规则,如:
                          --user-rule="@@sina.com" --user-rule="||youtube.com"
                          --user-rule="@@sina.com,||youtube.com"
  --user-rule-from FILE
                        从文件中读取自定义规则, 使用方法如--user-rule
  -o FILE, --output FILE
                        输出到文件, 无此参数或FILE为-, 则输出到stdout
  -c FILE, --config-from FILE
                        从文件中读取配置信息
  --template FILE       自定义模板文件

PAC:
  通过代理自动配置文件(PAC)系统或浏览器可自动选择合适的代理服务器

  --pac-proxy PROXY     代理地址, 如 SOCKS5 127.0.0.1:8080; SOCKS 127.0.0.1:8080
  --pac-precise         精确匹配模式
  --pac-compress        压缩输出
  -p PROXY, --proxy PROXY
                        已弃用参数, 等同于--pac-proxy, 后续版本将删除, 避免使用
  -P, --precise         已弃用参数, 等同于--pac-precise, 后续版本将删除, 避免使用
  -z, --compress        已弃用参数, 等同于--pac-compress, 后续版本将删除, 避免使用

DNSMASQ:
  Dnsmasq配合iptables ipset可实现基于域名的自动直连或代理

  --dnsmasq-dns DNS     生成规则域名查询使用的DNS服务器,格式: HOST#PORT
                        默认: 127.0.0.1#53
  --dnsmasq-ipset IPSET
                        转发使用的ipset名称, 默认: GFWLIST

WINGY:
  Wingy是iOS下基于NEKit的代理App

  --wingy-adapter-opts OPTS
                        adapter选项, 选项间使用`,`分割, 多个adapter使用`;`分割, 如:
                          id:ap1,type:http,host:127.0.0.1,port:8080;id:ap2,type:socks5,host:127.0.0.1,port:3128
  --wingy-rule-adapter-id ID
                        生成规则使用的adapter ID

genpac 的详细使用说明见 GitHub - Wiki:
https://github.com/JinnLynn/GenPAC

5、设置全局代理
点击:System settings > Network > Network Proxy,选择 Method 为 Automatic,设置 Configuration URL 为 autoproxy.pac 文件的路径,点击 Apply System Wide。
格式如:file:///home/{user}/autoproxy.pac
配置全局代理

安装并配置完毕