Linux 企业7版本,虚拟机下只有lo网卡没eno和eth0网卡,

Linux 企业7版本,虚拟机下只有lo网卡没eno和eth0网卡,,第1张

此原因可以按照以下步骤分析:

注意:在 *** 作时候建议关闭NetworkManager服务(service NetworkManager stopchkconfig NetworkManager off)

1、网卡驱动,一般用vm安装不会有此种情况

2、ifconfig -a 看下所有的网卡。默认是按照eht0 1.2.3.4—排序,当网络没有连接的时候

然后ifconfig -a可以看到主机上有几块网卡以及名称:

这样可以确定网卡存在,没有问题。如果不存在任何ethx的话,说明网卡有问题。

3、然后进入配置文件(里面是没有ifcfg-eth0的只有个lo):

[root@redhat]# cd /etc/sysconfig/network-scripts/

[root@redhat]# ls

ifcfg-lo ifdown-bnep ifdown-ipv6 ifdown-ppp ifdown-tunnel ifup-bnep

ifup-ipv6 ifup-plusb ifup-routes ifup-wireless network-functions

ifcfg-lo ifdown-eth ifdown-isdn ifdown-routes ifup ifup-eth ifup-isdn ifup-post ifup-sit init.ipv6-global network-functions-ipv6

ifdown ifdown-ippp ifdown-post ifdown-sit ifup-aliases ifup-ippp ifup-plip ifup-ppp ifup-tunnel net.hotplug

4、这样可以新建个ifcfg-ethx。

然后编辑里面内容添加:

ONBOOT=yes

USERCTL=no

PEERDNS=yes

TYPE=Ethernet

DEVICE=eth1 #//(此处的1是网卡设备的序号也就是ifconfig -a中看到的网卡名称后缀数字)

HWADDR=00:0c:29:64:c2:5f #此处可以不添加,根据自己机器而定(建议先不添加地址是网卡的地址,可以在虚拟机设置里面查看。)

BOOTPROTO=dhcp

5、然后保存重启服务

service network restart

我们在Linux执行ifconfig指令时会发现显示两个设备的信息,一般来说,一个是网卡eth0,一个就是lo,具体系统可能会有差别。我们知道eth0是以太网卡,而对于lo似乎不太当回事。lo其实是一个系统虚拟的环回接口,它的IP地址是127.0.0.1,利用这个接口可以实现系统内部发送和接收数据,所以一般情况下我们使用下面指令:

root@localhost ~# ping 127.0.0.1

1

1

是可以ping通的,因为这其实就是系统内部建立连接。

(1)网络接口的命名

eth0: ethernet的简写,一般用于以太网接口。 

wifi0:wifi是无线局域网,因此wifi0一般指无线网络接口。

ath0: Atheros的简写,一般指Atheros芯片所包含的无线网络接口。

lo: local的简写,一般指本地环回接口。

(2)网络接口如何工作

网络接口是用来发送和接受数据包的基本设备。

系统中的所有网络接口组成一个链状结构,应用层程序使用时按名称调用。

每个网络接口在linux系统中对应于一个struct net_device结构体,包含name,mac,mask,mtu…信息。

每个硬件网卡(一个MAC)对应一个网络接口,其工作完全由相应的驱动程序控制。

(3)虚拟网络接口

虚拟网络接口的应用范围非常广泛。最着名的当属“lo”了,基本上每个linux系统都有这个接口。

虚拟网络接口并不真实地从外界接收和发送数据包,而是在系统内部接收和发送数据包,因此虚拟网络接口不需要驱动程序。

虚拟网络接口和真实存在的网络接口在使用上是一致的。

(4)网络接口的创建

硬件网卡的网络接口由驱动程序创建。而虚拟的网络接口由系统创建或通过应用层程序创建。

驱动中创建网络接口的函数是:register_netdev(struct net_device *)或者register_netdevice(struct net_device *)。

这两个函数的区别是:register_netdev(…)会自动生成以”eth”作为打头名称的接口,而register_netdevice(…)需要提前指定接口名称.事实上,register_netdev(…)也是通过调用register_netdevice(…)实现的。

(5)lo接口的作用

假如包是由一个本地进程为另一个本地进程产生的, 它们将通过外出链的’lo’接口,然后返回进入链的’lo’接口.具体参考包过滤器的相关内容。

实验:

本地一个进程发起连接,到一个本地的daemon监听的内网IP地址(eth1: 10.1.1.1)的端口(8085),此时在eth1上是抓不到包的,在 lo 上抓到,说明使用的是本地回环接口lo,而网络层的IP地址则是内网IP地址.

它们的具体区别并不算太大,只是链接后的不同,具体区别如下:

o:是编译的中间目标文件将多个中间目标文件,可以链接成可执行文件。

so:文件表示动态链接库。

a:代表的是静态函数库,当同时运行多个程序并且都使用到同一个函数库的函数时,内存中就会有同一函数的多份副本,会消耗大量宝贵的内存。

lo:使用libtool编译出的目标文件,其实就是在o文件中添加了一些信息。

la:使用libtool编译出的库文件,其实是个文本文件,记录同名动态库和静态库的相关信息


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11486599.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存