我最近将 FreeBSD 12.1-STABLE 的原始虚拟映像安装到通过 OVH 提供的 VPS 上。我可以通过控制面板上的 KVM 登录,但无法通过 SSH 访问该计算机。事实证明,这是因为机器无法连接到互联网。
我能够 ping 接口的vtnet0
给定 IPv4 地址,但# ping 8.8.8.8
或任何# ping6
返回某种形式的“没有到主机的路由”。
以下是 的输出# ifconfig -a
:
这是输出# netstat -rn
:
这是内容/etc/rc.conf
:
Free BSD 手册的第 11.5 节让我相信 NIC 已配置,但此时我不太确定要更改或调查哪些内容才能上网。任何指导表示赞赏。
更新(2020 年 4 月 5 日): 我已经成功让我的 VPS 上线,这主要归功于贡献者提供的选定答案、FreeBSD 论坛的帮助以及蒂姆·蔡斯的这篇文章。
# apt install network-manager
我的解决方案最终需要重新安装 Debian,然后运行# nmcli device show ${INTERFACE_NAME}
以获取 OVH 默认分配给我的机器的必要网络信息,然后重新安装 FreeBSD 并进行/etc/rc.conf
如下配置:
ifconfig_vtnet0="inet $EXTERNAL_IPv4 netmask 255.255.255.255 broadcast $EXTERNAL_IPv4"
static_routes="net1 net2"
route_net1="$GATEWAY_IPv4 -interface vtnet0"
route_net2="default $GATEWAY_IPv4 "
ifconfig_vtnet0_ipv6="inet6 $EXTERNAL_IPv6 prefixlen 64"
ipv6_defaultrouter="$GATEWAY_IPv6"
答案1
OVH 配置实际上非常简单,对于 IPv4 和 IPv6 是相同的:
- 您可以将给定的具有 /32 前缀长度的 IPv4 地址或具有 /64 前缀长度的给定 IPv6 地址静态应用到网络接口。
- 您将默认 IPv4 和 IPv6 网关设置为 OVH 指定的 IPv4/IPv6 地址,这些地址是通过可预测且记录在案的方式从您的 IP 地址的 /24 前缀确定的。主持人IPv4 地址或 IPv6 地址的 /56 前缀。
- 您设置静态路由,告诉您的计算机如何路由到默认网关的 IP 地址。
第三部分很重要。 OVH 提供的 IP 网关(有意)与您自己的 IPv4/IPv6 地址不在同一子网中,以便排除您的 LAN IP 广播流量。实际上,您与 Internet 其余部分之间的连接是双主机 LAN,其中第二台主机不可隐式路由(通过 IPv4 机制),因此必须具有显式路由。
这对于所有操作系统都是相同的,只是各个操作系统的设置方式有所不同。在 ”只有 /32 的 OpenBSD 反复删除其通往世界的静态路由”,正如您所看到的,OpenBSD 方式是正常的默认 IP 网关内容加上/etc/hostname.vio0
.
FreeBSD 的方式是设置/etc/rc.conf
:
- a
ifconfig_vtnet0
静态分配 IPv4 和 IPv6 地址,其中包含 IPv4netmask 255.255.255.255
或 IPv6prefixlen 64
defaultrouter
以及IPv6_defaultrouter
给出各个网关的 IP 地址的设置- (对于 IPv4,因为 IPv6 可以发现路由)到网关的静态路由,配置为(例如)
wibble
添加到 的值static_routes
和(随后命名的)route_wibble
设置、网关地址和接口-net
的 IP 地址vtnet0
请注意,不涉及 DHCP。你可以保留它ifconfig_DEFAULT
,只要你有具体的 ifconfig_vtnet0
取代它。
进一步阅读
man rc.conf
- 在专用服务器上配置 IPv6。 OVH。
- 科尔顿德格? (2017-04-20)。OVH 虚拟机管理程序上的 FreeBSD VM。 wpa.coltondrg.xyz。