如何在DigitalOceanVPS上将Arch从Netcfg升级到Netctl

来自菜鸟教程
跳转至:导航、​搜索

介绍

2013 年 4 月 10 日, 宣布 netctl 将取代 netcfg。 netcfg 包现在被认为是遗留的并且不受支持,所有未来的开发都将在 netctl 包上。 本教程将指导您完成将 Droplet (VPS) 转换为新包的过程。

准备中

首先,通过控制面板制作当前工作的 droplet 的快照。 这需要首先从 SSH 或 VNC 关闭 VPS。快照完成后,使用控制面板中的 VNC 功能连接到您的 VPS。 以 root 身份登录或以您的用户身份登录并使用以下命令打开 root shell:

su -

或者,如果您配置了 sudo,请使用:

sudo -i

然后,您应该会看到类似于以下内容的提示:

[root@www] #

更新

首先,删除 netcfg:

pacman -R netcfg

更新包数据库并安装 netctl:

pacman -Sy netctl

使用您选择的编辑器打开 /etc/netctl/eth0:

nano /etc/netctl/eth0

粘贴或输入以下内容,将 YOUR.IP 替换为您的 droplet 分配的静态地址(重要提示:注意末尾的 /24!),将 YOUR.GATEWAY 替换为您的 droplet 分配的网关地址。 这些地址可以在控制面板中找到:

Interface=eth0
Connection=ethernet
IP=static
Address=('YOUR.IP/24')
Gateway='YOUR.GATEWAY'
DNS=('8.8.4.4')

有关 netctl 配置文件的信息可以在 此处 找到。 上述字段如下:

  • 接口:与此配置文件关联的网络接口的名称。
  • 连接:此配置文件的连接类型,例如。 以太网, 无线, 网桥, 隧道
  • IP:为接口分配 IPv4 地址的方法。
  • 地址:分配给接口的 IPv4 地址和子网。
  • 网关:此配置文件处于活动状态且 IP=静态时使用的默认网关。
  • DNS:此配置文件处于活动状态时要使用的一组 DNS 服务器。

可以按以下格式指定其他 DNS 服务器:

DNS=('8.8.4.4' '8.8.8.8')

在启动时启用配置文件:

netctl enable eth0

重启 VPS:

systemctl reboot

清理

在您的 VPS 重新启动后,尝试通过 SSH 将其连接到:

ssh you@YOUR.IP

如果成功,请确保您的 VPS 可以解析地址:

dig +short google.com

如果返回 IP 地址,则一切正常,您可以删除旧的 netcfg 文件:

rm -r /etc/network.d/

恢复

如果出现问题,请先尝试从控制面板中的 VNC 进行修复。

如果您无法从 VNC 解决问题,您可以临时设置网络。 一、“up”(开启)界面:

ip link set dev eth0 up

然后,将您的 IP 地址分配给接口:

ip addr add YOUR.IP/24 dev eth0

设置到互联网的路由:

ip route add default via YOUR.GATEWAY

最后,设置一个用于解析地址的 DNS 服务器:

echo "nameserver 8.8.4.4" >/etc/resolv.conf

您的液滴现在应该回到互联网上。

如果你需要重新安装 netcfg,你需要从它现在所在的 Arch User Repository 编译它。 首先,创建一个临时目录并将其更改为:

mkdir /tmp/netcfg
cd /tmp/netcfg

然后,下载 PKGBUILD 文件,该文件告诉 makepkg 在哪里可以找到源代码以及如何创建包:

curl https://aur.archlinux.org/packages/ne/netcfg/PKGBUILD -o PKGBUILD

最后,使用 makepkg 安装依赖项(-s),下载源代码,构建包并安装它(-i):

makepkg -si

netcfg 配置文件在卸载时保留在原处,因此只需重新启动即可将系统恢复到工作状态。

提交人:特雷弗·伯杰龙