标签: ifupdown

升级到 Ubuntu 22.04 后使用 ifupdown 和 systemd-resolved 时 DNS 损坏

长话短说

sudo cp -p /etc/network/if-up.d/resolved /etc/network/if-up.d/.resolved.broken-orig

#Edit /etc/network/if-up.d/resolved and take out the extraneous quotes on lines 48 and 52
#The fix looks like:
diff /etc/network/if-up.d/.resolved.broken-orig /etc/network/if-up.d/resolved
48c48
< "$DNS"="$NEW_DNS"
---
> $DNS="$NEW_DNS"
52c52
< "$DOMAINS"="$NEW_DOMAINS"
---
> $DOMAINS="$NEW_DOMAINS"
Run Code Online (Sandbox Code Playgroud)

至少,这看起来是有效的。


最近通过将旧系统升级到 Ubuntu 22.04.1 LTSdo-release-upgrade并遇到 DNS 问题,错误消息为:

nslookup google.com
Server:     127.0.0.53
Address:    127.0.0.53#53

** server can't find google.com: SERVFAIL
Run Code Online (Sandbox Code Playgroud)

/etc/network/if-down.d/resolved: 12: mystatedir: not found
/etc/network/if-up.d/resolved: 71: DNS: not found
/etc/network/if-up.d/resolved: 1: /run/network/ifupdown-inet-em1: DNS=8.8.8.8: not found
/etc/network/if-up.d/resolved: 2: /run/network/ifupdown-inet-em1: DOMAINS=local_search_domain.com: …
Run Code Online (Sandbox Code Playgroud)

ubuntu systemd-resolved ifupdown

19
推荐指数
1
解决办法
7155
查看次数

如何以简单而可靠的方式找出给定 Linux 发行版上使用的网络接口管理解决方案?

我经常发现自己坐在各种不同的 Linux 安装面前,需要检查或更改网络设置。它们是来自不同发行版(主要是 debian 和 opensuse,但也有 ubuntu 和派生变体)的不同版本,处于不同的定制状态,这意味着我无法对它们的配置做出可靠的假设。

那么我如何才能以简单而强大的方式(即发行版和版本无关)找出哪个服务用于管理网络接口和相关的网络设置。(如 NetworkManager、Systemd-networkd 或 ifup/down)

-> 最好使用基本系统工具

系统可以在系统启动时找出要使用/启动的服务,因此必须有一个命令告诉我,或者有一个配置文件可以在其中查找它。

我知道,类似的问题已经被问过很多次了,但我能找到的所有答案都归结为两个不太有用的要点之一:

  • 作者提到了他们的发行版/版本,有人告诉他们,可能使用了哪个程序
  • 或者他们被告知基本上尝试每种可能性,直到找到正在运行的经理

我认为这两者既不可靠也不安全。(更何况试错是非常耗时的)

linux networking networkmanager systemd-networkd ifupdown

5
推荐指数
1
解决办法
608
查看次数