Ubuntu 22.04.1 LTS 配置指定LPD/LPR打印服务器走WiFi、其余流量走以太网的需求
嗨,我来帮你搞定这个网络路由配置的问题!针对你要让特定LPD/LPR打印服务器的流量走WiFi、其余所有流量走以太网的需求,我整理了两种实用方案,你可以根据自己的情况选:
前提准备
先确认下你的两个网络接口名称,打开终端输入:
ip link show
一般以太网接口会是eth0/enp0s3这类,WiFi接口是wlan0/wlp2s0,记好这两个名称后面要用。另外要确保以太网是默认路由(也就是大部分流量默认走它),可以用ip route show default查看,如果默认路由是WiFi的,后面要调整优先级或者手动修改。
方案一:静态路由配置(打印服务器IP固定的情况)
如果你的打印服务器IP是固定的,直接配置静态路由最省心:
获取打印服务器的IP:用终端解析它的URL,比如:
nslookup 你的打印服务器URL # 或者用dig dig 你的打印服务器URL从输出里找到服务器的IP地址,比如
192.168.1.100。获取WiFi接口的网关:输入以下命令,找到WiFi接口对应的默认网关:
ip route show dev 你的WiFi接口名称比如输出里的
default via 192.168.0.1 dev wlan0,这里的192.168.0.1就是WiFi网关。添加静态路由:让打印服务器的流量单独走WiFi网关:
sudo ip route add 打印服务器IP/32 via WiFi网关IP dev 你的WiFi接口名称举个例子:
sudo ip route add 192.168.1.100/32 via 192.168.0.1 dev wlan0验证路由是否生效:输入以下命令,看看输出是不是显示走WiFi接口:
ip route get 打印服务器IP设置开机自动生效:上面的路由重启后会消失,要持久化的话,编辑Netplan配置文件(一般在
/etc/netplan/目录下,比如00-installer-config.yaml):
找到WiFi的配置段,添加routes部分,比如:network: ethernets: eth0: dhcp4: true metric: 100 # 给以太网设更低的metric,确保默认流量走它 wifis: wlan0: dhcp4: true access-points: "你的WiFi名称": password: "你的WiFi密码" routes: - to: 192.168.1.100/32 via: 192.168.0.1 version: 2保存后执行
sudo netplan apply生效,重启后路由会自动加载。
方案二:脚本自动更新路由(打印服务器IP可能变化的情况)
如果打印服务器的IP是动态的(比如用的是动态域名),那可以写个脚本自动解析IP并更新路由:
创建脚本文件:在终端里输入:
nano print-server-route.sh把下面的内容粘贴进去,记得替换里面的
你的打印服务器URL和你的WiFi接口名称:#!/bin/bash # 配置参数 PRINT_SERVER_URL="你的打印服务器URL" WIFI_IFACE="你的WiFi接口名称" # 解析打印服务器IP SERVER_IP=$(nslookup $PRINT_SERVER_URL | grep -oP 'Address: \K\d+\.\d+\.\d+\.\d+') if [ -z "$SERVER_IP" ]; then echo "出错了:无法解析打印服务器的IP地址" exit 1 fi # 获取WiFi网关 WIFI_GATEWAY=$(ip route show dev $WIFI_IFACE | grep default | grep -oP 'via \K\d+\.\d+\.\d+\.\d+') if [ -z "$WIFI_GATEWAY" ]; then echo "出错了:无法获取WiFi接口的网关" exit 1 fi # 删除旧的路由(如果存在) sudo ip route del $SERVER_IP/32 2>/dev/null # 添加新路由 sudo ip route add $SERVER_IP/32 via $WIFI_GATEWAY dev $WIFI_IFACE echo "路由更新成功:打印服务器IP $SERVER_IP 已设置为走WiFi接口 $WIFI_IFACE(网关 $WIFI_GATEWAY)"按
Ctrl+O保存,Ctrl+X退出。给脚本加执行权限:
chmod +x print-server-route.sh测试脚本:
sudo ./print-server-route.sh运行后会提示路由更新成功,你可以再用
ip route get 打印服务器IP验证。设置自动运行:如果想让脚本开机自动执行,或者定期更新(比如IP可能经常变),可以用crontab:
- 编辑crontab:
sudo crontab -e - 如果要开机运行,添加一行:
@reboot /home/你的用户名/print-server-route.sh - 如果要每小时更新一次,添加:
0 * * * * /home/你的用户名/print-server-route.sh
保存退出后,crontab就会自动执行脚本了。
- 编辑crontab:
额外注意事项
- 确保以太网的路由优先级比WiFi高:可以在Netplan配置里给以太网加
metric: 100,WiFi加metric: 200(数值越小优先级越高),这样系统默认会把所有非指定的流量走以太网。 - 如果配置后还是有问题,可以检查防火墙规则,确保WiFi接口允许LPD/LPR的流量(默认是515端口)。
备注:内容来源于stack exchange,提问作者MRule

