问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

虚拟机和现实机怎么两个同时上网?

发布网友 发布时间:2022-05-11 08:02

我来回答

3个回答

热心网友 时间:2023-10-09 04:49

VMware三种网络连接,qemu两种网络连接实现 虚拟机<--->主机 虚拟机<--->互联网通信的方法。

顺便写了下如何不重新编译整个内核支持某个功能,对系统无影响,编译速度要快于编译整个内核。

如果你的XXX卡没被内核支持,又怕自己编译的内核会造成系统损坏就可以试试这个方法。

VMware三种网络连接上网设置:

1.bridge :

默认使用vmnet0

将虚拟机的ip设置与主机同网段未使用ip,其余与主机相同:

例如主机ip是10.70.54.31,设置虚拟机ip为10.70.54.22。netmask,broadcast,gateway,dns都与主机相同即可实现虚拟机<--->主机 虚拟机<---->互联网 通信。

2.nat :

默认使用vmnet8

将虚拟机设置成使用dhcp方式上网,windows下选择"自动获取ip",linux下开启dhcp服务即可 主机之家

也可以手动设置:

ip设置与vmnet8同网段,gateway设置成vmnet8的gateway(/etc/VMware/vmnet8/nat/nat.conf)中可以查到vmnet8的gateway,通常是xxx.xxx.xxx.2。

netmask,broadcast设置与vmnet8相同,dns设置与主机相同。

例如 vmnet8 ip:172.16.249.1 gw :172.16.249.2

虚拟机设置: ip :172.16.249.100 gw: 172.16.249.2

3.host-only :

默认使用vmnet1

将虚拟机ip设置与vmnet1同网段,gateway设置成vmnet1的ip,其余设置与vmnet1相同,dns设置与主机相同

例如 vmnet1 ip :172.16.245.1

虚拟机设置: ip :172.16.245.100 gateway :172.16.245.1

这样就实现了虚拟机<--->主机 通信,但是 虚拟机<--->互联网 仍无法通信

虚拟机与互联网通信:

1.开启主机路由功能

2.设定iptables,使主机成为一台nat server

1. echo 1 >/proc/sys/net/ipv4/ip_forward 这样就主机就具有了路由功能

2. iptables -t nat -A POSTROUTING -o eth0 -s 172.16.245.0/24 -j MASQUERADE 主机之家

这条规则意思是将来自172.16.245.0/24封包的来源ip伪装成eth0的ip,实现虚拟机与互联网通信

如果网络接口是ppp+或pppoe则需要修改成-o pppoe

当然-s 172.16.245.0/24 也要根据实际情况修改

主机之家

Qemu两种上网方式:

user mode network :

这种方式实现虚拟机上网很简单,类似VMware里的nat,qemu启动时加入-user-net参数,虚拟机里使用dhcp方式,即可与互联网通信,但是这种方式虚拟机与主机的通信不方便。

tap/tun network :

这种方式要比user mode复杂一些,但是设置好后 虚拟机<-->互联网 虚拟机<-->主机 通信都很容易

这种方式设置上类似VMware的host-only,qemu使用tun/tap设备在主机上增加一块虚拟网络设备(tun0),然后就可以象真实网卡一样配置它.

首先内核中支持tap/tuns设备:

Device Drivers --->
Networking support --->
[M] Universal TUN/TAP device driver support

如果当前内核没有支持,可以重新只编译相应模块加入,方法很简单:

将当前内核配置文件cp到内核源码目录下:

[root@LFS ~]#cp /boot/config-[kernel-version] /usr/src/linux
[root@LFS ~]#cd /usr/src/linux

配置内核,将TUN/TAP选择模块(M),如上所示: www.host0y.com

[root@LFS ~]#make menuconfig

重新只编译模块(M),不编译核心(*)支持的东东:

[root@LFS ~]#make moles

编译好后在/usr/src/linux/drivers/net下可以找到tun.ko:

[root@LFS net]#ls -l /usr/src/linux/drivers/net/tun.ko
-rw-r--r-- 1 root root 11116 Mar 23 20:29 /usr/src/linux/drivers/net/tun.ko
[root@LFS net]#

将它cp到当前内核的模块目录的相应位置:

[root@LFS net]#cp /usr/src/linux/drivers/net/tun.ko /lib/moles/`uname -r`/kernel/drivers/net

重新建立模块依赖关系:

[root@LFS net]#depmod

现在就可以加载它了 :

[root@LFS net]#modprobe tun

检查一下:

[root@LFS net]#lsmod |grep tun
tun 8704 0
[root@LFS net]#

OK. 成功不重新编译整个内核加入特殊模块支持

如果你的xx卡不被内核支持,又可以编译成模块,自己怕重新编译内核后出问题就可以用这个办法只编译自己需要的模块,然后手动安装到相应位置,再加载它。

www.H0STOY.com

这样编译速度要也比编译整个内核快,不会对系统有任何损害,就可以使用上XX卡喽。^_^

要注意三点:

1.内核源码必须与当前内核版本完全一致,否则编译出的模块是不能用的。

2.注意只make moles(编译模块),没有make moles_install(自动安装模块到/lib/moles下)

3.加载新编译的模块前必须先运行depmod,否则modprobe找不到它

其实使用当前内核配置文件(/boot/config-[kernel-version]),只加入自己需要的模块,不做任何其他改,make moles_install应该也不会有问题的。

不过最稳妥的办法还是手动安装它,控制权在自己手里更踏实嘛 :-)

OK,转回qemu上网问题

如果使用udev管理设备(通常2.6.x内核的发行版都已经使用udev),当modprobe tun后就会自动建立/dev/net目录,并创建出tun设备,做好相关链接:

[root@LFS net]#ls -l /dev/net/tun
lrwxrwxrwx 1 root root 6 Mar 25 15:35 /dev/net/tun -> ../tun
[root@LFS net]#

如果很不幸,你没看到它,就需要自己手动做这些工作了

[root@LFS ~]#mkdir /dev/net
H0stoy.com

[root@LFS ~]#mknod /dev/net/tun c 10 200

OK,相关设备已经准备好了,还需要一个tun/tap的初始化脚本 :

/etc/qemu-ifup :
#!/bin/sh
/sbin/ifconfig $1 172.20.0.1

再给予qemu-ifup x执行权限放在/etc下就可以了。

这个脚本只能root用户执行,如果需要普通用户使用qemu,就需要改成sudo /sbin/ifconfig .....再设置sudo相关权限。

启动qemu后,它会在主机上增加一块虚拟网络设备(tun0):

[root@LFS ~]#ifconfig tun0
tun0 Link encap:Ethernet HWaddr 0A3:8A:5D:97:CD
inet addr:172.20.0.1 Bcast:172.20.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 :0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
[root@LFS ~]#

现在就可以启动qemu配置虚拟机网络参数了,和VMware host-only一样:

ip与tun0相同网段,gateway为tun0 ip 其余参数与tun0相同,dns与主机相同: www.hostoy.com

tun0 : ip :172.20.0.1 broadcast:172.20.255.255 netmask :255.255.0.0
qemu : ip :172.20.0.100 broadcast:172.20.255.255 netmask :255.255.0.0 gateway:172.20.0.1

与host-only一样,这样只实现了虚拟机<---->主机间通信,还需要设置router,nat才可以连上互联网

热心网友 时间:2023-10-09 04:49

网卡选择桥接模式不就行了。

热心网友 时间:2023-10-09 04:50

VMware的功能十分强大,它提供了三种网络连接模式。
1、桥接模式:这种方法适合在局域网中使用,相当于在局域网中增加了一台计算机,只要给虚拟机的系统分配一个合法的IP地址即可让虚拟机上网。
如果你主机的网管地址是;192.168.1.1,然后你主机IP是192.168.1.2,那么在虚拟机中设置的网卡IP地址是192.168.1.3,网管地址是:192.168.1.1,DNS由你的网络运营商提供。如网通的DNS是:202.106.0.20备用网关:202.106.46.151
2、NAT(network address translation)模式:在该模式下几乎不用任何设置就能访问互联网,主机变成了一个路由器为虚拟机提供网络转换服务,该模式可以在同在局域网中和公网中使用。
3、仅主机(私有网络)模式:该模式下虚拟机不能访问外部网络,只能共享主机,主要用于在需要使用局域网但不允许虚拟机访问外部网络使用。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
钢琴谱一小段有三行怎么弹?最上是高音,然后还是高音,最后是低音?我用来... 请问跨专业考研都需要哪些方面的准备啊? 2013109期福彩双色球开奖号码 vivoy3手机如何长截屏 男友贪污也是网上追逃犯我还可以和他在一起吗 网上追逃犯罪嫌疑人住家里算是窝藏或是包庇吗 ps3海贼无双普通版有下载卡的吗? 关于PS3版海贼王无双和北斗神拳无双 PS3现在海贼无双3.55破解能玩了吗 我看网上说有破解补丁 谁能给个地址... 现在网上下载得到PS3的海贼无双。铁拳6,。高达无双3等游戏吗 solidworks螺纹规格 metric tap 什么意思 metric tap是什么螺纹 你好,word文档插入引用后在标注上有一条横线,是怎么去除的? 6h9是什么意思? 4h11?3d10(SR3)?另外我怎么不会看那个公差与配合标准表呢,看出来跟你们的不一样啊? 据说美洲狮SR3儿童速滑鞋在滑中有声音吗? 现在跑跑那部车最快最好啊? 川SR319C车牌号打多少分? 极品飞车15变速2,求ABCD四个等级各等级选那些车好,要具体车型 谁帮我查下宝马VIN的详细信息,车架后7位是SR35135 BMW M3 GTR属于哪个等级的车? 粤sr3b25车牌吉利不? 车牌为粤sr3b25好吗? 飞利浦液晶流光溢彩电视,42寸,换显像管多少钱 这是什么品牌的跑车? 捷安特SR3和SR4外胎有什么不一样 机械图纸中SR3是什么意思? 数字科技更上层楼 Radical推出SR3 XX 飞利浦 42寸的带“流光溢彩+” 是新品那款机器具有的?什么价位? 瑞迪克SR3 viewport width 固定 怎么 缩放 最佳 帮忙找一个英语探究文章 烧烤架上的油污怎么样才容易清洗 烧烤炉太油洗不干净怎么办? 百度知道回答问题怎么才能算被采纳? 百度知道怎么采纳答案啊 百度知道提问者要怎么做才算采纳问题? MIUI 浏览器 &lt;meta&gt; viewport 缩放无效? 手机百度知道怎么采纳 百度知道中我的提问,如何去采纳! 百度知道如何提问才容易被采纳? 百度知道,答题怎么样才被采纳 百度中怎么采纳答案 百度知道怎么采纳 百度知道怎么采纳回答? 百度知道提问后,回答时如何写内容,才最容易被优先采纳? 如何在百度知道里邀请采纳 怎样在百度提问里采纳为最佳答案? 在百度知道中如何采纳答案 百度知道怎么采纳? 百度知道里的提问怎么采纳为最佳答案?