需求
Linux 系统上有多个网络。譬如Ubuntu PC上有wifi、以太网,还有个4G网卡。
我现在希望4G网卡只给我指定的应用使用,其他网络不受影响。
如何实现?
分析思路
这里的一篇文章提到了三个思路。
linux,多块无线网卡,指定应用程序走相应的网卡 - SegmentFault 思否
方法一:路由表实现;
方法二:创建网络命名空间;
方法三:借助docker
解决方法
传统路由的方式
即假设我的目标服务器是x.x.x.x 那么我创建一条指向该主机的主机路由
route add x.x.x.x dev wwan0
命名空间
ip netns add net0
ip link set wwan0 netns net0
ip netns exec net0 quectel-CM
ip netns exec ping 8.8.8.8
基于docker
docker 默认使用的是bridge 方式,docker 容器里可以采用主机的网卡命名空间,也可以采取一个独立的命名空间,仿照上面的方式,
参考 https://blog.csdn.net/heu123456/article/details/134377163
将4G模组的网卡wwan0 放到 容器里的独立命名空间里,并且在docker 容器里执行应用;