网络配置
使用systemd 和 iwd,更加轻量化,简单
- iwd:负责 Wi-Fi 的扫描、认证、连接。
- systemd-networkd:负责所有接口(有线 + 无线)的 IP 地址、网关、DNS
- systemd-resolved:负责 DNS 解析
Systemd
启用服务,配置DNS
bash
sudo systemctl enable --now iwd systemd-networkd systemd-resolved
#让 /etc/resolv.conf 指向 systemd-resolved 管理的文件
sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf配置
bash
# /etc/systemd/network/20-wired.network
[Match]
Name=enp3s0 # 有线网口(用 ip link 查看,形如 enp2s0、eth0)。
[Network]
DHCP=yes # 启用 DHCP,自动获取 IP、网关、DNS
[DHCPv4]
RouteMetric=100 # 路由优先级,保证有线优先于 Wi-Fi
# /etc/systemd/network/25-wireless.network
[Match]
Name=wlan0 # 无线网口(用 ip link 确认名字,通常是 wlan0)
[Network]
DHCP=yes
[DHCPv4]
RouteMetric=600 # 数字越大优先级越低,优先使用有线Wi-Fi
查看所有无线设备状态
bash
rfkill list
#输出示例:
#Soft blocked: yes → 软件层面被禁用(可解除)
#Hard blocked: yes → 物理开关/飞行模式开启(需手动拨动)bash
# 解除 Wi-Fi 软件封锁
sudo rfkill unblock wifi
# 解除所有封锁
sudo rfkill unblock alliwd 连接
iwd 只管认证,DHCP 等由其他程序负责(systemd-network)
iwd与NetworkManager冲突, 需要先停止
bash
nmcli connection down "WiFi-SSID"
sudo systemctl disbale --now NetworkManager连接前检查无线网卡状态,如被禁用使用rfkill解开
bash
rfkill list
sudo rfkill unblock wifi # 启用iwctl 基本使用
bash
iwctl device list # 查看网卡设备名
iwctl device wld0 set-property Powered on # 开启网卡(若 Powered: off)
# 扫描并连接
iwctl station wld0 scan
iwctl station wld0 get-networks
iwctl station wld0 connect "Wi-Fi"
iwctl station wld0 show # 查看连接状态
iwctl station wld0 disconnect # 断开连接
iwctl known-networks list # 查看已保存网络
iwctl known-networks "Wi-Fi" forget # 忘记某网络也可以直接输入 iwctl 进入交互模式
有线
插上自动连接
tun
https://blog.iswiftai.com/posts/clash-linux/
使用带有 Tun 模式的 代理软件时 可关闭 dns 解析,代理工具会劫持 53 端口,使用systemd-resolved无意义
sh
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
# 还原 /etc/resolv.conf , 先移除软链接,再新建文件
sudo vim /etc/resolv.conf
nameserver 223.5.5.5 # Ali
nameserver 119.29.29.29 # TX
nameserver 1.1.1.1
nameserver 114.114.114.114NetworkManager
bash
# 扫描 Wi-Fi
nmcli device wifi list
# 连接 Wi-Fi
nmcli device wifi connect "SSID" password "wifi_password"
# 断开 Wi-Fi
nmcli connection down "WiFi-SSID"
# 查看 Wi-Fi
nmcli connection showWi-Fi 节能问题
WARNING
有误! 待修改
如果通过 Wi-Fi 连接,使用以下命令看是否开启了 power saving
bash
# wlp3s0: 接口名, iw dev 命令获取 Eg: Interface wlp3s0 ...
iw dev wlp3s0 get power_save如果有,关闭它
bash
sudo iw dev wlp3s0 set power_save off