VPS 上的 FreeBSD 無法連接到網際網路;界面出現配置
我最近將 FreeBSD 12.1-STABLE 的原始虛擬映像安裝到通過 OVH 提供的 VPS 上。我可以通過控制面板上的 KVM 登錄,但機器無法通過 SSH 訪問。原來這是因為機器無法連接到網際網路。
我能夠
vtnet0
在其給定的 IPv4 地址上 ping 介面,但# ping 8.8.8.8
或任何# ping6
返回某種形式的“沒有到主機的路由”。這是輸出
# ifconfig -a
:這是輸出
# netstat -rn
:這是內容
/etc/rc.conf
:Free BSD 手冊的第 11.5 節讓我相信 NIC 已配置,但此時我不確定要更改或調查什麼才能上網。任何指導表示讚賞。
更新(2020 年 4 月 5 日): 我設法讓我的 VPS 上線,這在很大程度上要感謝提供所選答案的貢獻者、來自 FreeBSD 論壇的幫助以及Tim Chase 的這篇文章。
我的解決方案最終需要重新安裝 Debian,然後執行
# apt install network-manager
以# 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"
OVH 配置其實很簡單,對於 IPv4 和 IPv6 都是一樣的:
- 您將具有 /32 前綴長度的給定 IPv4 地址或具有 /64 前綴長度的給定 IPv6 地址靜態應用於網路介面。
- 您將預設 IPv4 和 IPv6 網關設置為 OVH 指定的 IPv4/IPv6 地址,這些地址是根據主機IPv4 地址的 /24 前綴或 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
,網關地址和vtnet0
介面的 IP 地址請注意,不涉及 DHCP。你可以保留它
ifconfig_DEFAULT
,只要你有一個特定ifconfig_vtnet0
的取代它。進一步閱讀
man rc.conf
- 在專用伺服器上配置 IPv6。OVH。
- coltondrg? (2017-04-20)。OVH 管理程序上的 FreeBSD 虛擬機。wpa.coltondrg.xyz。