想向大家介绍下当前 landscape 的分流操作.

建议搭配视频: https://www.bilibili.com/video/BV1Wy26BiEJW

使用其他软件时大多时候应该都是使用其他人配置好的规则进行使用,而有时候其实是需要自定义一些规则,这时需要去改动 yaml 或者 json, 有时候是临时用下就关闭.

landscape 就是为了方便操作而编写的。并且能立即生效.

以下我将使用 DNS 分流进行举例.
当安装完成 landscape 之后,打开分流规则时,只有一条记录也就是当前 LAN 侧的主机访问所有网站时 (因为规则是空的,匹配规则中有提示), 都使用这个默认的 DNS, 并且使用你当前的运营商发出请求:

而在大家常见的使用场景中,需要将某些网站的流量使用特定的 出口 进行访问,比如我这是将 ipleak 单独设置了一个规则,且优先级比默认的规则高 ( 对应 100 和 10000, 越越高 ).

当这样配置时,内网中的主机访问 ipleak 时,将使用这条规则定义的 “出口” 进行访问,并使用特定的 DNS 进行请求,且 DNS 的流量也会使用定义的出口进行发送 ( 此处是使用 容器 dx ). 可以看视频中实际访问的结果,即使与默认规则都是使用 阿里 DNS 但是 访问 ipleak 时,返回的 DNS 列表 IP 是容器所在地的 DNS IP.

所以在 landscape 中就这样轻松实现了分流.

  • 当访问 ipleak 时,使用容器进行处理这个域名的流量,被优先级 100 的规则处理了
  • 当访问 ipleak 时,使用当前默认的运营商网络进行访问,被 10000 的规则处理了

你可以将 ipleak 自定义的域名配置更换成 GeoSite key (landscape 中称为地理关系库) 例如这样:


上方的规则中,指定的 DNS 上游是 Cloudflare. 每条规则你都可以选择使用什么 DNS 服务进行解析.

这样就无需修改 yaml /josn. 并且当你临时不需要时,可以点击启用下的开关关闭,然后就不生效了.

在 landscape 中,你可以不止定义这一组规则。你可以通过新建 Flow 的方式,建立一组新的规则.


  • 当访问 20 规则 下的域名时,使用当前默认的运营商网络进行访问
  • 当访问 其他域名 时,使用容器进行处理这个域名的流量,被 10000 的规则处理了

然后使用 MAC 或者 IP 匹配的方式将你 LAN 下的某些设备独立于其他设备,单独建立一套分流机制。并且 DNS 的缓存也是独立的,不会相互污染.
比如这样是只对 MAC: 00:a0:98:7f:f9:db 主机生效

也就是说:

  • MAC: 00:a0:98:7f:f9:db 的主机访问时,使用 Flow1 中定义的 DNS 规则进行分流
  • 其他主机:按照默认 Flow 中的规则进行分流

其他详细的内容可以观看: https://www.bilibili.com/video/BV1Wy26BiEJW 查看更详细的演示

DNS 上游的定义

GeoSite 的 key 会根据配置的 URL 每天定时更新,并且支持配置多个,下载不了时可以通过上传文件进行手动更新.


📌 转载信息
原作者:
ThisSean
转载时间:
2025/12/29 12:38:23