首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

嵌入式開發板:有線網卡與無線網卡(AP模式)互不通 Ping,路由轉發解決全過程

     編輯:程式設計疑難解答

現象描述

開發板同時掛載有線網卡 eth0 (172.16.148.111) 和 USB 無線網卡 wlan0 (172.16.14.110,AP 模式)。手機連上熱點後,開發板無法 Ping 通手機 IP,兩網卡網段互不相通。嘗試加路由 route add default gw 172.16.1.1 甚至強行同網段仍失敗。

根因分析

Linux 內核默認關閉 IP 轉發,且缺少兩網卡間的 NAT/路由規則。數據包進來了但出不去,或回包找不到路由。

解決步驟

  1. 開啟 IP 轉發:
    echo 1 > /proc/sys/net/ipv4/ip_forward
    # 永久生效修改 /etc/sysctl.conf:net.ipv4.ip_forward=1
  2. 配置 iptables NAT 轉發(假設 eth0 聯網,wlan0 為熱點):
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
    iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
  3. 確保路由表正確:兩網卡各自網段直連路由已由內核自動添加,默認網關指向有線側上游路由器。
  4. 驗證:開發板 Ping 手機 IP,手機 Ping 開發板 wlan0 IP,雙向通順。

參考鏈接

完整排查過程見博客:https://blog.csdn.net/qq_21792169/article/details/51234806

關鍵點:僅加路由不夠,必須 開啟 ip_forward + 配置 NAT/防火牆轉發規則,雙網卡才能真正互通。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved