本项目提供持续更新的中国 IP 地址列表和特定域名列表,并生成可用于 RouterOS 路由器的配置脚本。
- 中国 IP 网段:来自 此网站。
- 特定域名:由 gfwlist 项目维护。
您可以通过以下命令来更新列表并生成 RouterOS 规则脚本:
# 更新列表并生成 RouterOS 规则脚本
make
生成的文件包括:
- CN.rsc:中国大陆的 IPv4 地址段,由 IANA 分配。
- LAN.rsc:内网 IPv4 地址段。
- gfwlist.rsc:从 gfwlist 生成的 RouterOS 脚本,包含特定域名。
- gfwlist_v7.rsc:适用于 RouterOS v7.6 及以上版本的 gfwlist 脚本。
在生成规则前,您可以通过修改 exclude_list.txt
和 include_list.txt
手动剔除或加入特定的域名。
导入中国 IP 网段有助于配置流量分流。在优化网络访问的场景中,可以标记目标 IP 不属于 CN 或 LAN 列表的流量,通过特定路由规则走优化的网络路线。
使用以下脚本将 CN 和 LAN 的 IP 网段导入 RouterOS:
/system script
add dont-require-permissions=no name=cn owner=admin policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="
/tool fetch url=https://raw.githubusercontent.com/ruijzhan/chnroute/master/CN.rsc
import file-name=CN.rsc
file remove CN.rsc
/tool fetch url=https://raw.githubusercontent.com/ruijzhan/chnroute/master/LAN.rsc
import file-name=LAN.rsc
file remove LAN.rsc"
在 PREROUTING
链中,将目标地址不属于 CN 的流量跳转到自定义链,并在自定义链中配置以下规则:
- 匹配目标地址属于 LAN 的流量,直接
RETURN
。 - 对剩余流量根据连接协议和目标端口标记路由。
- 在路由表中将这些流量指向优化网络的网关。
gfwlist 提供了特定域名列表,配合 RouterOS 的正则表达式匹配功能,可以为特定域名和其他域名设置不同的 DNS 服务器,从而优化解析速度。
在 RouterOS 中设置全局变量 dnsserver
来指定无特殊限制的 DNS 服务器(如 8.8.8.8)。以下脚本会在每次系统启动时重新设置 DNS 服务器:
/system scheduler
add name=envs on-event="{\r\
\n :global dnsserver 8.8.8.8;\r\
\n}" policy=read,write,policy,test start-time=startup
使用以下命令查看环境变量:
[admin@RouterBoard] > /system/script/environment/print
Columns: NAME, VALUE
# NAME VALUE
0 dnsserver 8.8.8.8
使用以下命令将 gfwlist 列表导入 RouterOS:
/system script
add dont-require-permissions=no name=gfwlist owner=admin policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="
/tool fetch url=https://raw.githubusercontent.com/ruijzhan/chnroute/master/gfwlist.rsc
/import file-name=gfwlist.rsc
/file remove gfwlist.rsc
:log warning \"gfwlist 域名导入成功\""
注意:RouterOS v7.6 版本新增了 Match Subdomains
选项,可导入 gfwlist_v7.rsc 以提升解析性能。
注意:几千条 DNS 规则可能超出默认缓存 2M 的大小,需将 DNS 缓存大小设为 20560KiB 或更大:
/ip/dns/set cache-size=20560KiB
使用以下命令查看导入的 DNS 解析规则:
/ip/dns/static/print
配置后的 DNS 设置示例如下:
[admin@RouterBoard] > /ip/dns/print
servers: 223.5.5.5,223.6.6.6
dynamic-servers:
use-doh-server:
verify-doh-cert: no
allow-remote-requests: yes
max-udp-packet-size: 4096
query-server-timeout: 2s
query-total-timeout: 10s
max-concurrent-queries: 100
max-concurrent-tcp-sessions: 20
cache-size: 20560KiB
cache-max-ttl: 1w
cache-used: 16957KiB
所有符合规则的域名解析请求将由指定的无特殊限制 DNS 服务器(如 8.8.8.8)处理,其他域名仍由国内 DNS 服务器解析。
如果国内环境中 8.8.8.8 返回的结果依然存在问题,可以通过以下 dst-nat
规则将目标地址为 8.8.8.8 的流量重定向到其他 DNS 服务器:
/ip/firewall/nat
add action=dst-nat chain=output comment=BuyVM dst-address=8.8.8.8 to-addresses=192.168.9.1