我的网络是用的iwd+systemd-networkd,然后用ln -s /usr/lib/systemd/network/80-wifi-station.network.example /etc/systemd/network/80-wifi-station.network建了个链接,但是每次启动都会有提示“systemd-networkd[975]: Could not process new link message: File exists”,虽然不影响使用,但不知道是不是有问题,有人能指点下吗?
为何非要软链接呢? systemd-networkd的配置文件格式又不难记, 再不济复制过去也好吧...
这跟是不是软链接没关系吧
我用你的问题询问了DeepSeek,他是这样说的:
这个错误信息表明 systemd-networkd 在启动时遇到了一个已存在的网络链接文件或配置冲突。虽然你说不影响使用,但确实表示存在配置问题。让我详细分析并提供解决方案:
问题分析
当 systemd-networkd 看到你创建的符号链接 /etc/systemd/network/80-wifi-station.network 时,它会尝试处理这个配置。错误通常发生在:
- 网络接口已被其他服务管理 - iwd 或 networkd 可能重复管理同一个接口
- 配置文件重复 - 可能有多个配置文件匹配同一个网络接口
- 符号链接问题 - 链接的目标文件可能不兼容或已过时
解决方案
方案1:检查并修复配置文件内容
# 查看你链接的示例文件内容
cat /usr/lib/systemd/network/80-wifi-station.network.example
# 查看实际生效的配置
cat /etc/systemd/network/80-wifi-station.network
方案2:创建自定义配置文件(推荐)
与其使用符号链接,不如创建自己的配置文件:
# 删除现有的符号链接
sudo rm /etc/systemd/network/80-wifi-station.network
# 创建新的配置文件
sudo nano /etc/systemd/network/80-wifi.network
添加以下内容(根据你的需求调整):
[Match]
Name=wlan0 # 或者使用通配符 wlp* 匹配所有无线接口
Type=wlan
[Network]
DHCP=yes
# 如果需要静态IP,使用:
# Address=192.168.1.100/24
# Gateway=192.168.1.1
# DNS=8.8.8.8
# 启用IPv6(可选)
IPv6PrivacyExtensions=yes
方案3:检查是否有其他网络服务冲突
# 检查是否还有其他网络管理器运行
systemctl status NetworkManager
systemctl status wpa_supplicant
# 如果有,禁用它们
sudo systemctl disable --now NetworkManager
sudo systemctl disable --now wpa_supplicant
# 确保 iwd 和 systemd-networkd 已启用
sudo systemctl enable --now iwd
sudo systemctl enable --now systemd-networkd
方案4:检查 iwd 的配置
确保 iwd 没有尝试管理 IP 地址:
# 编辑 iwd 配置
sudo nano /etc/iwd/main.conf
确保包含:
[General]
EnableNetworkConfiguration=true # 让 systemd-networkd 处理IP
# 或者完全禁用 iwd 的网络配置
[General]
EnableNetworkConfiguration=false
方案5:清理并重启
# 停止服务
sudo systemctl stop systemd-networkd
sudo systemctl stop iwd
# 删除所有网络配置文件
sudo rm /etc/systemd/network/*.network
# 创建最基本的无线网络配置
sudo nano /etc/systemd/network/wireless.network
# 重启服务
sudo systemctl restart systemd-networkd
sudo systemctl restart iwd
诊断命令
要更清楚地了解问题,可以运行:
# 查看 systemd-networkd 的详细日志
journalctl -u systemd-networkd -f
# 查看所有网络接口状态
networkctl list
# 查看特定接口详情
networkctl status wlan0
建议配置方案
对于 iwd + systemd-networkd 组合,推荐以下配置:
- iwd 仅负责无线连接认证
- systemd-networkd 负责 IP 地址分配和路由
最简单的 wireless.network 配置文件:
[Match]
Name=wlan0
Type=wlan
[Network]
DHCP=yes
这个错误虽然可能不影响基本使用,但消除它可以确保你的网络配置更稳定,避免未来可能出现的问题。建议使用方案2创建自定义配置文件。
我在谷歌的时候,刷到一篇相关问题的帖子,在2018年的时候就已经有人遇到这样的问题。
.example文件就是用来参考或者拷贝的。如果直接软链接可能会出现文件权限错误、升级覆盖(如果被误修改,pacman 一般不会为其生成 pacnew 文件)、链接失效(新版本可能会修改文件名称或位置)等问题。
是的,抱歉没注意审题,在谷歌搜到类似的帖子了。实际上直接复制过来即可。
我试了下复制,没用,不 是这方面的问题
问题是我不知道是iwd的原因还是systemd的原因
这里是日志记录的信息:systemd[1]: /usr/lib/systemd/system/systemd-networkd.service:52: System call llseek is not known, ignoring.
3月 20 02:56:04 systemd[1]: /usr/lib/systemd/system/systemd-networkd.service:52: System call file_getattr is not known, ignoring.
3月 20 02:56:04 systemd[1]: /usr/lib/systemd/system/systemd-networkd.service:52: System call file_setattr is not known, ignoring.
3月 20 02:56:04 systemd[1]: /usr/lib/systemd/system/systemd-networkd.service:52: System call fstatat is not known, ignoring.
3月 20 02:56:04 systemd[1]: /usr/lib/systemd/system/systemd-networkd.service:52: System call newfstat is not known, ignoring.
3月 20 02:56:04 systemd[1]: systemd-networkd.service: Watching D-Bus name 'org.freedesktop.network1'.
3月 20 02:56:04 systemd[1]: systemd-networkd.service: Changed dead -> running
3月 20 02:56:04 systemd[1]: systemd-networkd.service: D-Bus name org.freedesktop.network1 now owned by :1.11
3月 20 02:56:51 systemd[1]: systemd-networkd.service: Got notification message from PID 1004: WATCHDOG=1
systemd更新到260.1,问题解决了