05-LPB3568针对不同网段实现UDP通信

针对不同网段实现UDP通信

注意事项:两台电脑不要连wifi,需要关闭防火墙!

为了不断网也能通,PCA和PCB电脑必须同时**在各自电脑上执行以下操作:

第一步:PCA(192 电脑)的操作

继续保留你刚才那条命令,确保去 172 的路是对的:

DOS

python 复制代码
route add 172.20.114.0 mask 255.255.255.0 192.168.16.254

第二步:PCB(172 电脑)的操作

他必须在他的电脑上开管理员权限运行:

DOS

python 复制代码
route add 192.168.16.0 mask 255.255.255.0 172.20.114.254

注意: 这里的 172.20.114.254 是 LPB3568 的 eth1 地址。这样他回包时,数据才会顺着 LPB3568 爬回你这边。

  1. 准备工作 & 拓扑结构
    假设规划如下:
    ● 192网段: 192.168.16.254
    ● 172网段: 172.20.144.254
    物理连接:
  2. PC A (192电脑) 用网线插在 LPB3568 的 ETH0 口。
  3. PC B (172电脑) 用网线插在 LPB3568 的 ETH1 口。
    第一步:配置 LPB3568 (作为网关)
    你需要通过串口或者调试口登录到 LPB3568 的 Linux 终端。
    (1) 清除旧 IP (防止干扰)
    先看看当前 IP,如果有 DHCP 获取的乱七八糟的 IP,建议先删掉(或者直接覆盖)。
bash 复制代码
sudo ip addr flush dev eth0
sudo ip addr flush dev eth1

(2) 配置静态 IP (充当两边的网关)

我们将 eth0 设为 192 网段的网关,eth1 设为 172 网段的网关。

  1. 给 eth0 添加一个连接配置,名字叫 'static-eth0'
python 复制代码
sudo nmcli con add type ethernet con-name static-eth0 ifname eth0

(3) 设置静态 IP 和网关 (注意:这里不需要设网关,因为它是网关本身)

python 复制代码
sudo nmcli con modify static-eth0 ipv4.addresses 192.168.16.254/24 ipv4.method manual

(4) 启动这个连接 (这一步会真正应用 IP)

python 复制代码
sudo nmcli con up static-eth0
  1. 建立 eth1 的静态连接配置
python 复制代码
sudo nmcli con add type ethernet con-name static-eth1 ifname eth1
  1. 设置 eth1 的 IP 为
python 复制代码
sudo nmcli con modify static-eth1 ipv4.addresses 172.20.114.254/24 ipv4.method manual
  1. 启用配置(这一步执行后,IP 就会永久生效)
python 复制代码
sudo nmcli con up static-eth1
  1. 开启路由转发 (最关键的一步)
    默认 Linux 是不转发包的,要把开关打开。
python 复制代码
sudo nano /etc/sysctl.conf

#net.ipv4.ip_forward=1

去掉注释,永久生效

(注意:这只是临时生效,重启板子会失效。想永久生效去改 /etc/sysctl.conf)

  1. 关闭防火墙 (防止 Ping 不通)

为了调试方便,先把板子上的防火墙策略清空,允许所有通过。

如果是 iptables

python 复制代码
sudo iptables \-F
sudo iptables \-X

如果有 firewalld

python 复制代码
sudo systemctl stop firewalld

第二步:配置 PC A (192 电脑)

假设这台电脑是 Windows:

  1. 打开 网络连接 -> 以太网属性 -> IPv4。
  2. IP地址: 192.168.16.25(只要不是 .254就行)
  3. 子网掩码: 255.255.255.0
  4. 默认网关: 192.168.16.254 (必须填 LPB3568 的 eth0 地址)
  5. 点击确定。
    第三步:配置 PC B (172 电脑)
    假设这台电脑也是 Windows:
  6. 打开 网络连接 -> 以太网属性 -> IPv4。
  7. IP地址:172.20.144.25
  8. 子网掩码: 255.255.255.0
  9. 默认网关: 172.20.144.254 (必须填 LPB3568 的 eth1 地址)
  10. 重要:关闭 Windows 防火墙。Windows 默认会拦截公用网络的 Ping 和 UDP 入站,为了测试请暂时关闭 PC B 的防火墙。
    第四步:测试连通性 (Ping)
    先别急着测 UDP,先测路通不通。
  11. 在 PC A (192.168.16.25) 上打开 CMD。
  12. 输入:ping 172.20.144.25
  13. 如果能 Ping 通,说明 LPB3568 的路由转发已经成功了!
    (如果 Ping 不通:检查 PC B 的防火墙是否关闭,检查 LPB3568 的 ip_forward 是否为 1)
    第五步:UDP 通信测试
    既然路通了,我们用简单的工具来发 UDP。你是做研发的,我推荐直接用 Python 脚本测,最准。
    场景:PC A 发送,PC B 接收
  14. 在 PC B (接收端 172.20.144.25) 上运行接收脚本:
    创建一个 udp_server.py:
python 复制代码
import socket

\# 绑定本机的所有 IP,监听 8888 端口
sock \= socket.socket(socket.AF\_INET, socket.SOCK\_DGRAM)
sock.bind(('0.0.0.0', 8888))

print("等待接收 UDP 数据...")
while True:
    data, addr\= sock.recvfrom(1024)
    print(f"收到来自 {addr} 的消息: {data.decode()}")
  1. 在 PC A (发送端 192.168.16.25) 上运行发送脚本:
    创建一个 udp_client.py:
python 复制代码
import socket

\# 目标是 PC B 的 IP
TARGET\_IP \= '172.16.20.2'
TARGET\_PORT \= 8888

sock \= socket.socket(socket.AF\_INET, socket.SOCK\_DGRAM)

while True:
    msg\= input("输入要发送的内容: ")
    sock.sendto(msg.encode(), (TARGET\_IP, TARGET\_PORT))
    print("发送成功")

结果:

在 PC A 输入文字,PC B 应该能立马显示出来。

总结 LPB3568 在这里做的事:

  1. PC A 把包发给网关 (LPB eth0)。
  2. LPB 收到包,查路由表,发现目标是 172 网段。
  3. LPB 把包从 eth1 转出去。
  4. PC B 收到包。
    这就是最标准的三层路由模型。
相关推荐
中微极客1 小时前
2026主流AI Agent框架技术选型与性能对比
运维·网络·人工智能
猿的天空5 小时前
机器人双手迎来全栈训练系统:灵初智能EgoSteer让灵巧手无所不能
网络·人工智能·计算机·ai·程序员·机器人·编程
Xzaveir_7775 小时前
OPPO、vivo、荣耀号码认证:多终端拨测矩阵与异常复现
大数据·网络·科技·矩阵·产品经理·ai-native
wuqingshun3141595 小时前
从网络角度来看,用户从输入网址到网页显示,期间发生了什么?
网络
牛马工作号6 小时前
Zigbee 专业详解:从协议到排障
网络·物联网·安全
牛马工作号6 小时前
Wi‑Fi 完全指南:从 802.11 协议到 Wi‑Fi 7、AC+AP 与 Mesh 工程组网
网络·网络协议·智能路由器
智慧光迅AINOPOL6 小时前
智慧工厂全光网怎么扛住AGV与强电磁?光电复合缆与工业级方案
网络·全光网解决方案·全光网·酒店全光解决方案·泛住宿全光网解决方案
JoyCong19987 小时前
手机变身“司令台”!ToDesk AI安卓版上线
网络·人工智能·科技·智能手机·电脑·远程工作·远程操作
a4493153627 小时前
iPhone 基带故障诊断——无服务/搜索不到网络的芯片级维修实录
网络·macos·ios·电脑·iphone
XR1234567887 小时前
园区网络“三网合一“怎么落地?信锐全网智能方案实践
网络