如何在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 配置文件在卸载时保留在原处,因此只需重新启动即可将系统恢复到工作状态。