首先,双网卡配置的硬件前提是,计算机主板需要有两个网卡接口。接下来,我们将分别对两个网卡进行配置。
一、外网网卡配置 1. 将外网网线插入计算机的其中一个网卡接口。 2. 为外网网卡分配ip地址、子网掩码、默认路由和网关。注意,这里的网关必须是外网的网关。
二、内网网卡配置 1. 将内网网线插入计算机的另一个网卡接口。 2. 为内网网卡分配IP地址、子网掩码和路由。内网网关一般不配置,或者配置为内网中某个可用的IP地址。
需要注意的是,一台设备不能同时配置两个网关,且网关只能配置为外网网关。否则,设备将无法区分外网出口,导致外网访问失败。
以下是一个配置示例:
外网配置: - IP地址:10.61.*** - 子网掩码:255.0.0.0 - 路由:10.61.*** - 网关:10.61.***
内网配置: - IP地址:192.168.*** - 子网掩码:255.255.255.0 - 路由:192.168.0.0
配置完成后,你可以尝试ping内网和外网的IP地址,以验证配置是否成功。如果内网和外网都能成功ping通,说明配置正确。
此外,还有一些常用的网络配置命令,如删除路由、配置IP地址、配置默认网关等,这些命令在网络配置过程中可能会用到。
在网络配置过程中,可能会遇到一些问题。比如,当拔掉网线后,系统不会自动清除IP地址和路由。原因在于拔掉网线后,虽然触发了停止dhcp客户端的流程,但并未同步更新网络信息。为了解决这个问题,可以在停止DHCP客户端的函数中,增加更新网络链接状态的代码。
通过以上步骤,我们可以成功实现双网卡配置,同时访问内外网。当然,这只是其中一种网络结构,实际上,根据实际需求,可以有多种不同的网络结构。希望本文能帮助大家掌握双网卡配置的方法,并在实际应用中举一反三。
在某些特殊场景下,我们可能有这样的网络配置诉求,即:访问内网同时也需要访问外网。
本文主要针对该场景进行梳理,以双网卡配置为例,指导初学者进行网卡配置,达成同时访问内外网。
双网卡配置硬件前提条件
硬件方面:板卡有 2 个网卡。
双网卡配置规则:
连接外网 LAN 口,配置外网网段 IP、子网掩码、路由和网关
连接内网 LAN 口,配置内网网段 IP、子网掩码和路由。
说明:特别要注意,一台设备不能同时配置两个网关,且网关只能配置为外网网关,否则设备将无法区分外网出口,导致外网访问失败。
如下为例
以下示例内外网的 IP 分配如下:(具体以你所在的网络为准)
外网:IP地址10.61.***掩码:255.0.0.0路由:10.61.***网关:10.61.*** 内网:IP地址192.168.***掩码:255.255.255.0路由:192.168.0.0
loLinkencap:LocalLoopback inetaddr:127.0.0.1Mask:255.0.0.0 inet6addr:::1/128Scope:Host UPLOOPBACKRUNNINGMTU:65536Metric:1 RXpackets:15errors:0dropped:0overruns:0frame:0 TXpackets:15errors:0dropped:0overruns:0carrier:0 collisions:0txqueuelen:1000 RXbytes:1320TXBytes:1320 eth0Linkencap:EthernetHWaddr9679:2d88Driverrk_gMAC-dwmac inetaddr:10.61.***Bcast:10.255.255.255Mask:255.0.0.0 inet6addr:fe80:79ff9b88/64Scope:Link UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1 RXpackets:28813errors:0dropped:0overruns:0frame:0 TXpackets:3445errors:0dropped:0overruns:0carrier:0 collisions:0txqueuelen:1000 RXbytes:2706345TXbytes:330787 Interrupt:35 eth1Linkencap:EthernetHWaddrc2621f:20Driversmsc75xx inetaddr:192.168.***Bcast:192.168.***Mask:255.255.255.0 inet6addr:fe80:62ff1f20/64Scope:Link UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1 RXpackets:3282errors:0dropped:0overruns:0frame:0 TXpackets:488errors:0dropped:0overruns:0carrier:0 collisions:0txqueuelen:1000 RXbytes:280938TXbytes:55862 #route KernelIProutingtable DestiNATionGatewayGenmaskFlaGSMetricRefUseIface default10.61.***0.0.0.0UG000eth0 10.0.0.0*255.0.0.0U000eth0 10.61.****255.255.252.0U000eth0 192.168.0.0*255.255.255.0U000eth1
本例中设置 192 网段为内网,10 网段为外网,经过以上配置后,ping 内网(例如:192.168.***)正常,ping 外网(例如:ping www.baidu.com)正常。说明同时访问内外网成功。
Ping192.168.***(192.168.***):56(84)bytes. 64bytesfrom192.168.***:icmp_seq=1ttl=0time=1ms 64bytesfrom192.168.***:icmp_seq=2ttl=0time=2ms 64bytesfrom192.168.***:icmp_seq=3ttl=0time=1ms ---192.168.***pingstatistics--- 3packetstransmitted,3received,0%packetloss round-tripmin/avg/max=0/0/1ms #ping10.61.*** Ping10.61.***(10.61.***):56(84)bytes. 64bytesfrom10.61.***:icmp_seq=1ttl=0time=0ms 64bytesfrom10.61.***:icmp_seq=2ttl=0time=0ms 64bytesfrom10.61.***:icmp_seq=3ttl=0time=1ms ---10.61.***pingstatistics--- 3packetstransmitted,3received,0%packetloss round-tripmin/avg/max=0/0/0ms
知识总结
以上已经成功完成了双网卡配置,下面我们来看下相关配置命令。 ①相关调试命令
删除路由:
routedel-net10.0.0.0netmask255.0.0.0deveth1 routedel-net10.61.***netmask255.255.252.0deveth1
删除默认网关:
routedeldefault
配置 IP:
ifconfigeth0192.168.***//给eth0网卡配置IP地址 ifconfigeth0192.168.***netmask255.255.255.0//给eth0网卡配置IP,并加mask ifconfigeth0192.168.***netmask255.255.255.0broadcast192.168.120.255
配置默认网关:
routeadddefaultgw10.61.***deveth0`
配置路由:
routeadd-net10.61.***netmask255.255.252.0deveth0`②路由及 IP 在板子保存位置
路由保存位置:/proc/net/route
#catproc/net/route IfaceDestinationGatewayFlagsRefCntUseMetricMaskMTUWindowIRTT eth00000000001C43D0A000300000000000000 eth00000000A000000000001000000000FF000 eth000C43D0A00000000000100000FCFFFF000 eth10000A8C000000000000100000FFFFFF000
静态 IP 保存位置:
#catdata/ethernet/eth0 DEVICE=eth0 BOOTPROTO=STATIC iPadDR=10.61.*** NETMASK=255.255.255.0 GATEWAY=10.61.*** ROUTE=10.61.*** #catdata/ethernet/eth1 DEVICE=eth1 BOOTPROTO=STATIC IPADDR=192.168.***23 NETMASK=255.255.255.0 GATEWAY=192.168.*** ROUTE=192.168.***
动态 IP(dhcp)保存位置 :/data/dhcp/eth0.result
#cat/data/dhcp/eth0.result IP4166695241810.61.***10.61.***255.255.252.010.61.10.610.60.10.610.61.****
问题总结
【问题现象】:拔掉网线不自动清除 IP 和路由 【原因分析】:拔掉网线后事件触发 StopDhcpClient,但未同步更新网络信息。
【解决方案】:在下面中的StopDhcpClient() 函数中增加更新网络链接状态。
foundationcommunicationnetmanager_extservicesethernetmanagersrcethernet_management.cpp
index9b03ad8..0c4f708100644 #NAME? #NAME? @@-569,6+569,7@@voidEthernetManagement::StopDhcpClient(conststd::string&dev,sptr通过以上示例指导,相信大家已经掌握了如何配置双网卡达成同时访问内、外网的目的,该示例相对简单,重点是需要将默认网关配置为外网网关。同时,通过该示例,相信大家也熟练掌握了网络配置相关命令。 当然,同时访问内网和外网的网络结构,不止示例中一种,大家也可以不断尝试,举一反三。StopDhcpClient(dev,false); +devState->RemoteUpdateNetLinkInfo(); devState->SetDhcpReqState(false); } @@-581,4+582,4@@voidEthernetManagement::SetDevState(sptr &devState,constst devState->SetLowerUp(lowerUp); } }//namespaceNetManagerStandard -}//namespaceOHOS Nonewlineatendoffile +}//namespaceOHOS
审核编辑:汤梓红