在家庭或实验室网络环境中,旁路由经常用于科学上网、广告过滤或策略分流。如果希望本地 Linux 设备的所有流量通过旁路由转发,可以通过修改网关和 DNS 来实现。
一、检查当前网络配置
首先查看本机的路由表:
ip route
示例输出:
default via 192.168.3.221 dev ens18
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
192.168.3.0/24 dev ens18 proto kernel scope link src 192.168.3.238 metric 100
192.168.3.1 dev ens18 proto dhcp scope link src 192.168.3.238 metric 100
解释:
192.168.3.238→ 本机 IP。192.168.3.221→ 默认网关,已经指向旁路由。192.168.3.1→ 主路由(ISP 网关),目前只是直连,不再作为默认出口。
从结果可以看到,本机的 默认网关已经成功切换到旁路由。
二、临时修改默认网关
如果当前默认网关不是旁路由,可以通过以下命令修改:
# 删除原默认网关
sudo ip route del default
# 添加新的默认网关为旁路由(假设 IP 是 192.168.3.221)
sudo ip route add default via 192.168.3.221
此方法临时生效,重启网络或系统后会恢复原状。
三、永久修改网关
不同发行版使用的网络管理方式不同,可以通过以下几种方式永久修改。
1. Netplan(Ubuntu 18.04+,Debian 11+ 常见)
编辑 /etc/netplan/01-netcfg.yaml:
network:
version: 2
ethernets:
eth0:
dhcp4: no
addresses:
- 192.168.3.238/24
gateway4: 192.168.3.221
nameservers:
addresses: [192.168.3.221, 8.8.8.8]
应用配置:
sudo netplan apply
2. NetworkManager(桌面版 Linux 常用)
nm-connection-editor
编辑当前连接 → IPv4 → 手动设置网关为旁路由 IP。
DNS 同样设置为旁路由或其他公共 DNS。
3. /etc/network/interfaces(老式 Debian 系统)
编辑文件:
auto eth0
iface eth0 inet static
address 192.168.3.238
netmask 255.255.255.0
gateway 192.168.3.221
dns-nameservers 192.168.3.221 8.8.8.8
重启网络:
sudo systemctl restart networking
四、修改 DNS 以避免泄漏
即使默认网关已切换到旁路由,DNS 仍可能指向主路由(如 192.168.3.1)。检查:
cat /etc/resolv.conf
若需要,修改为:
nameserver 192.168.3.221
这样所有 DNS 查询也会走旁路由,避免泄漏。
五、验证结果
检查默认网关:
ip route | grep default
测试出口 IP:
curl -4 ip.sb
确认 DNS 是否生效:
dig google.com
总结
通过修改默认网关和 DNS,就能让 Linux 设备的所有流量走旁路由。
临时测试可用
ip route命令修改。永久修改需配置 Netplan、NetworkManager 或 interfaces。
别忘了调整 DNS,确保不发生泄漏。
这样一来,Linux 主机即可与局域网内其他设备一样,享受旁路由带来的代理、分流等功能。
评论