网卡故障和NFS服务超时

http://my.oschina.net/coolfire368/blog/292742

网卡故障:弹出界面eth0: 错误:没有找到合适的设备:没有找到可用于链接System eth0


http://www.java123.net/v/983769.html

【解决】NFS服务器使用showmount –e命令



<think>我们正在讨论的是当客户端有多个网卡,并且USB网卡不是默认路由时,是否需要配置路由表。根据之前的引用讨论,我们可以得出以下结论: 1. 在多个网卡的环境中,系统默认会根据路由表的最长匹配原则来选择出口接口。如果USB网卡对应的目标网段没有明确的路由条目,那么发往该网段的流量可能会被错误地路由到其他接口(比如默认路由指向的接口),导致通信失败。 2. 引用[3]中给出了一个实际案例:PC有双网卡,主板网卡连接公网(192.168.186.0/24),USB网卡连接AC(172.16.81.0/24)。为了访问AC下挂的AP(172.16.1.0/24),PC上配置了静态路由:172.16.1.0/24指向172.16.81.1(即AC的地址)。这说明在多个网卡且目标网络不在直连网段时,必须手动添加路由。 3. 引用[2]提到,在使用外置USB网卡时,需要额外添加路由规则,并且需要将这些规则写入开机脚本,以确保每次启动都能正确配置。 4. 引用[1]解释了路由器的查表规则:递归查找最长匹配。同样适用于主机的路由选择。如果主机没有到达目标网段的路由,数据包将被丢弃。 因此,当存在多个网卡且USB网卡不是默认路由时,**必须手动配置路由表**,将发往NFS服务器所在网段的数据包定向到USB网卡接口。 ### 具体配置步骤 1. **查看当前路由表**: ```bash route -n # 或 ip route show ``` 2. **添加静态路由**(假设NFS服务器在`192.168.7.0/24`网段,USB网卡接口名为`usb0`): ```bash sudo ip route add 192.168.7.0/24 dev usb0 ``` 3. **设置路由优先级**(可选,避免影响默认路由): ```bash # 添加metric值(数值越大优先级越低) sudo ip route add 192.168.7.0/24 dev usb0 metric 100 ``` 4. **永久生效配置**(不同系统方法不同): - **Linux (NetworkManager)**: 编辑`/etc/NetworkManager/system-connections/`下的连接配置文件,添加路由部分。 - **Linux (netplan)**: 在`/etc/netplan/`配置文件中添加: ```yaml routes: - to: 192.168.7.0/24 via: 0.0.0.0 # 直连网络无需网关 metric: 100 on-link: true ``` - **Windows**: 使用管理员命令提示符: ```cmd route add 192.168.7.0 mask 255.255.255.0 0.0.0.0 if <USB网卡接口索引> metric 100 ``` 5. **验证路由**: ```bash ip route get 192.168.7.1 # 查看访问NFS服务器的具体路由 ``` ### 为什么需要手动设置? - 当主机有多个网卡时,系统默认只配置直连网段的路由(即每个网卡对应的网段)。对于非直连网段,需要管理员手动添加静态路由或通过动态路由协议学习。 - 如果NFS服务器所在的网段不是USB网卡的直连网段(例如通过USB网卡连接的路由器后面有其他子网),则需要添加指向该网段的路由,并指定下一跳(如引用[3]中的例子)。 ### 故障案例 如果未配置路由: - 尝试访问NFS服务器时,系统可能尝试通过默认路由(如Wi-Fi或以太网)转发请求,导致无法到达。 - 出现`No route to host`或连接超时错误。 > **结论**:在多个网卡环境下使用USB网卡连接NFS服务器时,**必须手动配置路由表**,明确指定目标网段通过USB网卡接口转发[^2][^3]。 §§相关问题§§ 1. 如何为USB网卡配置持久化静态路由? 2. Windows系统如何查看网卡接口索引? 3. 如何测试数据包是否通过指定网卡传输? 4. 多网卡环境下NFS挂载失败如何诊断? 5. Linux中如何设置不同网卡的路由优先级?</think>是的,**当客户端存在多个网卡且USB网卡不是默认路由时,必须手动配置路由表**。以下是详细分析配置指南: ### 🔧 **必须配置路由表的原因** 1. **多网卡路由冲突** 当客户端有多个活跃网卡(如以太网+Wi-Fi+USB网卡)时,系统默认选择**最长匹配或默认路由**。若USB网卡目标网段未显式定义,NFS流量可能被错误路由到其他接口[^1]。 2. **路由优先级问题** 非默认路由接口(如USB网卡)的流量可能被高优先级路由(如默认网关)劫持,导致NFS通信失败[^3]。 3. **直连网络特殊性** USB网卡直连的NFS服务器通常位于隔离网段(如`192.168.7.0/24`),该网段不会出现在系统自动生成的路由中[^4]。 --- ### 📝 **路由表配置步骤** #### 1. **添加USB网卡专属路由** ```bash # Linux/Android sudo ip route add 192.168.7.0/24 dev usb0 metric 100 # Windows route add 192.168.7.0 mask 255.255.255.0 0.0.0.0 if <USB网卡接口索引> metric 100 ``` - `192.168.7.0/24`:NFS服务器所在网段 - `metric 100`:降低优先级,避免影响默认路由[^3] #### 2. **验证路由规则** ```bash # 查看路由表 ip route show | grep usb0 # 预期输出:192.168.7.0/24 dev usb0 scope link metric 100 # 测试路径 traceroute -i usb0 192.168.7.1 ``` #### 3. **持久化配置(开机自动生效)** ```bash # Linux: 编辑/etc/network/interfaces auto usb0 iface usb0 inet static address 192.168.7.2 netmask 255.255.255.0 post-up ip route add 192.168.7.0/24 dev usb0 metric 100 # Android: 通过init脚本实现[^2] service set_usb_route /system/bin/sh /etc/set_usb_route.sh class main user root oneshot ``` --- ### ⚠️ **关键注意事项** 1. **路由优先级** 确保USB网卡路由的`metric`值高于默认路由(如默认路由metric=50,USB设为100),防止干扰主网络[^4]。 2. **防火墙规则** 开放USB网卡NFS端口: ```bash iptables -A INPUT -i usb0 -p tcp --dport 2049 -j ACCEPT ``` 3. **ARP绑定(防IP冲突)** 在USB直连场景中添加静态ARP: ```bash arp -s 192.168.7.1 00:e0:4c:36:06:63 -i usb0 # 引用[4]中的MAC地址 ``` --- ### 🌰 **实际案例解析** > 引用[3]中的多网卡环境: > - 主板网卡:`192.168.186.118`(默认路由) > - USB网卡:`172.16.81.100`(接AC设备) > **手动添加路由**: > ```bash > route add 172.16.1.0 mask 255.255.255.0 172.16.81.1 # 强制172.16.1.0/24走USB网卡 > ``` > 此配置确保访问`172.16.1.198`(AP)的流量定向到USB接口[^3]。 --- ### ✅ **验证配置生效** ```bash # 查看NFS流量走向 tcpdump -i usb0 port 2049 # 应显示NFS数据包 # 对比不同接口 tcpdump -i eth0 port 2049 # 应无NFS数据包 ``` > **结论**:在多网卡环境中,**必须显式配置路由表**将NFS流量定向到USB网卡,否则系统会按默认路由转发导致通信失败[^1][^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值