我以前问过这个问题,但没有得到正确的答案。我有一台经常更换网络的 Debian 机器,所以我依赖 DHCP,无法设置静态路由。因此 DCHP 自动创建两条 IP 路由:默认路由(0.0.0.0/0 → 网关)和一个用于本地网络(例如 10.1.0.0/16 → 网关)。我的问题是我想通过 WireGuard 路由我的所有流量。这会导致 WireGuard 路由 (0.0.0.0/0 → wg0) 和本地路由重叠。本地的(例如 10.1.0.0/16)更具体,因此更受欢迎。有没有办法抑制这些路由器的创建?这几天我一直在寻找解决方案...
DHCP 是计算机用来从路由器获取 IP 地址的协议。路由器以计算机的 IP 地址、路由器的 IP 地址和子网大小进行响应,以便计算机知道它们的 IP 地址以及如何将数据包转发到 Internet。
子网大小由安装路由器的人决定。网络中的所有客户端设备都应使用相同的子网大小以避免出现细微问题。
但是,如果您仍想删除本地子网路由,则需要设置另一个路由来告诉网络堆栈如何将数据包发送到您的路由器。您需要在 DHCP 客户端中创建一个钩子来执行以下操作:
示例 IP 地址:
路由器 192.168.10.1 计算机 192.168.10.2
192.168.10.0/30
。192.168.10.0/30
子网的路由。即使使用这种方法,您的家庭网络和您正在使用的网络连接之间仍然可以有地址重叠。我个人通过
172.16/12
在我的家庭网络中使用空间子网解决了这个问题。据我所知,它是网络中使用最少的前缀,因此不太可能发生冲突。尽管实现本地网络路由的缩小是可能的,但我不建议这样做,它会产生令人讨厌的副作用。
如果我是你,我会简单地重新编号我的本地网络,这样就不太可能发生冲突。
我现在通过创建一个可执行文件为我解决了这个问题:
在 /etc/network/if-up.d/ 中。我知道解决方案不是很好,但我还没有找到更好的解决方案。