03 以太网
1 以太网接口概述
GM-3568JHF 开发板配备了 2 个千兆以太网接口,基于 RK3568J 处理器的集成以太网控制器实现,支持高速网络通信和多网络环境应用。
| 接口 | 类型 | 设备名 | 接口标准 | 最大速率 | 功能描述 |
|---|---|---|---|---|---|
| ETH0 | RGMII | end0 | IEEE 802.3 | 1000Mbps | 主以太网接口,默认网卡 |
| ETH1 | RGMII | end1 | IEEE 802.3 | 1000Mbps | 辅助以太网接口 |
2 网络连通测试
- ETH0 RGMII: end0,默认网卡,通常用于主要网络连接
- ETH1 RGMII: end1,辅助网卡,可用于网络冗余或隔离
- 连接方式: 使用网线将开发板对应网口、PC 机连接至同一个路由器或交换机
进入文件系统,执行如下命令获取 IP 以及查看网口配置信息。
root@linaro-alip:/# ifconfig
end0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.49.176 netmask 255.255.255.0 broadcast 192.168.49.255
inet6 fe80::561a:9e84:b5bd:20d7 prefixlen 64 scopeid 0x20<link>
ether 32:b0:e6:11:eb:7e txqueuelen 1000 (Ethernet)
RX packets 3236 bytes 236287 (230.7 KiB)
RX errors 0 dropped 569 overruns 0 frame 0
TX packets 745 bytes 63449 (61.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 69
end1: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 36:b0:e6:11:eb:7e txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 67执行如下命令测试网口连接外网是否正常,以访问 "www.baidu.com" 为例。"-I" 代表指定网口,不加 "-I" 则使用默认网卡。可按 "Ctrl + C" 终止 ping 命令。
root@linaro-alip:/# ping www.baidu.com -I end0
PING www.a.shifen.com (183.2.172.42) 56(84) bytes of data.
64 bytes from 183.2.172.42 (183.2.172.42): icmp_seq=1 ttl=50 time=9.28 ms
64 bytes from 183.2.172.42 (183.2.172.42): icmp_seq=2 ttl=50 time=8.77 ms
64 bytes from 183.2.172.42 (183.2.172.42): icmp_seq=3 ttl=50 time=8.65 ms
64 bytes from 183.2.172.42 (183.2.172.42): icmp_seq=4 ttl=50 time=8.83 ms
64 bytes from 183.2.172.42 (183.2.172.42): icmp_seq=5 ttl=50 time=8.63 ms
64 bytes from 183.2.172.42 (183.2.172.42): icmp_seq=6 ttl=50 time=8.73 ms
--- www.a.shifen.com ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5007ms
rtt min/avg/max/mdev = 8.630/8.813/9.275/0.216 ms
root@linaro-alip:/# ping www.baidu.com -I end1
PING www.a.shifen.com (183.2.172.42) 56(84) bytes of data.
64 bytes from 183.2.172.42 (183.2.172.42): icmp_seq=1 ttl=50 time=8.35 ms
64 bytes from 183.2.172.42 (183.2.172.42): icmp_seq=2 ttl=50 time=8.88 ms
64 bytes from 183.2.172.42 (183.2.172.42): icmp_seq=3 ttl=50 time=9.07 ms
64 bytes from 183.2.172.42 (183.2.172.42): icmp_seq=4 ttl=50 time=8.91 ms
64 bytes from 183.2.172.42 (183.2.172.42): icmp_seq=5 ttl=50 time=8.67 ms
64 bytes from 183.2.172.42 (183.2.172.42): icmp_seq=6 ttl=50 time=8.66 ms
64 bytes from 183.2.172.42 (183.2.172.42): icmp_seq=7 ttl=50 time=8.78 ms
64 bytes from 183.2.172.42 (183.2.172.42): icmp_seq=8 ttl=50 time=8.41 ms
--- www.a.shifen.com ping statistics ---
8 packets transmitted, 8 received, 0% packet loss, time 7011ms
rtt min/avg/max/mdev = 8.352/8.716/9.068/0.230 ms3 TCP 带宽测试
1)服务端
在开发板上联网安装 iperf3 工具,执行如下命令:
root@linaro-alip:/# sudo apt update
root@linaro-alip:/# sudo apt install iperf3开发板做服务端,执行以下命令:
root@linaro-alip:/# iperf3 -s
-----------------------------------------------------------
Server listening on 5201 (test #1)
-----------------------------------------------------------2)客户端
windows 的 iperf3 工具可以在测试工具包中获取。
在 windows 系统中打开 powershell,进入 iperf3 工具所在路径下 windows 做客户端发送数据,执行以下命令:
.\iperf3.exe -c 192.168.137.149 // 192.168.137.149 为服务端 IP 地址3)测试结果
- 服务端
root@linaro-alip:/# iperf3 -s
-----------------------------------------------------------
Server listening on 5201 (test #1)
-----------------------------------------------------------
Accepted connection from 192.168.49.85, port 53618
[ 5] local 192.168.49.245 port 5201 connected to 192.168.49.85 port 53619
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 112 MBytes 936 Mbits/sec
[ 5] 1.00-2.00 sec 112 MBytes 937 Mbits/sec
[ 5] 2.00-3.00 sec 112 MBytes 939 Mbits/sec
[ 5] 3.00-4.00 sec 112 MBytes 938 Mbits/sec
[ 5] 4.00-5.00 sec 112 MBytes 937 Mbits/sec
[ 5] 5.00-6.00 sec 111 MBytes 931 Mbits/sec
[ 5] 6.00-7.00 sec 111 MBytes 929 Mbits/sec
[ 5] 7.00-8.00 sec 111 MBytes 930 Mbits/sec
[ 5] 8.00-9.00 sec 111 MBytes 933 Mbits/sec
[ 5] 9.00-10.00 sec 111 MBytes 929 Mbits/sec
[ 5] 10.00-10.00 sec 265 KBytes 885 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.00 sec 1.09 GBytes 934 Mbits/sec receiver
------------------------------------------------------------ 客户端

4 高级网络配置
4.1 静态IP配置
1)临时配置(重启后失效)
# 配置 ETH0 静态 IP
sudo ifconfig end0 192.168.1.100 netmask 255.255.255.0 up
# 添加默认网关
sudo route add default gw 192.168.1.1 end0
# 配置 DNS
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf2)永久配置
编辑网络配置文件:
# 编辑网络接口配置
sudo nano /etc/network/interfaces
# 添加以下内容
auto end0
iface end0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.4.4
auto end1
iface end1 inet static
address 192.168.2.100
netmask 255.255.255.04.2 网络桥接配置
创建网络桥接,实现两个网口的桥接:
# 安装桥接工具
sudo apt-get install bridge-utils
# 创建网桥
sudo brctl addbr br0
# 添加网口到网桥
sudo brctl addif br0 end0
sudo brctl addif br0 end1
# 启用网桥
sudo ifconfig br0 up
# 配置网桥 IP
sudo ifconfig br0 192.168.1.100 netmask 255.255.255.04.3 VLAN 配置
配置 VLAN 以实现网络隔离:
# 安装 VLAN 工具
sudo apt-get install vlan
# 加载 8021q 模块
sudo modprobe 8021q
# 创建 VLAN 接口
sudo vconfig add end0 100
sudo vconfig add end0 200
# 配置 VLAN 接口 IP
sudo ifconfig end0.100 192.168.100.1 netmask 255.255.255.0 up
sudo ifconfig end0.200 192.168.200.1 netmask 255.255.255.0 up5 网络监控和诊断
5.1 网络状态监控
# 查看网络接口统计信息
cat /proc/net/dev
# 查看网络连接状态
netstat -tuln
# 查看路由表
route -n
# 查看 ARP 表
arp -a
# 实时监控网络流量
sudo iftop -i end05.2 网络性能测试
1)带宽测试
# 服务器端(开发板)
iperf3 -s -p 5201
# 客户端(PC)
iperf3 -c 192.168.1.100 -p 5201 -t 30 -i 1
# UDP 测试
iperf3 -c 192.168.1.100 -u -b 1000M -t 102)延迟测试
# ping 测试
ping -c 100 -i 0.01 192.168.1.1
# 使用 hping3 进行高精度测试
sudo hping3 -c 1000 -i u100 192.168.1.15.3 网络抓包分析
# 安装 tcpdump
sudo apt-get install tcpdump
# 抓取指定网口的数据包
sudo tcpdump -i end0 -w capture.pcap
# 实时查看数据包
sudo tcpdump -i end0 -n
# 过滤特定协议
sudo tcpdump -i end0 tcp port 806 故障排除
1)网口无法连接
检查步骤:
# 检查网口状态
sudo ethtool end0
# 检查网线连接
sudo ethtool end0 | grep "Link detected"
# 检查驱动加载
lsmod | grep stmmac
# 重启网络服务
sudo systemctl restart networking2)网速慢问题
可能原因和解决方案:
# 检查网口协商速度
sudo ethtool end0 | grep Speed
# 强制设置千兆速度
sudo ethtool -s end0 speed 1000 duplex full autoneg off
# 检查网络拥塞
sudo netstat -i
# 优化网络参数
echo 1 > /proc/sys/net/ipv4/tcp_window_scaling3)丢包问题
诊断和解决:
# 查看丢包统计
cat /proc/net/dev | grep end0
# 检查网络缓冲区
cat /proc/sys/net/core/netdev_max_backlog
# 增加缓冲区大小
echo 5000 > /proc/sys/net/core/netdev_max_backlog4)IP冲突问题
解决方案:
# 检查 IP 冲突
sudo arping -D -I end0 192.168.1.100
# 释放和重新获取 IP
sudo dhclient -r end0
sudo dhclient end0