forked from shadowsocksr-rm/shadowsocks-rss
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
C# Proxy Rule
Akkariiin edited this page Jul 27, 2017
·
1 revision
位于相同目录下的user.rule
以#号开始的一行即为注释,注意#号的前面不得有空格
由任意数量的行组成,除了空行和注释,其它的每行为一条规则,规则之间有先后次序之分,若出现相同的规则,那么后一条规则可覆盖前一条规则,规则有两大类:域名规则和IP段规则
规则匹配结果类型有4种:remoteproxy, localproxy, direct, reject。均可用于以下两大类规则。以上4种结果的含义:
- remoteproxy: 经过SSR服务器连接
- localproxy: 经过本地代理连接,或没有配置本地代理时使用直连连接
- direct: 直连连接
- reject: 拒绝连接
格式: hostname rule
hostname格式支持三种写法:
- 直接写完整域名如 b.com ,此时不匹配a.b.com这类子域名
- 带通配符的如 *.b.com ,此时不匹配b.com,但能匹配a.b.com这类子域名
- 用于匹配此域名及其子域名的 .b.com ,此时任何末尾为 b.com 的域名均匹配
注意, b.com 与 .b.com 是会相互覆盖的(后写的一个有效),如果你需要 b.com 和它的子域名走不同的规则,那么分别写 b.com 和 *.b.com 两条规则即可
域名规则还有一种特殊的rule,例如:
a.com 127.0.0.1
.b.com 123.123.123.123
这种规则相当于给指定域名或一组子域名一个相应的IP,但不直接指定最终结果。最终结果将由IP段规则决定,如果结果是直连,那么将使用此规则所指定的IP来连接。
格式: ip1 ip2 rule
注意,ip2必须大于或等于ip1,此规则应用于包含ip1、ip2及它们之间的所有IP。如果两条不同的IP规则发生IP重叠,那么重叠的那部分以后一条规则为准
利用这个规则可以编写基于黑名单或白名单的IP规则,例如先写:
:: ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff remoteproxy
0.0.0.0 255.255.255.255 remoteproxy
1.0.1.0 1.0.1.255 localproxy
......
前两行这样意味着所有的IP默认走服务器,然后利用后一规则覆盖前一规则来设置不走代理的IP,所以这就是白名单规则。反过来如果所有IP设置为localproxy,那么就是黑名单规则。 规则匹配次序
首先匹配域名,如域名没有匹配的,再去DNS解析,查到IP后,再匹配IP规则,或IP规则也没有匹配,那么最终结果是remoteproxy,即一个空的user.rule文件等于全局