一、前言
网口数据转发,需要2个网口,设置在不同网段,可以将转发设备做为硬件防火墙,控制数据的流入流出,缺点就是外部设备要匹配中间转发设备的网络IP为网关,需要关闭防火墙。
目录
二、环境
RK3588(linux5.10.66+debian/ubuntu/麒麟是桌面文件系统)
调试笔记本window10,安装常用工具winscp,xshell,finalshell,secureRTP等等
VMware17+Ubuntu20.04源码开发环境(这里就依赖于各个硬件平台的厂家提供资料了)
三、正文
方式一:deepseek
1. 检查网络接口配置
确保 eth0 和 eth1 的 IP 地址和子网掩码配置正确。
查看接口配置:
ip addr show eth0
ip addr show eth1
示例输出:
eth0 应该配置为 192.168.0.1/24。
eth1 应该配置为 192.168.1.1/24。
如果配置不正确,可以使用以下命令重新配置:
sudo ip addr add 192.168.0.1/24 dev eth0
sudo ip addr add 192.168.1.1/24 dev eth1
2. 检查 IP 转发是否启用
确保 IP 转发功能已启用。
cat /proc/sys/net/ipv4/ip_forward
如果输出为 0,表示未启用。
启动sudo sysctl -w net.ipv4.ip_forward=1
应用配置sudo sysctl -p
方式二:其他AI和渠道方式
1.验证场景说明
在麒麟系统(主机B)上配置网络转发,使主机A与主机C通过B实现相互ping通。
主机A:IP 地址192.168.1.58,网关指向192.168.1.101(主机B的接口2)。
主机B(麒麟系统):
接口2(如eth1):IP 192.168.1.101,连接主机A。
接口1(如eth0):IP 192.168.0.100,连接主机C。
主机C:IP 地址192.168.0.201,网关指向192.168.0.100(主机B的接口1)。
2.配置步骤
步骤1:配置主机B的网络接口
ifconfig eth1 192.168.1.101
ifconfig eth0 192.168.0.100
步骤2:启用IP转发功能(默认是开启)
查看是否开启cat /proc/sys/net/ipv4/ip_forward如果输出为 0,表示未启用
临时生效 :echo 1 > /proc/sys/net/ipv4/ip_forward
永久生效:echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p # 应用配置
步骤3:配置防火墙规则(iptables)
允许流量在主机A和主机C之间通过B转发:
# 允许所有转发流量(根据需求细化规则)
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT # 从eth0 到eth1
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT # 从eth1 到eth0
# 允许ICMP(ping)包
iptables -A FORWARD -p icmp -j ACCEPT
# 如果不需要NAT,可跳过此步;若需要地址转换(如跨网段),则添加NAT规则:
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# 保存规则 (麒麟系统没有这个文件,可能需要创建,之后需要在开机脚本中启动)
iptables-save > /etc/iptables/rules.v4
步骤 4:配置主机A和主机C的网关(在A和C的电脑设备IP地址网关设定,不是设置B的,不要给B发送命令,A的例如有数据采集盒,加上命令设置网关,C的笔记本要跨网关发送,也要在IP设置里更改网关,笔记本电脑要关闭防火墙,linux设备也要关闭)
主机A:ip route add default via 192.168.1.101 # 网关指向主机B的eth1
主机C:ip route add default via 192.168.0.100 # 网关指向主机B的eth0
步骤 5:验证连通性
A ping C:ping 192.168.0.201 A ping B1:ping 192.168.0.100 (都未通)(虽然未通,但是网络调试助手可以互相收发数据)
C ping A:ping 192.168.1.58 ping 192.168.1.158 C ping B1:ping 192.168.1.101(都通)
3.故障排查
检查IP转发是否启用:sysctl net.ipv4.ip_forward # 应输出 `net.ipv4.ip_forward = 1`
检查防火墙规则:iptables -L FORWARD -nv # 查看是否允许ICMP和转发,能够查看数据报数和流量
抓包分析:tcpdump -i eth0 icmp、tcpdump -i eth1 icmp(安装sudo apt-get install tcpdump)
sudo tcpdump -i eth1 host 192.168.1.158 and host 192.168.0.201
检查路由表:ip route show # 确认主机A/C的默认网关指向B
外部电脑C ping A内部ip
四、结语
嵌入式设备很强大,功能很多,需要逐步发掘和使用,在需求中开发,在开发中应用,在应用中需求
今天连续肝了10篇文章,累了困了,最后一篇了,赶紧写完睡大觉
不图啥,就是总结,信息和经验都是我自己总结的,加班干也不给钱算我自己的,嘿嘿,也有AI的功劳, 不涉密,愿意咋分享就咋分享,愿意开源就开源。希望能帮助到需要的人。