1.USB共享网络还有意义吗?企业临时办公场地的网络如何搭建?
Hi,大家好,我是旋律果子,一个网络极客,也是linux开发者。现在是2022年了,手机USB共享网络还有意义吗?
有这么一个场景,例如在户外一个临时办公场地,不方便迁宽带过来,就会面临没有网络的情况。有人说直接打开手机热点不就行了。这样虽然能够满足单个电脑上网,但是缺点也有不少。第一是手机通过Wi-Fi分享出来的热点本身就不稳定,其一存在兼容性问题,有些设备是很难连上的;其二是万一手机熄屏等原因可能导致热点消失。第二,在工作场地电脑非常多的情况下,分享出来的Wi-Fi热点会互相干扰,影响很严重。第三,很难建立局域网,如果办公场地的电脑之间需要实现局域网内通讯,那分享Wi-Fi热点的方式就非常差了,即便是很多台电脑同时连接到一个手机上,局域网传输的压力也会非常大,去局域网的流量占用了去公网的带宽,很轻易会导致断网。
那么这个时候,USB网络共享就很有意义了。通过手机连接运营商的网络,通过USB和网线共享出来,直接插入办公场地的交换机中。这样只有到公网的流量会经过手机,到局域网的流量会直接走交换机,不经过手机,就不会影响稳定性了,效率非常高。
(临时办公场地USB转以太网共享网络示意图,内部主机之间数据交换直接走交换机)
以上的情况是较为理想的情况。现实的问题是,原始的安卓系统的网络比较复杂,很不方便管理。为此,零遁开发板就很好地解决了这一个需求。零遁通过修改安卓系统的源代码,重新编译了安卓的内核,增加了docker网络层面的所有内核依赖,例如MAC-Vlan、iptables、bridge等,目前支持docker以及依赖cgroup的特性。
(零遁开发板su进入底层后,可以使用iptables)
在我的粉丝中,我想openwrt大家应该不陌生,一个非常著名的软路由系统。相比家用路由器,你可以通过openwrt几乎完全控制你的网络,例如实现屏蔽广告,代理上网,VPN,多网络聚合,根据流量特征进行分流,流量控制,vlan等多个特性,也支持和安全性相关的自定义防火墙规则。功能非常强大。如果分享网络使用的是这么一个强大的系统,那么对于临时办公场所,只需要一台零遁开发板加一台交换机(有必要的时候)就完全够用了!
(零遁开发板中内置的openwrt系统管理页面,左边为概况,右边为防火墙规则)
2.零遁开发板不止能搞网络,看看安卓内核怎么改的
零遁开发板里面安装了一个openwrt,这个到底是怎么实现的呢?openwrt的功能是全的吗?零遁开发板上还能做其他的开发吗?我想这些应该是大家关心的问题。
零遁通过修改安卓的源代码,添加了对docker的支持,修复了docker网络层面所有的内核依赖,如macVlan、iptables以及bridge等。也就是说,这个openwrt的功能是完整的,也可以自定义安装不少应用。
另外,修改的安卓代码也增加了很多实用功能,例如支持通电自动开机;docker也添加到了系统启动项中,并且以root权限运行,权限级别高意味着功能没有被阉割。另外,修改的代码也增加了不少硬件支持,以及USB相关的扩展设备。可以连接更多的网卡、串口、摄像头、采集卡等;也方便扩展各种仪器仪表。
安卓系统自身的权限也是一个问题,修改的代码取消了su命令(以root权限运行)的权限检测,例如“su rm -rf /*”这样的命令也可以执行成功了,虽然我们不会这么执行,但足以体现我们开发者获得的权限之高。
刚才说了不少依赖和权限的问题,依赖问题决定了我们安装的东西能不能用,权限同样也是。当依赖和权限都解决了之后,我们就可以任意发挥了。例如刚才的openwrt就是运行在这么一个环境中。Wi-Fi或者USB网络共享,也是运行在这种环境中。我们同样也可以安装其他系统和应用,例如运行nginx,mysql,宝塔面板,甚至centos7和其他linux,或者结合传感器以及其他的仪器仪表实现物联网类似的功能。