首页 > 其他分享 >如何在OpenHarmony上进行双网卡设置

如何在OpenHarmony上进行双网卡设置

时间:2023-02-13 13:36:13浏览次数:63  
标签:OpenHarmony bytes 192.168 10.61 255.255 设置 255.0 双网卡 eth0

前言

在某些特殊场景下,我们可能有这样的网络配置诉求,即:访问内网同时也需要访问外网。 本文主要针对该场景进行梳理,以双网卡配置为例,指导初学者进行网卡配置,达成同时访问内外网。

双网卡配置硬件前提条件:

硬件方面:板卡有2个网卡。 双网卡配置规则:1、连接外网LAN口,配置外网网段IP、子网掩码、路由和网关;2、连接内网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

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope: Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:15 errors:0 dropped:0 overruns:0 frame:0
TX packets:15 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1320 TX bytes:1320
eth0 Link encap:Ethernet HWaddr 96:d0:79:2d:9b:88 Driver rk_gmac-dwmac
inet addr:10.61.*** Bcast:10.255.255.255 Mask:255.0.0.0
inet6 addr: fe80::94d0:79ff:fe2d:9b88/64 Scope: Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:28813 errors:0 dropped:0 overruns:0 frame:0
TX packets:3445 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2706345 TX bytes:330787
Interrupt:35
eth1 Link encap:Ethernet HWaddr c2:5c:62:d7:1f:20 Driver smsc75xx
inet addr:192.168.*** Bcast:192.168.*** Mask:255.255.255.0
inet6 addr: fe80::c05c:62ff:fed7:1f20/64 Scope: Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3282 errors:0 dropped:0 overruns:0 frame:0
TX packets:488 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:280938 TX bytes:55862
# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.61.*** 0.0.0.0 UG 0 0 0 eth0
10.0.0.0 * 255.0.0.0 U 0 0 0 eth0
10.61.*** * 255.255.252.0 U 0 0 0 eth0
192.168.0.0 * 255.255.255.0 U 0 0 0 eth1

本例中设置192网段为内网,10网段为外网,经过以上配置后,ping内网(例如:192.168.***)正常,ping外网(例如:ping www.baidu.com)正常。说明同时访问内外网成功

Ping 192.168.*** (192.168.***): 56(84) bytes.
64 bytes from 192.168.***: icmp_seq=1 ttl=0 time=1 ms
64 bytes from 192.168.***: icmp_seq=2 ttl=0 time=2 ms
64 bytes from 192.168.***: icmp_seq=3 ttl=0 time=1 ms
--- 192.168.*** ping statistics ---
3 packets transmitted, 3 received, 0% packet loss
round-trip min/avg/max = 0/0/1 ms
# ping 10.61.***
Ping 10.61.*** (10.61.***): 56(84) bytes.
64 bytes from 10.61.***: icmp_seq=1 ttl=0 time=0 ms
64 bytes from 10.61.***: icmp_seq=2 ttl=0 time=0 ms
64 bytes from 10.61.***: icmp_seq=3 ttl=0 time=1 ms
--- 10.61.*** ping statistics ---
3 packets transmitted, 3 received, 0% packet loss
round-trip min/avg/max = 0/0/0 ms

知识总结: 以上已经成功完成了双网卡配置,下面我们来看下相关配置命令。 1、相关调试命令 1)删除路由

route del -net 10.0.0.0 netmask 255.0.0.0 dev eth1
route del -net 10.61.*** netmask 255.255.252.0 dev eth1

2)删除默认网关

route del default

3)配置IP

ifconfig eth0 192.168.*** //给eth0网卡配置IP地址
ifconfig eth0 192.168.*** netmask 255.255.255.0 //给eth0网卡配置IP,并加mask
ifconfig eth0 192.168.*** netmask 255.255.255.0 broadcast 192.168.120.255

4)配置默认网关

route add default gw 10.61.*** dev eth0`

5)配置路由

route add -net 10.61.*** netmask 255.255.252.0 dev eth0`

2、路由及IP在板子保存位置: 1)路由保存位置:/proc/net/route

# cat proc/net/route
Iface Destination Gateway Flags RefCnt Use Metric Mask MTU Window IRTT
eth0 00000000 01C43D0A 0003 0 0 0 00000000 0 0 0
eth0 0000000A 00000000 0001 0 0 0 000000FF 0 0 0
eth0 00C43D0A 00000000 0001 0 0 0 00FCFFFF 0 0 0
eth1 0000A8C0        00000000        0001    0       0       0       00FFFFFF        0       0       0

2)静态IP保存位置

# cat data/ethernet/eth0
DEVICE=eth0
BOOTPROTO=STATIC
IPADDR=10.61.***
NETMASK=255.255.255.0
GATEWAY=10.61.***
ROUTE=10.61.***
# cat data/ethernet/eth1
DEVICE=eth1
BOOTPROTO=STATIC
IPADDR=192.168.***23
NETMASK=255.255.255.0
GATEWAY=192.168.***
ROUTE=192.168.***

3)动态IP(dhcp)保存位置 :/data/dhcp/eth0.result

# cat /data/dhcp/eth0.result
IP4 1666952418 10.61.*** 10.61.*** 255.255.252.0 10.61.10.6 10.60.10.6 10.61.*** * 

问题总结: 【问题现象】:拔掉网线不自动清除IP和路由 【原因分析】:拔掉网线后事件触发StopDhcpClient,但未同步更新网络信息; 【解决方案】: 在foundation\communication\netmanager_ext\services\ethernetmanager\src\ethernet_management.cpp 的StopDhcpClient()函数中增加更新网络链接状态。

index 9b03ad8..0c4f708 100644
#NAME?
#NAME?
@@ -569,6 +569,7 @@ void EthernetManagement::StopDhcpClient(const std::string &dev, sptr<DevInterfac
{
NETMGR_EXT_LOG_D("EthernetManagement StopDhcpClient[%{public}s]", dev.c_str());
ethDhcpController_->StopDhcpClient(dev, false);
+ devState->RemoteUpdateNetLinkInfo();
devState->SetDhcpReqState(false);
}
@@ -581,4 +582,4 @@ void EthernetManagement::SetDevState(sptr<DevInterfaceState> &devState, const st
devState->SetLowerUp(lowerUp);
}
} // namespace NetManagerStandard
-} // namespace OHOS
\ No newline at end of file
+} // namespace OHOS

通过以上示例指导,相信大家已经掌握了如何配置双网卡达成同时访问内、外网的目的,该示例相对简单,重点是需要将默认网关配置为外网网关。同时,通过该示例,相信大家也熟练掌握了网络配置相关命令。当然,同时访问内网和外网的网络结构,不止示例中一种,大家也可以不断尝试,举一反三。

本文作者:软通动力HOS

想了解更多关于开源的内容,请访问:​

​51CTO 开源基础软件社区​

​https://ost.51cto.com/#bkwz​

标签:OpenHarmony,bytes,192.168,10.61,255.255,设置,255.0,双网卡,eth0
From: https://blog.51cto.com/harmonyos/6053967

相关文章

  • video设置mix-blend-mode后造成的问题
    在项目,有个业务需要展示一个视频,video标签设置src后,发现一个1个,视频下方有一块黑色的,百度后,对视频进行样式处理,增加【mix-blend-mode:screen】,这一加,就造成了2个问题,经过排......
  • Debian系统设置热键“Setup Hot Keys”报错“Window manager Openbox isn’t supporte
    当点击菜单--Preferences--SetupHotKeys选项时,弹出一个窗口并且显示WindowmanagerOpenboxisn’tsupportednow,sorry.大概意思是:“现在不支持窗口管理器Openbo......
  • mysql中IFNULL(字段名,默认值) 给null设置默认值
    SELECTIFNULL(字段名,默认值) as别名 FROM表名;......
  • 【Java UI】HarmonyOS中心率传感器采样时间间隔设置Interval不生效
    【问题描述】HarmonyOSJavaUI开发中需要定时获取传感器数据,但是传感器的采样时间间隔即采样率并不明确。【问题分析】1、JavaUIAPI文档中有两个API可以获取传感器采样......
  • 多线程2(设置线程名,同步代码块:给线程加锁)
    继承,不能继承父类的构造方法,如果想要使用,需要重写构造器,然后调用super关键字,就可使用父类的构造方法了(setName方法)给线程设置名字,1用setName方法,2构造器方法   同......
  • Linux基础命令-date设置时间
    前言    服务器上的时间往往要用到这个命令,而date命令能修改的不仅仅是时间,还可以修改时区,同步大厂的时间等。一、date命令的介绍    date命令来自于英文单......
  • formData上传文件无需设置Content-Type
    用FormData在提交数据时候,会自动设置Content-Type。无论提交普通字段,还是上传文件,都无需自行设置 Content-Type。尤其在上传文件时候,自行设置 Content-Type:multipar......
  • Linux基础命令-alias设置别名
    前言在前文当中也有多次提到alias这个命令,如果说频繁使用一个很长的命令,就可以把它定义一个别名,往往几十个字符的命令会变成几个字母而已,大大提高了工作效率。一、alias命令......
  • ansible并发设置与限制
    一、说明与设置1、问题需要同时对上百台机器进行批量命令执行,执行时间过长2、forks设置Ansible提供一个forks的属性,可以设置运行并行进程数。这个值默认比较保守,只有5个并行......
  • VMWare ESXI编辑设置硬盘为灰色无法修改大小
    遇到问题:最近实际工作中出现磁盘空间不够用的情况,计划通过VMWareClient管理ESXI虚拟机调整虚拟机磁盘大小时,部分虚拟机硬盘调整这栏显示灰色,无法修改数值。解决办法:经过分......