多网卡模式下Golang应用的流量从指定网卡流入流出方案
最近因业务需要,需要在多网卡模式下实现Go应用的流量从指定网卡流入,请求外网服务时候流量需要从该网卡流出功能。从指定网卡流入很容易实现,只要go应用listen对应网卡即可,但请求外网服务时候就相对麻烦些了。在实践中总结出有三种方案可行。各有优劣。
假定服务器网卡情况如下:
| 网卡 | 网卡IP | 对应的公网IP |
|---|---|---|
| eth0 | 172.31.0.8 | 109.25.48.65 |
| eth1 | 172.31.0.14 | 119.26.38.75 |
实际上我们的服务器使用云服务器,网卡是弹性网卡(eni),绑定的是弹性ip(eip)。三种方案对普通服务器也是能达到目的的。



