在VPS上设置DNS时,优先选择可靠的公共解析器(如1.1.1.1、8.8.8.8),并保证配置是持久化的。对基于systemd的系统,建议修改/etc/systemd/resolved.conf或使用NetworkManager的连接配置。
常见做法是编辑/etc/resolv.conf(注意可能被NetworkManager覆盖),或为DNS服务安装本地缓存(如dnsmasq或< strong>unbound)并转发到DoH/DoT解析器,以减少解析延迟并规避污染。
1)选择公共解析器或部署本地缓存。 2)修改系统解析配置并重启解析服务。 3)用 dig 或 nslookup 验证解析结果是否来自目标解析器。
Linux下可以通过设置路由的metric或使用策略路由(policy routing)控制流量优先级。简单方法是调整默认路由的metric值,metric小的优先级更高。
设置默认路由metric:
ip route replace default via 203.0.113.1 dev eth0 metric 100
查看生效路由:
ip route show
对于按目的地或按源IP分流,使用 ip rule + 多路由表的方式更灵活,可以指定特定流量走指定网关。
在多网卡(或多ISP)场景,建议用策略路由:先创建新的路由表,再用 ip rule 基于源IP、目的IP或fwmark 将流量引导到该表。
1)在 /etc/iproute2/rt_tables 添加新表名。 2)添加表内路由:
ip route add default via 203.0.113.1 dev eth1 table america
3)添加规则:
ip rule add from 10.0.0.2/32 table america
如需按端口或协议分流,可用 iptables -t mangle 标记包(MARK),再用 ip rule based on fwmark。
防止污染的有效方法是使用加密解析(DoH 或 DoT),或在VPS上运行可信递归解析(如unbound)并直接查询权威服务器。
用 dig 指定解析器:
dig @1.1.1.1 example.com +short
用 dig +trace 检查解析链路,使用 traceroute 或 mtr 检测到达目标服务器的路径以确认是否真的在美国出口。
持续监控延迟和丢包是关键。可用工具包括 ping、mtr、Prometheus+Blackbox exporter 等,定期采集到美国目标的延迟与路径变更。
1)基于探测结果写脚本自动切换默认路由或调整metric(例如当主线路丢包或延迟超阈值时切换到备线)。 2)对DNS使用本地缓存并监控解析时间与错误率,必要时切换上游解析器或启用DoH/DoT。
工具清单:dig、traceroute、mtr、iproute2(ip rule/ip route)、iptables(或 nftables)和监控平台(如Prometheus)。
