ARM Linux系统使用双网口的设置方法

2019-07-13 01:31发布

使用双网口有两种情况,以下以MYD-AM335X为例,说明如何同时使用开发板的两个网口。
第一种:不同网段
如果两个网口配置成不同网段,那就很简单,分别把两个网口配置成对应的IP地址,比如eth0连接到路由器上(网关192.168.1.1),eth1连接到本地电脑上(网关169.254.1.1),那么,配置好eth0和eth1的IP地址就可以了:
12ifconfig eth0 192.169.1.100 upifconfig eth1 169.254.1.100 up
在开发板上,通过分别 PING 路由器上其他电脑,以及本地PC的IP地址可以验证是否已经连通:
12ping eth0 192.169.1.99 (路由器上某台电脑 IP)ping eth1 169.254.1.99 (本地电脑 IP)

第二种:相同网段
注意:这个方法暂未验证通过,谨慎使用!
1)配置两个网卡的IP地址为静态IP,
1vi /etc/network/interfaces
输入如下内容:
01020304050607080910111213#iface eth0 inet dhcpauto eth0 iface eth0 inet static         address 192.168.1.250        netmask 255.255.255.0        gateway 192.168.1.1  #iface eth1 inet dhcpauto eth1 iface eth1 inet static         address 169.254.1.250        netmask 255.255.0.0        gateway 169.254.1.1

保存配置信息并重新启动网卡,使配置生效:1/etc/init.d/networking restart
或者1/etc/init.d/S40network restart
2)设置路由表
使用route命设置第一块网卡eth0的路由表:
route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0
设置第二块网卡eth1的路由表:
route add -net 169.254.1.0 netmask 255.255.0.0 dev eth1
使用route命令来观察路由情况: 
1234567routeKernel IP routing tableDestination     Gateway         Genmask         Flags Metric Ref    Use Ifacedefault         169.254.1.1     0.0.0.0         UG    0      0        0 eth1default         192.168.1.1     0.0.0.0         UG    0      0        0 eth0169.254.0.0     *               255.255.0.0     U     0      0        0 eth1192.168.1.0     *               255.255.255.0   U     0      0        0 eth0

通过以下命令可以看到网口的网关:12netstat –rip route show# route -n


3.增加路由规则
# ip route flush table tel 
# ip route add default via 114.80.0.3 dev eth0 src 114.80.0.4 table tel 
# ip ruleadd from 114.80.0.4 table tel此处是设置电信的网关,并可实现让电信的资源访问只从eth0网卡出去# ip route flush table cnc 
# ip route add default via 112.65.0.1 dev eth1 src 112.65.0.2 table cnc 
# ip rule add from 112.65.0.2 table cnc此处是设置联通的网关,并可实现让联通的资源访问只从eth1网卡出去
4.配置networking启动脚本文件 在结尾exit 0之前增加如下内容
# vi /etc/init.d/networkingip route flush table tel 
ip route add default via 114.80.0.3 dev eth0 src 114.80.0.4 table tel 
ip rule add from 114.80.0.4 table telip route flush table cnc 
ip route add default via 112.65.0.1 dev eth1 src 112.65.0.2 table cnc 
ip rule add from 112.65.0.2 table cncexit 0
5,退出并重启网络
# /etc/init.d/networking restart此时再测试机器网络情况,就会发现电信和联通的地址都可以正常访问了。此方法还可以实现让从电信IP过来的请求按照电信路由返回,从网通IP过来的请求从网通路由返回。补充:网上有些大神说如果服务器重启,或者网络服务重启,上述的路由规则就失效了,所以你需要把上面这段命令写入系统启动脚本和网络启动脚本如果是ubuntu/debian,系统启动脚本是/etc/rc.local 
如果是RedHat/centos,系统启动脚本是/etc/rc.d/rc.local如果是ubuntu/debian,网络启动脚本是/etc/init.d/networking 
如果是RedHat/centos,网络启动脚本是/etc/rc.d/init.d/network如果是MYD-SAM9X5开发板,系统启动脚本是/etc/rc5.d/对于系统启动脚本本次并没有做更改只是更改了网络启动脚本,有兴趣的同学可以测试下。
本文出自 “longWind” 博客,请务必保留此出处http://longwind.blog.51cto.com/419072/806302