有时当我运行命令时:
sudo apk update && sudo apk upgrade
即使连接到互联网,Alpine linux 也无法更新软件包。但如果我这样做了,sudo su "echo 'nameserver 8.8.8.8' > /etc/resolv.conf"
我就能下载它们。但这个解决方案:
- 让我沮丧的是我需要一直设置 dns。
- 有时
/etc/resolv.conf
会被自身覆盖。
我怎样才能有一个更永久的解决方案?
答案1
太长了;博士
打开文件/etc/udhcpc/udhcpc.conf使用文本编辑器。
如果该文件丢失,您只需创建它(可能还有其包含的文件夹)。追加行
RESOLV_CONF=no
完毕。
在这里找到:https://wiki.alpinelinux.org/wiki/Udhcpc
对于我的情况,接受的答案并不令人满意
- 它导致很多东西被粘贴而不知道它在做什么,
- 它需要安装额外的软件并且
- 它只是将给定的 DNS 服务器添加到写入的内容之前/etc/resolv.conf尽管如此,而不是取代它。
我确信有更多关于如何让 dhclient 替换内容而不是预先添加内容的说明,但是对于像阻止 DHCP 替换这样简单的事情来说,这太多的研究和头痛/etc/resolv.conf根本不。
答案2
您可以通过安装该dhclient
软件包来解决该问题。通过最后一次运行来最后一次启用 Google 的 DNS 服务器:
sudo su "echo 'nameserver 8.8.8.8' > /etc/resolv.conf"
然后运行这个命令组合:
sudo apk update && sudo apk upgrade && sudo apk add dhclient
为了获取新鲜的软件包并安装dhclient
.然后配置/etc/dhcp/dhclient.conf
并输入以下内容:
option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
send host-name = gethostname();
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, domain-search, host-name,
dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.sntp-servers,
netbios-name-servers, netbios-scope, interface-mtu,
rfc3442-classless-static-routes, ntp-servers;
prepend domain-name-servers 8.8.8.8, 8.8.4.4;
并重新启动网络:
sudo rc-service networking restart
(可选)如果运行以下命令,您可以确认是否有效:
sudo reboot
无论哪种情况,您都可以通过 ping google 来确认 dns 已解析。
ping google.com
答案3
Udhcpc 需要 /etc/udhcpc/udhcpc.conf,所有人都可以通过一行访问 dns="ns1 ns2"