嵌入式学习小组
直播中

is.milk

12年用户 494经验值
私信 关注

有线网卡(eth0)静态IP的配置步骤是怎样的?

有线网卡(eth0)静态IP的配置步骤是怎样的?

回帖(1)

陈墨

2021-12-23 15:28:35
前言

    对于嵌入式设备产品,一般会有一个有线网卡,4G模块网卡或者wifi网卡,当4G模块网卡或者wifi网卡有网络时,怎么
使得另外一个有线网卡网络共享给其他设备上网,这就本博客主要讲解的内容;
一. 专栏目录

本专栏目录如下,按顺序阅读,有助于你的理解。


二、嵌入式设备上网(eth1/ra0)

1、嵌入式设备产品,如果有4G通讯模块或者wifi模块,就可以通过对应模块的网卡上网,
(1)、4G通讯模块(移远EC20):移植4G模块驱动并上网,可以查看博主文章:嵌入式设备路由网络共享开发(2):4G模块驱动移值
(2)、wifi模块(MT7601),移植wifi模块驱动并使用STA模式上网,可以查看博主文章:嵌入式设备路由网络共享开发(3):WIFI驱动(MT7601)的移值
至此,可以通eth1或者ra0网卡上网,能ping www.baidu.com就行。

三、有线网卡(eth0)静态IP的配置
1、修改配置文件配置网卡eth0为静态IP


# vi /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.42.134
netmask 255.255.255.0
gateway 192.168.42.1
dns-nameserver 8.8.8.8
注意:
(1)、【eth0】是我的系统的网卡名,用ifconfig可以查看自己机器的网卡名
(2)、设置为【static】表示静态ip(Linux默认获取ip方式是DHCP,自动获取的)
(3)、最后一句dns-nameserver 8.8.8.8表示重启网卡或者Linux系统之后,会自动在/etc/resolv.conf中添加这个dns
(4)、sudo /etc/init.d/networking restart 重启网卡


2、使用代码配置静态IP
# ifconfig eth0 192.168.100.100 netmask 255.255.255.0


在嵌入式产品中,会改变设备的网口IP地址,这时候就需要在代码逻辑中进行灵活性的配置;


四、iptables配置net路由模式
1、关于iptables的使用,详解查看:嵌入式设备路由网络共享开发(4):iptables详解;


配置net路由模式使用下面命令:


iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISH -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
eth1为已经有网络的网卡,eth0为需要配置上网的有线网卡;


2、开启linux下的网口转发


出于安全考虑,Linux系统默认是禁止数据包转发的。


所谓转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的ip地址将包发往本机另一网卡,该网卡根据路由表继续发送数据包。配置Linux系统的ip转发功能,首先保证硬件连通,然后打开系统的转发功能


cat /proc/sys/net/ipv4/ip_forward,该文件内容为0,表示禁止数据包转发,1表示允许。


这里我设置为1,开启数据包转发:


echo "1" > /proc/sys/net/ipv4/ip_forward
五、开启udhcpd服务器
1、创建/udhcpd_eth0.conf 配置文件


#vi /var/dvr/udhcpd_eth0.conf
start            192.168.100.2
end              192.168.100.99
interface        eth0
opt    router    192.168.100.100
opt    subnet    255.255.255.0
max_leases       99
opt    dns       202.96.134.33
这个配置eth0网卡为udhcpd服务器,可以分配的IP从192.168.100.2--192.168.100.99,路由IP为192.168.100.100,最多可以分配99IP地址,dns为202.96.134.33


注意:这里的dns一定可以上网网卡eth1/ra0的DNS,如果改变了,这里也需要同步改变;


2、启动udhcpd  服务


udhcpd -f /var/dvr/udhcpd_eth0.conf &
五、总结
    至此,当其他设备通过网口接到eth0,外设就可以通过eth0上网,每个嵌入式设备有着不一样的通讯方式,这里单纯是举了一个例子,如果有疑问和意见,欢迎大家留言交流。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分