Host-Only方式实现主机/虚拟机互通

  1. 点击创建Host-Only网卡

    1659263422994

  2. 不启用DHCP服务器(方便后续可以使用静态的IP访问虚拟机)

    设置IPv4地址

    1659263479379

  3. 虚拟机网络设置

    启用网卡2,连接方式选择仅主机(Host-Only)网络,界面名称选择刚才创建的Host-Only网卡

    1659263713203

  4. 启动虚拟机,进行网络配置

    查看网络配置

    1
    2
    ifconfig
    # centos中若没有该命令可以使用ip addr

    1659264458715

    enp0s3、enp0s8等就是网卡的名称

    1
    2
    # 编辑网卡配置,若没有该文件可以从已有的网卡配置中拷贝后做修改,其他的网卡配置文件形如ifcfg-[网卡名称]
    vi /etc/sysconfig/network-scripts/ifcfg-enp0s8

    修改或添加如下字段

    1
    2
    3
    4
    5
    # 配置成静态IP
    BOOTPROTO="static"
    # 设置的IP应当和网卡处于同一网段
    IPADDR="192.168.56.10"
    NETMASK="255.255.255.0"

    重启网络服务

    1
    service network restart
    • 附:网卡配置文件与自动配置脚本

      网卡配置文件

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      TYPE="Ethernet"
      PROXY_METHOD="none"
      BROWSER_ONLY="no"
      BOOTPROTO="static"
      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="enp0s8"
      UUID="90e928eb-b2e6-444e-9c43-462513e6d130"
      DEVICE="enp0s8"
      ONBOOT="yes"
      IPADDR="192.168.56.10"
      NETMASK="255.255.255.0"

      自动配置脚本

      1
      2
      3
      4
      5
      6
      #!/bin/bash
      name=$1
      echo 'copy script file'
      cp ${name} /etc/sysconfig/network-scripts/ifcfg-${name}
      echo 'restart network service'
      service network restart

      脚本使用方式

      1. 修改权限,使其有执行权限

        1
        chmod +x [脚本名称]
      2. 指定网卡名称,同目录下放网卡配置文件并以网卡名称命名,执行以下命令进行网络自动配置

        1
        2
        ./[脚本名称] [网卡名称]
        # 例如:./set-network.sh enp0s8

        说明:脚本读取同目录下的enp0s8文件,并将该文件的内容拷贝(覆盖)对应的网卡配置文件,示例命令则将enp0s8文件拷贝(覆盖)/etc/sysconfig/network-scripts/ifcfg-enp0s8文件

  5. 宿主机ping测试连通性

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    > ping 192.168.56.10

    正在 Ping 192.168.56.10 具有 32 字节的数据:
    来自 192.168.56.10 的回复: 字节=32 时间<1ms TTL=64
    来自 192.168.56.10 的回复: 字节=32 时间<1ms TTL=64
    来自 192.168.56.10 的回复: 字节=32 时间<1ms TTL=64
    来自 192.168.56.10 的回复: 字节=32 时间<1ms TTL=64

    192.168.56.10 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
    往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms
  6. (可选)配置hosts文件

    hosts文件路径

    Windows:C:\Windows\System32\drivers\etc\hosts

    Linux:/etc/hosts

    添加域名映射

    1
    192.168.56.10 centos-0

    ping测试连通性

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    > ping centos-0

    正在 Ping centos-0 [192.168.56.10] 具有 32 字节的数据:
    来自 192.168.56.10 的回复: 字节=32 时间<1ms TTL=64
    来自 192.168.56.10 的回复: 字节=32 时间<1ms TTL=64
    来自 192.168.56.10 的回复: 字节=32 时间<1ms TTL=64
    来自 192.168.56.10 的回复: 字节=32 时间<1ms TTL=64

    192.168.56.10 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
    往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms