Ubuntu 22.04下配置路由:仅通过无线网卡wls4传输Outgoing流量,有线网卡eno1保留Incoming流量
Ubuntu 22.04下配置路由:仅通过无线网卡wls4传输Outgoing流量,有线网卡eno1保留Incoming流量
先给你理清楚核心逻辑:入站流量是根据目标IP直接匹配到对应网卡的,所以eno1的公网IP收到的请求(比如SSH、网站访问)本来就会自动走eno1,完全不需要额外调整入站路由。我们只需要把服务器主动发起的所有出站流量默认走wls4,再把wls4的入站流量全挡住,就刚好满足你的需求——既不影响eno1上的服务,又能让更新、API调用这类出站请求走wls4。
第一步:先确认当前网络状态
先看看当前的路由表和网卡信息,心里有数:
- 查看所有路由规则:
ip route show - 查看wls4的DHCP网关(默认路由):
ip route show dev wls4 | grep default - 确认eno1的静态IP配置:
ip addr show eno1
第二步:临时修改默认路由为wls4(先测试效果)
先做临时配置测试,没问题再做持久化:
- 删除当前的默认路由(如果默认是走eno1的话):
sudo ip route del default - 添加新的默认路由,指向wls4的网关地址(把
<wls4网关>换成你刚才查到的地址,比如192.168.1.1):sudo ip route add default via <wls4网关> dev wls4
现在你可以测试一下,比如用curl ifconfig.me,返回的应该是wls4的IP,而不是eno1的公网IP;同时用另一台机器SSH到eno1的公网IP,依然能正常连接,网站访问也不受影响。
第三步:配置防火墙,阻止wls4的所有入站流量
因为你要求wls4不能接受任何入站请求,用ufw来配置最方便:
- 先允许eno1的所有入站流量(保留原有的SSH、网站等服务):
sudo ufw allow in on eno1 - 拒绝wls4的所有入站流量:
sudo ufw deny in on wls4 - 启用ufw(如果之前没开的话):
sudo ufw enable - 查看ufw规则确认:
sudo ufw status verbose
第四步:让路由配置持久化(重启后依然生效)
Ubuntu 22.04用netplan管理网络,我们需要编辑netplan的配置文件来保存路由设置:
- 打开netplan的配置文件(通常在
/etc/netplan/目录下,文件名类似00-installer-config.yaml,根据实际情况调整):sudo nano /etc/netplan/00-installer-config.yaml - 修改配置,确保eno1不设置默认网关,wls4用DHCP自动获取网络并作为默认路由:
network: version: 2 ethernets: eno1: addresses: [xxx.xxx.xxx.xx/24] # 替换成你的eno1静态IP和子网掩码 # 这里不要写gateway4,把默认网关让给wls4 nameservers: addresses: [8.8.8.8, 8.8.4.4] # 可选,用你信任的DNS服务器 wifis: wls4: dhcp4: true access-points: "你的WiFi名称": password: "你的WiFi密码" - 应用配置并生效:
sudo netplan generate && sudo netplan apply
这样重启服务器后,路由规则会自动恢复成我们设置的样子。
第五步:最终验证
- 验证出站流量走wls4:执行
curl ifconfig.me,返回wls4的IP地址 - 验证eno1入站不受影响:用外部机器SSH到eno1的公网IP,能正常登录;访问网站服务也正常
- 验证wls4入站被阻止:尝试用wls4的IP发起SSH或其他连接,应该会被拒绝
备注:内容来源于stack exchange,提问作者sye
相关产品推荐
相关产品推荐

