浅谈linux虚拟机不能识别网卡而无法上网的问题

出现的现象:

[[email protected] net]# ifconfig

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:4 errors:0 dropped:0 overruns:0 frame:0

TX packets:4 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:252 (252.0 b)  TX bytes:252 (252.0 b)

1. 首先要把虚拟机设置成为桥接模式,这样就可以让虚拟机共享网络进行上网,并且在真实机中停止虚拟设备,设置方法: 控制面板----更改适配器设置----把以“V”开头的设备都停用,如果仍然没有ip,请继续如下操作。

2. 在虚拟机中查看当前的mac地址,如:00:0C:29:1C:48:30  ,这个mac就是你要加载的mac,正常情况下是eth0,但是不一定就是eth0,如果不是图形界面,可以用命令查看

#查看网卡是否加载驱动,如果没有驱动,则需要另外安装驱动

[[email protected] eth3]# dmesg |grep -i eth

e1000 0000:02:01.0: eth0: (PCI:66MHz:32-bit) 00:0c:29:1c:48:30

e1000 0000:02:01.0: eth0: Intel(R) PRO/1000 Network Connection

e1000 0000:02:04.0: eth1: (PCI:66MHz:32-bit) 00:0c:29:1c:48:3a

e1000 0000:02:04.0: eth1: Intel(R) PRO/1000 Network Connection

udev: renamed network interface eth0 to eth3

udev: renamed network interface eth1 to eth4

e1000: eth3 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None

eth3: no IPv6 routers present

#从以上信息可以看出eth3正在工作,需修改eth0的网卡配置信息,对应到eth3

#进入目录查看mac对应的是eth几

[[email protected] ~]# cd /sys/class/net    

[[email protected] net]# ls

eth3  lo

#注意这里是eth几,后面所要修改的配置文件就是eth几

[[email protected] net]# cd eth3/

[[email protected] eth3]# ls

address

[[email protected] eth3]# cat address

00:0c:29:1c:48:30          #这个mac地址就是真正的mac地址

3. 修改网卡配置信息

#修改ifcfg-eth0

[[email protected] ~]# cd /etc/sysconfig/network-scripts/

[[email protected] network-scripts]# ls

ifcfg-eth0

#注意,可能还有eth1或者eth2等,只修改一个,其余的eth配置文件删除,

#注意,ifcfg-lo 和其余的目录不能删除

#先把eth0更名为eth3(/sys/class/net 下是eth几,就写eth几)

[[email protected] network-scripts]# mv ifcfg-eth0 ifcfg-eth3 

#查看信息

[[email protected] network-scripts]# cat ifcfg-eth3

DEVICE=eth0

BOOTPROTO=dhcp

HWADDR=00:0c:29:fa:ed:77

IPV6INIT=yes

NM_CONTROLLED=yes

ONBOOT=no

TYPE=Ethernet

UUID="dde10f3b-43be-4016-85fd-215aedf35a70"

USERCTL=no

DNS1=202.106.0.20

PEERDNS=yes

#修改如下

[[email protected] network-scripts]# vi ifcfg-eth0

#删除HWADDR和UUID

#把ONBOOT值改成yes

#DEVICE的值根据 /sys/class/net 下是eth几,就写eth几

DEVICE=eth3

BOOTPROTO=dhcp

IPV6INIT=yes

NM_CONTROLLED=yes

ONBOOT=yes

TYPE=Ethernet

USERCTL=no

DNS1=202.106.0.20

PEERDNS=yes

#保存退出

#修改70-persistent-net.rules

[[email protected] network-scripts]# cd /etc/udev/rules.d/

[[email protected] rules.d]# ls

60-raw.rules  70-persistent-cd.rules  70-persistent-net.rules

#编辑

[[email protected] rules.d]# vi 70-persistent-net.rules

# PCI device 0x8086:0x100f (e1000)

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:1c:48:30", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3"

#注意,删除多余的PCI device配置信息,留下与mac地址相同的那一行,并且把NAME改一下

4. 重启服务

[[email protected] rules.d]# service network restart

Determining IP information for eth3... done.

#当你看到都ok的时候,恭喜你,ip就有了!

#如果没有成功,请重新检查以上步骤,肯定是配置有误,一定要注意mac和eth的对应关系。

#如笔者之前的eth0的mac地址是00:0C:29:1C:48:30,而eth1的mac地址是00:0C:29:1C:48:3a,只相差一位,因此务必要仔细核对。

时间: 2024-10-25 07:33:07

浅谈linux虚拟机不能识别网卡而无法上网的问题的相关文章

(转)浅谈 Linux 内核无线子系统

前言 Linux 内核是如何实现无线网络接口呢?数据包是通过怎样的方式被发送和接收呢? 刚开始工作接触 Linux 无线网络时,我曾迷失在浩瀚的基础代码中,寻找具有介绍性的材料来回答如上面提到的那些高层次的问题. 跟踪探索了一段时间的源代码后,我写下了这篇总结,希望在 Linux 无线网络的工作原理上,读者能从这篇文章获得一个具有帮助性的概览. 1.全局概览 在开始探索 Linux 无线具体细节之前,让我们先来把握一下 Linux 无线子系统整体结构.如图1,展示了 Linux 无线子系统各个模

浅谈Linux下Makefile编写

浅谈Linux下Makefile的编写 前言:本文简要介绍Makefile文件的编写规范,结合具体项目中的应用进行讲解. 具体代码地址: https://github.com/AnSwErYWJ/DogFood/blob/master/Makefile 简介 Make工具最主要也是最基本的功能就是通过makefile文件来描述源程序之间的相互关系并自动维护编译工作.而makefile 文件需要按照某种语法进行编写,文件中需要说明如何编译各个源文件并连接生成可执行文件,并要求定义源文件之间的依赖关

浅谈linux内核栈(基于3.16-rc4)

在3.16-rc4内核源码中,内核给每个进程分配的内核栈大小为8KB.这个内核栈被称为异常栈,在进程的内核空间运行时或者执行异常处理程序时,使用的都是异常栈,看下异常栈的代码(include/linux/sched.h): 1 union thread_union { 2 struct thread_info thread_info; 3 unsigned long stack[THREAD_SIZE/sizeof(long)]; 4 }; THREAD_SIZE值为8KB,因此内核为进程的异常

浅谈Linux中的信号机制(二)

首先谢谢 @小尧弟 这位朋友对我昨天夜里写的一篇<浅谈Linux中的信号机制(一)>的指正,之前的题目我用的“浅析”一词,给人一种要剖析内核的感觉.本人自知功力不够,尚且不能对着Linux内核源码评头论足.以后的路还很长,我还是一步一个脚印的慢慢走着吧,Linux内核这座山,我才刚刚抵达山脚下. 好了,言归正传,我接着昨天写下去.如有错误还请各位看官指正,先此谢过. 上篇末尾,我们看到了这样的现象:send进程总共发送了500次SIGINT信号给rcv进程,但是实际过程中rcv只接受/处理了1

浅谈Java虚拟机

最近发现MDT推出去的系统的有不同问题,其问题就不说了,主要是策略权限被域继承了.比如我们手动安装的很多东东都是未配置壮态,推的就默认为安全壮态了,今天细找了一下,原来把这个关了就可以了. 浅谈Java虚拟机,布布扣,bubuko.com

Linux虚拟机克隆后网卡找不到问题

解决虚拟机克隆网卡丢失问题 1.克隆后的虚拟机网卡显示如下 [[email protected] 桌面]# ifconfig 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:120 errors:0 dropped:0 overruns:

[]转帖] 浅谈Linux下的五种I/O模型

浅谈Linux下的五种I/O模型 https://www.cnblogs.com/chy2055/p/5220793.html  一.关于I/O模型的引出 我们都知道,为了OS的安全性等的考虑,进程是无法直接操作I/O设备的,其必须通过系统调用请求内核来协助完成I/O动作,而内核会为每个I/O设备维护一个buffer.如下图所示: 整个请求过程为: 用户进程发起请求,内核接受到请求后,从I/O设备中获取数据到buffer中,再将buffer中的数据copy到用户进程的地址空间,该用户进程获取到数

浅谈linux中shell变量$#,[email&#160;protected],$0,$1,$2,$?的含义解释

浅谈linux中shell变量$#,[email protected],$0,$1,$2,$?的含义解释 下面小编就为大家带来一篇浅谈linux中shell变量$#,[email protected],$0,$1,$2的含义解释.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 摘抄自:ABS_GUIDE 下载地址:http://www.tldp.org/LDP/abs/abs-guide.pdf linux中shell变量$#,[email protected],$

Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理

Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理 转自:https://www.jianshu.com/p/2b71ea919d49 本系列文章首发于我的个人博客:https://h2pl.github.io/ 欢迎阅览我的CSDN专栏:Java网络编程和NIO https://blog.csdn.net/column/details/21963.html 部分代码会放在我的的Github:https://github.com/h2pl/ 浅谈 Linux