Shell脚本实现动态配置IP与路由:解决嵌入式Android/Linux有线和无线网卡双网共存问题
- 一、网络环境及问题再现
- 二、命令行方式实现双网共存
- 三、Shell脚本自动实现双网共存(根据网络环境动态配置IP路由)
–>问题:在使用某嵌入式开发板(Android 6.0系统)过程中,发现无法同时进行有线(Ethernet)和无线(WiFi)网卡同时通讯,同时产品又有需求,必须同时通过这两个网卡与内网和外网进行通信。
–>解决:实际方案有两种: 第一种:更改Android 6.0 Firmware层的代码,适配双网卡运行逻辑,可以从根本上解决该双网共存问题。 第二种方案很简单:根据实际网络情况,通过脚本更改路由,实现双网共存。
–>测试环境:嵌入式开发板,无线路由器,网线
实际测试用第二种方案也完可以实现双网共存的需求(可比第一种简单了N条街),可以有效解决有线网卡和无线网卡同时上内、外网。
其本质就是实现了两个不同的IP网段子网与Internet的互联互通,下面介绍其实现:
下载脚本完整代码(带网络状态、异常检测及配置结果的验证):http://download.csdn.net/detail/howiexue/9908099
一、网络环境及问题再现
我使用的嵌入式开发板(全志A64)跑的Android 6.0系统,开机后插入网线Ethernet(内网),并且连上无线路由器产生的WiFi(外网)。
有线网络环境(eth0):网关为:192.168.199.1,有线的IP为动态获取192.168.199.189。无法访问互联网
无线网络环境(wlan0):网关为192.168.30.1,IP也为DHCP分配的192.168.30.78,可以访问互联网
ifconfig 如下图:
路由表如下图:
这时,问题有两种情况:一是 ping 无线网关和互联网都可以通,但无法ping