好久没写博客了,感觉有点手生。这次给大家带来满满的干货,主要针对建立虚拟机后,虚拟机的联网问题,自己走了很多弯路,希望大家以后碰到类似的问题,参考本博客快速解决!!!
我遇到的问题是:在一台centos server版本的服务器上开启虚拟机,并且实现内网可以访问虚拟机,所以虚拟机要拥有自己的IP地址,可以实现FTP传输文件,SSH登录等基础功能。(并且我是远程连接的服务器,服务器在机房,并且连接显示器比较麻烦)
搜寻了网上很多教程,大概了解到qemu建立的虚拟机网络设置大概分为两种:
有关第一种,显然不符合我的需求,但是我依然尝试过,但是没成功,给出一个感觉比较靠谱的教程:https://zhuanlan.zhihu.com/p/37329713
我的主要精力投入到第二种桥接的模式上,只要能成功配置,就可以访问内外网,岂不快哉!!!
我想像我一样第一次搞这个东西的小白一些建议,前面说到我是远程ssh连接服务器的,又因为搭建网桥需要修改本机的ip等信息,所以可能面临网络中断,而且自己又没办法连接上去调试,所以遵照本教程的小伙伴们,希望你们确定一点:可以连接显示器调试服务器!!!否则请选择第一种方式,自行百度 or 谷歌
确保机器上已经安装下面两个工具:
yum install uml-utilities
yum install bridge-utils
我们需要搭建一个网桥 br0
,然后将你的网络接口eno1
连到这座桥上,然后再添加一个接口tap0
,然后启动虚拟机的时候指定网络模式:-net nic -net tap,ifname=tap0,script=no,downscript=no -vnc localhost:0
指定该网络接口,然后vnc viewer
进入该虚拟机,然后配置虚拟机的网络,就可以实现内外网互通。
关闭网络管理:service NetworkManager stop
网络配置路径:/etc/sysconfig/network-scripts/
我们的网络配置文件都在这里。
首先在该目录下新增配置文件:ifcfg-br0
,内容按照下图编写,IPADDR,GATEWAY
设置的值对应原本网络接口对应的文件中的配置(一般都是网卡eno1
)。
再修改该文件中的内容,请对应你自己本机插网线的网卡接口。按照下面编写
service network restart
这样就建立了一个网桥,并将网卡接口接在上面了,设置好了之后,理论上是可以访问互联网的。但是实际会出现域名无法解析的问题,修改下图文件,添加nameserver
reboot
命令如下:
tunctl -t tap0 -u root
brctl addif br0 tap0 #将tap0连接到网桥br0上
ifconfig tap0 192.168.0.1 netmask 255.255.255.0 promisc
brctl showstp br0 #显示当前网桥上的连接情况
网桥连接情况:
发现上面有两个接口:eno1
和tap0
,至此所有准备都完成了。
开启时网络和vnc设置如下:
-net nic -net tap,ifname=tap0,script=no,downscript=no -vnc localhost:0
还有一个大难关,我们是server需要图形化界面才能使用vnc连接进去,这一部分不是我做的,据我所知,在server版本上也可以安装desktop插件,使得其支持图形化界面,然后你可以windows安装vnc viewer远程连接上。
yum install tigervnc-server
yum install vnc
查看防火前是否关闭systemctl status firewalld.service
没有关闭则执行下面的命令systemctl stop firewalld.service
systemctl disable firewalld.service
vncserver
根据其提示知道标号是多少,一般都是0,后面再开,就是1,2等等。
以windows为例,安装vnc viewer
https://www.realvnc.com/en/connect/download/viewer/
下载vnc viewer并安装
然后netplan appy
即可,不知道什么原因我这样配置完成后只能访问内网,外网无法访问。
10.50.43.*
都可,前提是别和其他人的ip冲突,影响他人正常使用。至此我们完成了虚拟机访问内网的实现,通过搭建网桥的方式,遗憾的是不能访问外网,应该是域名解析的问题,后面再处理,不过现在已经基本满足我的需求了,把ssh服务打开,就可以访问了。希望能帮到大家,少走弯路!
码了好多字,有点累了,休息了,有问题,直接留言 or 私信。
看到一种使用NAT连接的方式,亲身尝试过,除了最后一步端口映射没做,其它都成功了。
这种方式没有给虚拟机指定ip地址,是dhcp方式自动生成的,所以外面访问里面需要映射一下。
给出连接:https://blog.csdn.net/leafrenchleaf/article/details/84807457