我正在尝试了解有关 CoreOS 的更多信息。(我没有使用 Vagrant,只是使用普通的 VirtualBox。)所以我使用 创建了一个磁盘coreos-install
。不幸的是,我找不到我的原始cloud-config.yaml
文件,但它就是这样简单的东西。
#cloud-config
users:
- name: core
passwd: somehash
groups:
- sudo
- docker
启动虚拟机后,我能够使用密码登录。我还可以ping google.com
。
但是,接下来我想做的是从 OS X 主机连接到 CoreOS VM。因此,我进入 VM 的设置 > 网络,然后启用适配器 2 作为主机专用适配器。(我已经配置了主机专用网络,因为我有一个通过 SSH 进入的 Ubuntu VM。)
无论如何,回到 CoreOS,我创建了一个文件/etc/systemd/network/10-static.network
。它看起来像这样。
[Match]
Name=enp0s8
[Network]
Address=192.168.56.3/24
Gateway=192.168.56.1
我重新启动了 VM,并且能够从 OS X 通过 SSH 进入 CoreOS——但现在我无法连接到互联网。ping google.com
每次都失败。
因此,我创建了另一个文件/etc/systemd/network/20-dhcp.network
。它看起来像这样。
[Match]
Name=en*
[Network]
DHCP=yes
我重启了虚拟机。我可以通过 SSH 从主机登录,但无法连接到互联网。
如果我禁用虚拟机的适配器 2,那么我就可以连接到互联网。但是,我无法再从主机进行 SSH 连接。
有没有办法设置网络,以便我可以从 OS X 通过 SSH 进入 CoreOS和还能连接到互联网吗?
答案1
我使用了虚拟机设置->网络->适配器 1->附加 = 桥接适配器和虚拟机设置->网络->适配器 1->名称 = Wi-Fi 选项,并且我能够通过 ssh 登录并从 CoreOS VM 访问互联网
答案2
我也遇到了同样的问题。我查看了这。如果我们没有指定网关选项,则使用 DHCP 来路由流量。所以我Gateway=192.168.56.1
从文件[Network]
部分删除了该行static.network
。这个技巧奏效了。无需写入dhcp.network
文件。只需重新启动实例并尝试 ping google.com,您就会得到响应。我的最终文件是这样的 -
$ cat /etc/systemd/network/static.network
[匹配]
名称=enp0s8
[网络]
地址=192.168.56.102/24
DNS=8.8.8.8
DNS=8.8.4.4