将传出套接字绑定到特定(虚拟)适配器



是否可以将套接字绑定到特定的虚拟适配器?以下 Python 代码适用于真正的适配器,例如。eth0 用于电缆,WLAN0 用于无线网络:

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, 25, b"eth0")

但是当我尝试将套接字绑定到虚拟适配器时,例如"eth0:0"我收到错误"OSError:[错误 19] 没有这样的设备"。

我的虚拟适配器似乎在其他方面工作正常,可以正常执行 ping 操作。

基本上,我正在尝试做的是从特定 IP(分配给虚拟适配器)生成传出流量。目的是使用一台计算机在网络上加载/泛洪测试嵌入式设备。

你应该知道,对于内核来说,这些(eth0 和 eth0:1)是相同的接口 eth0。标签或"别名",如 eth0:1(实际上您可以使用一些更好的用户友好标签,如 eth0:internal_net)仅适用于系统管理员,不适用于应用程序所以你应该依赖源IP(或者让内核根据路由表自动选择它)

相关内容

最新更新