Pages

Saturday, 13 May 2017

Shadowsocks手动添加/编辑 PAC中的网址规则

有时候访问一些网站,可能被墙或者打开很慢,于是想要让这个网站走Shadowsocks代理,但是又不想开全局模式,那么你就需要看下面这个文章了。
其实那,PAC文件就是JavaScript语法,里面有个rules的变量,储存着json格式的数组内容。

在ShadowsocksR中除了pac.txt文件以外,还会有一个 user-rule.txt 的文件(如果没有就新建一个),是单独给用户来添加网址规则的。所以我们只需要编辑这个文件就行了,毕竟pac.txt里面的内容太多,太乱。

编辑 user-rule.txt 文件

首先我们打开和Shadowsocks.exe同文件夹中的 user-rule.txt 文件,当然你也可以通过 右键Shadowsocks托盘图标 >-> PAC >-> 编辑 GFWList 的用户规则 来打开这个文件。
具体的语法我也不是特别懂,所以下面的教程只适合简单的添加和编辑。

比如你想要 ipip.net 这个网站走Shadowsocks代理,那么你就需要添加一个 ipip.net 的网址规则。
例如:
  1. ||ipip.net^
这个规则的意思是,任何以 ipip.net 为主的所有子域名包括自身,同时还有所有的互联网协议(http:// https:// ftp://),都走Shadowsocks代理。
编辑完 user-rule.txt 文件并保存后,记得 右键Shadowsocks托盘图标 >-> PAC >-> 更新PAC为 GFWList ,否则不会生效的。

然后在浏览器中打开 www.ipip.net 可以看到 IP 已经变成Shadowsocks所用的服务器 IP 了。

注意:每一行规则末尾必须加上 ^ 符号,意思是这个规则在这个符号的地方结束。

语法规则如下:

  1. 通配符支持
    比如:*.example.com/*实际书写时可省略*,.example.com/, 和*.example.com/*效果一样
  2. 正则表达式支持
    比如:以\开始和结束,\[\w]+:\/\/example.com\
  3. 例外规则:@@
    比如:@@*.example.com/* 表示@@后面的网址规则不走代理
  4. 匹配地址开始和结尾规则:|
    比如: |http://example.com、example.com| 分别表示以 http://example.com开始和以example.com结束的地址
  5. 全匹配规则:||
    比如: ||example.com 则http://example.com、https://example.com、ftp://example.com 等地址全部过滤
  6. 注释规则:!
    比如: !我是注释233
如果你实在看不懂的话,那么就直接,用 ||xxx.xxx^ 全匹配。
更多user-rule.txt语法规则,可以参考AdBlockPlus过滤规则https://adblockplus.org/zh_CN/filters

当然,如果你嫌麻烦,你可以使用 Proxy SwitchyOmega 扩展(Chrome/Opera),这个添加域名的时候可能会方便一些。

No comments:

Post a Comment