• macOS virtualbox在wifi下,桥接网络连不通外网,采用snat解决

环境

  • macOS Monterey 12.1(21c52)
  • virtralbox 6.1.32
  • centos 8.4
  • 宿主机 192.168.3.101
  • 网关 192.168.3.1

问题

  • Settings–>Network选择Bridged Adapter,name:en0: Wi-Fi

  • 配置桥接网络

  • 启动虚拟机,发现不能连接到外网,也不能连接到网关,但是宿主机可以连接到此虚拟机(ssh和ping都可以)
    路由

  • 在网上没有找到答案,但是在apple help上发现这个问题的答案,即mac OS在无线网络下不支持桥接,我也不知道理解的是否有问题。

  • 虚拟机ip:192.168.3.108,网关:192.168.3.1
    虚拟机信息

  • 现在虚拟机可以连通宿主机,但是不能连接网关,那么可以采用宿主机作为路由器,转发虚拟机网络,操作如下,修改完成重启

# vim /etc/sysconfig/network-scripts/ifcfg-enp0s3
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
NAME=enp0s3
UUID=48187ac7-af8a-4642-995b-cbfac40886e0
DEVICE=enp0s3
ONBOOT=yes

IPADDR=192.168.3.113
NETMASK=255.255.255.0
GATEWAY=192.168.3.101
DNS1=114.114.114.114
DNS2=8.8.8.8

网络配置

# 开启转发
## 本次有效
sudo sysctl -w net.inet.ip.forwarding=1
sudo sysctl -w net.inet6.ip6.forwarding=1

## 持久化 sudo vim /etc/sysctl.conf
net.inet.ip.forwarding=1
net.inet6.ip6.forwarding=1

# snat配置 
## mac OS 通过网络层pfctl做网络层的端口转发
sudo vim /etc/pf.conf
nat on en0 from 192.168.3.0/24 to any -> en0

## 重启并加载pf.conf
sudo pfctl -ef /etc/pf.conf

snat

  • 重启虚拟机
    网络
  • 此时虚拟机不能ping通宿主机相同局域网内的其他ip

在这里插入图片描述

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐