首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Linux上创建多个虚拟接口?

如何在Linux上创建多个虚拟接口?
EN

Unix & Linux用户
提问于 2017-01-06 06:09:54
回答 2查看 69.1K关注 0票数 14

为了在Linux上创建假以太网虚拟接口,我们首先使用以下命令初始化虚拟接口驱动程序:/sbin/mod探针虚拟。

然后,我们将以太网接口别名分配给上面刚刚初始化的虚拟驱动程序。

但它提供了以下致命错误:致命:模块虚拟未找到。

此外,在路径cd /sys/设备/虚拟/net#上,我们可以看到有以下名称显示的虚拟接口:

虚拟0/ lo/ sit0/ tunl0 0/

ifconfig -a

代码语言:javascript
运行
复制
dummy0:   Link encap:Ethernet  HWaddr aa:3a:a6:cd:91:2b    
          BROADCAST NOARP  MTU:1500  Metric:1  
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0   
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo:     Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0  
          inet6 addr: ::1/128 Scope:Host  
          UP LOOPBACK RUNNING  MTU:16436  Metric:1  
          RX packets:111 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:111 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0   
          RX bytes:8303 (8.1 KiB)  TX bytes:8303 (8.1 KiB)

sit0:      Link encap:UNSPEC  HWaddr 00-00-00-00-FF-00-00-00-00-00-00-00-00-00-00-00    
          NOARP  MTU:1480  Metric:1  
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0   
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

tunl0:  Link encap:IPIP Tunnel  HWaddr   
          NOARP  MTU:1480  Metric:1  
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0   
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)  

因此,mod探针命令无法加载内核模块。

我们如何使用mod探头或insmod加载内核模块来初始化虚拟接口驱动程序?

我们能在一个加载的模块上创建多个虚拟接口吗?

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2017-01-06 06:54:43

添加几个虚拟接口的通常方法是使用iproute2

代码语言:javascript
运行
复制
# ip link add dummy0 type dummy
# ip link add dummy1 type dummy
# ip link list
...
5: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 22:4e:84:26:c5:98 brd ff:ff:ff:ff:ff:ff
6: dummy1: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 9e:3e:48:b5:d5:1d brd ff:ff:ff:ff:ff:ff

但是错误消息是致命的:没有找到模块虚拟,表明您可能有一个内核,其中没有启用虚拟接口模块,所以请确保检查您的内核配置,并在必要时重新编译内核。

票数 14
EN

Unix & Linux用户

发布于 2017-01-06 10:47:16

要在引导时创建虚拟接口,我建议添加到/etc/modules

代码语言:javascript
运行
复制
dummy

请注意,模块dummy在内核4.4.x(要验证的正确版本)之前默认只允许两个虚拟接口。

如果需要更多信息,还必须创建一个/etc/modprobe.d/local/etc/modprobe.d/dummy.conf,用所需的虚拟接口数量定义参数numdummies

代码语言:javascript
运行
复制
options dummy numdummies=4 

根据@Feuermurmel注释,在较新的内核中,除了默认创建的两个虚拟接口之外,还可以使用以下命令添加更多虚拟接口:

代码语言:javascript
运行
复制
sudo ip link add dummyX type dummy
票数 10
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/335284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档