方案特点
1、此方案不需要配置桥接。
2、此方案可以实现宿主机访问虚拟机,也可以实现在虚拟机里面访问互联网,但同一时间这两者只能选一个,不能两个同时实现。这是通过 ifcfg-enp0s3 文件来配置的(下面详细讲)。
实施步骤
在宿主机(Windows)系统上,输入ipconfig命令,其中有一项 “以太网适配器 VirtualBox Host-Only Network:”,把这一项下面的IPv4地址记下来。
这个IP地址也可以在VirtualBox的主机网络管理器里面找到。
进入CentOS 8虚拟机的网络设置对话框,
这一页的配置都是默认的,都不用改。
点击“端口转发”,增加一条端口转发规则,如下。我这里转发的是8080端口,你需要访问虚拟机上的哪个端口centos配置dhcp服务器 vm设置,这里就填哪个端口。
在CentOS 8虚拟机中打开 /etc/sysconfig/network-scripts 目录linux vps,下面有一个 ifcfg-enp0s3 文件。这是Linux配置文件,没有后缀名,文件名就叫 ifcfg-enp0s3。
这个文件中的BOOTPROTO配置项,是关键所在。
在新安装的CentOS 8系统上,此文件的默认内容为
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=cfe94780-34d7-4c00-814e-1ced870a26c2
DEVICE=enp0s3
ONBOOT=yes
BOOTPROTO=dhcp 表示动态分配IP地址。 这样配置的作用是让虚拟机里面能够访问互联网,也就是能上百度等各种网站,能用yum, wget命令下载软件。
但是,BOOTPROTO=dhcp 这个配置,会导致我们无法从宿主机访问虚拟机里的服务。我上面已经配置了端口转发规则centos配置dhcp服务器 vm设置,把虚拟机的8080端口转发到宿主机,但由于IP地址是动态分配的,宿主机上还是访问不到。
解决方法是修改 ifcfg-enp0s3 文件linux关机命令, 如下
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
#BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy

NAME=enp0s3
UUID=cfe94780-34d7-4c00-814e-1ced870a26c2
DEVICE=enp0s3
ONBOOT=yes
IPADDR=192.168.56.1
NETMASK=255.255.255.0
GATEWAY=192.168.56.1
DNS1=223.5.5.5
BOOTPROTO=static 这行配置意思是静态分配IP地址,分配的地址在文件最后四行。这样配置了之后,重启虚拟机,宿主机就可以访问到虚拟机上的8080端口了。 效果如下:
前面我们配置的端口转发规则,是把虚拟机的8080端口转发到宿主机的127.0.0.1:8080端口,因此在宿主机上访问127.0.0.1:8080,访问到的是虚拟机里面的8080服务。图中是我在虚拟机里面运行的Tomcat。