系统对外是全局代理。
若在忽略列表中则直连,否则查询 IP 位置:
若为境内 IP 则直连, 否则查询 IP 是否已在代理列表中:
若 IP 在列表中则远程代理,否则直连,等待直连结果:
若直连正常返回则结束,否则尝试远程代理:
若远程代理断开或重置则结束,否则将此 IP 添加进入代理列表。
若 IP 在忽略列表中则直连,否则查询 IP 位置:
若为境内 IP 则直连, 否则查询 IP 是否已在代理列表中:
若 IP 在列表中则远程代理(远程解析域名),否则直连,等待直连结果:
若直连正常返回则结束,否则尝试远程代理(远程解析域名):
若远程代理断开或重置则结束,否则将此被污染的 IP 添加进入代理列表。
若在忽略列表中则直连,否则查询域名是否在 GeoSite 数据库 cn
和 geolocation-!cn@cn
规则列表中:
若为境内域名则直连, 否则查询域名是否已在代理列表中:
若域名在列表中则远程代理,否则直连,等待直连结果:
若直连正常返回则结束,否则尝试远程代理:
若远程代理断开或重置则结束,否则将此域名添加进入代理列表。
设置路由表:忽略列表直连,代理列表远程代理,境内路由直连,其余路由透明代理。
尝试直连,等待直连结果:
若直连正常返回则结束,否则尝试远程代理:
若远程代理断开或重置则结束,否则将此 IP 添加进入代理路由表,根据用户设置决定是否持久存入代理列表。
若在忽略列表中则直连,否则查询 IP 位置:
若为境内 IP 则直连, 否则查询 IP 是否已在代理列表中:
若 IP 在列表中则远程代理,否则直连,等待直连结果:
若直连正常返回则结束,否则尝试远程代理:
若远程代理断开或重置则结束,否则将此 IP 添加进入代理列表。
透明代理只有 IP 路由。需要另行解决 DNS 污染:
ChinaDNS
SmartDNS
对于不在 cn
和 geolocation-!cn@cn
规则列表中的域名进行远程解析。
RFC3089
用户 DNS 查询请求返回 Fake IP 并记录对应域名,用户通过 Fake IP 请求建立连接。
系统根据 Fake IP 查到对应域名,封装成为本地代理请求进行域名路由。