CentOS 7.6.1810 (server版本) qemu-system-x86_64 虚拟机网桥搭建

写在前面

好久没写博客了,感觉有点手生。这次给大家带来满满的干货,主要针对建立虚拟机后,虚拟机的联网问题,自己走了很多弯路,希望大家以后碰到类似的问题,参考本博客快速解决!!!

情景概述

我遇到的问题是:在一台centos server版本的服务器上开启虚拟机,并且实现内网可以访问虚拟机,所以虚拟机要拥有自己的IP地址,可以实现FTP传输文件,SSH登录等基础功能。(并且我是远程连接的服务器,服务器在机房,并且连接显示器比较麻烦

搜寻了网上很多教程,大概了解到qemu建立的虚拟机网络设置大概分为两种:

  • 用户模式(只能实现宿主主机互通
  • 桥接模式 (内外网互通

有关第一种,显然不符合我的需求,但是我依然尝试过,但是没成功,给出一个感觉比较靠谱的教程:https://zhuanlan.zhihu.com/p/37329713

我的主要精力投入到第二种桥接的模式上,只要能成功配置,就可以访问内外网,岂不快哉!!!

注意

我想像我一样第一次搞这个东西的小白一些建议,前面说到我是远程ssh连接服务器的,又因为搭建网桥需要修改本机的ip等信息,所以可能面临网络中断,而且自己又没办法连接上去调试,所以遵照本教程的小伙伴们,希望你们确定一点:可以连接显示器调试服务器!!!否则请选择第一种方式,自行百度 or 谷歌

注意2

确保机器上已经安装下面两个工具:

  • brctl
  • tunctl
  yum install uml-utilities

  yum install bridge-utils

逻辑关系

CentOS 7.6.1810 (server版本) qemu-system-x86_64 虚拟机网桥搭建_第1张图片
我们需要搭建一个网桥 br0,然后将你的网络接口eno1 连到这座桥上,然后再添加一个接口tap0,然后启动虚拟机的时候指定网络模式:-net nic -net tap,ifname=tap0,script=no,downscript=no -vnc localhost:0 指定该网络接口,然后vnc viewer进入该虚拟机,然后配置虚拟机的网络,就可以实现内外网互通。

1_前提

关闭网络管理:service NetworkManager stop

2_搭建网桥并将网络接口指定到该网桥

ifcfg-br0

网络配置路径:/etc/sysconfig/network-scripts/我们的网络配置文件都在这里。

首先在该目录下新增配置文件:ifcfg-br0,内容按照下图编写,IPADDR,GATEWAY设置的值对应原本网络接口对应的文件中的配置(一般都是网卡eno1)。
CentOS 7.6.1810 (server版本) qemu-system-x86_64 虚拟机网桥搭建_第2张图片

ifcfg-eno1

再修改该文件中的内容,请对应你自己本机插网线的网卡接口。按照下面编写
CentOS 7.6.1810 (server版本) qemu-system-x86_64 虚拟机网桥搭建_第3张图片

3_然后,service network restart

这样就建立了一个网桥,并将网卡接口接在上面了,设置好了之后,理论上是可以访问互联网的。但是实际会出现域名无法解析的问题,修改下图文件,添加nameserver
CentOS 7.6.1810 (server版本) qemu-system-x86_64 虚拟机网桥搭建_第4张图片
reboot

4_tap0接口创建,并接在网桥br0上

命令如下:

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 #显示当前网桥上的连接情况

网桥连接情况:

CentOS 7.6.1810 (server版本) qemu-system-x86_64 虚拟机网桥搭建_第5张图片

br0-situation2
发现上面有两个接口:eno1tap0,至此所有准备都完成了。

5_开启虚拟机,vncviewer连接

开启时网络和vnc设置如下:

-net nic -net tap,ifname=tap0,script=no,downscript=no -vnc localhost:0

还有一个大难关,我们是server需要图形化界面才能使用vnc连接进去,这一部分不是我做的,据我所知,在server版本上也可以安装desktop插件,使得其支持图形化界面,然后你可以windows安装vnc viewer远程连接上。

  • 第一步在服务器上安装vnc server
yum install tigervnc-server 

yum install vnc
  • 关闭防火墙
查看防火前是否关闭systemctl status firewalld.service 

没有关闭则执行下面的命令systemctl stop firewalld.service 

systemctl disable firewalld.service
  • 启动server
vncserver

根据其提示知道标号是多少,一般都是0,后面再开,就是1,2等等。

  • 以windows为例,安装vnc viewer
    https://www.realvnc.com/en/connect/download/viewer/
    下载vnc viewer并安装

  • 连接
    CentOS 7.6.1810 (server版本) qemu-system-x86_64 虚拟机网桥搭建_第6张图片
    冒号后面的数字为前面的标号。

进入虚拟机并进行网络设置(以ubuntu20.04为例)

CentOS 7.6.1810 (server版本) qemu-system-x86_64 虚拟机网桥搭建_第7张图片
然后netplan appy即可,不知道什么原因我这样配置完成后只能访问内网,外网无法访问。

  • 网关设置为与宿主主机一致
  • IP设置为和宿主主机在一个网段内10.50.43.*都可,前提是别和其他人的ip冲突,影响他人正常使用。

总结

至此我们完成了虚拟机访问内网的实现,通过搭建网桥的方式,遗憾的是不能访问外网,应该是域名解析的问题,后面再处理,不过现在已经基本满足我的需求了,把ssh服务打开,就可以访问了。希望能帮到大家,少走弯路!


码了好多字,有点累了,休息了,有问题,直接留言 or 私信。


补充

看到一种使用NAT连接的方式,亲身尝试过,除了最后一步端口映射没做,其它都成功了。

这种方式没有给虚拟机指定ip地址,是dhcp方式自动生成的,所以外面访问里面需要映射一下。

给出连接:https://blog.csdn.net/leafrenchleaf/article/details/84807457

你可能感兴趣的:(小知识,centos,ssh,服务器)