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

时间:2015-01-30 00:05:06

标签: python linux sockets

是否可以将套接字绑定到特定的虚拟适配器? 以下Python代码适用于真正的适配器,例如。 eth0 for cable,wlan0 for wifi:

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

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

我的虚拟适配器似乎工作正常,但可以正常操作。

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

1 个答案:

答案 0 :(得分:0)

你应该知道,对于内核这些(eth0和eth0:1)是相同的接口eth0。 标签或'别名',如eth0:1(实际上你可以使用一些更好的用户友好标签,如eth0:internal_net)只需要sysadmin,而不是app 所以你应该依赖源IP(或让内核根据路由表自动选择它)