惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LangChain Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Attack and Defense Labs
Attack and Defense Labs
T
Tor Project blog
Scott Helme
Scott Helme
Schneier on Security
Schneier on Security
Security Archives - TechRepublic
Security Archives - TechRepublic
S
Security @ Cisco Blogs
GbyAI
GbyAI
Help Net Security
Help Net Security
T
Troy Hunt's Blog
Recent Announcements
Recent Announcements
Engineering at Meta
Engineering at Meta
L
LINUX DO - 最新话题
TaoSecurity Blog
TaoSecurity Blog
AWS News Blog
AWS News Blog
Y
Y Combinator Blog
SecWiki News
SecWiki News
Microsoft Azure Blog
Microsoft Azure Blog
Spread Privacy
Spread Privacy
A
About on SuperTechFans
Stack Overflow Blog
Stack Overflow Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
Google DeepMind News
Google DeepMind News
NISL@THU
NISL@THU
T
Threat Research - Cisco Blogs
S
Securelist
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
雷峰网
雷峰网
H
Help Net Security
AI
AI
The Hacker News
The Hacker News
B
Blog
罗磊的独立博客
L
Lohrmann on Cybersecurity
爱范儿
爱范儿
C
Cisco Blogs
有赞技术团队
有赞技术团队
Project Zero
Project Zero
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
S
Secure Thoughts
A
Arctic Wolf
Blog — PlanetScale
Blog — PlanetScale
腾讯CDC
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Latest news
Latest news
Cloudbric
Cloudbric
D
Docker
博客园 - 叶小钗
月光博客
月光博客

mephisto.cc

修复rime-ice无法弹出候选框的问题 开机滚动字体显示优化 个人网站安全防护 树莓派上部署Vaultwarden 使用goaccess实时分析Caddy日志 个人网站监控 Hugo全站AVIF记 Linux下尝试使用Godot开发小游戏 Arch linux dae 透明代理 Airflow接管galler-dl下载任务 如何使用gallery-dl批量下载图像 Arch核显下如何愉快玩Dota2和CS2 Rime添加dota2词库 Arch 重装记录 Supertuxkart iOS版终于发布了 打造自己的流媒体音乐服务 剪切板管理工具clipcat推荐 MangoHud性能监控 微信小程序开发记 Rofi试用 解决Arch下VSCode无法输入中文的问题 独立窗口管理器下无法录屏问题处理 上海市二手房成交数据监控 OpenLDAP监控 Arch linux如何顺畅连接蓝牙设备 使用Git和Ansible管理配置文件 Arch Linux SSL VPN 客户端配置 简单获取celery任务实时结果 Arch linux下iNode客户端的安装和使用方法 券商费率调整记 迷你主机组装记 Labwc更换定制皮肤 树莓派跑分流代理 实用自动代理配置示例 九年老鼠标复活记 Openvpn示例 Mac下如何旋转webp图片 如何隐藏Vscode中Markdown PDF插件的头部内容 解决Linux下网络配置无法变更保存的问题 labwc环境启用wlogout Ubuntu下新官方微信尝鲜 简单检测用户是否开启广告屏蔽 Atuin ZFS下卡顿问题解决 Wine安装64位微信 Fish 和 Atuin使用记 Fastapi简单实现临时下载链接 Fastapi微信公众号开发简要 Hugo根据语种展示不同内容 如何修复Waybar微信图标错误 信封加密简要 Linux环境下维护公众号记录 快速隐藏和呼出终端 Wayland环境自动切换壁纸 SuperTuxKart 试玩 简单抓取雪球股票快讯 为什么你的kill命令不能列出信号表 Wine安装微信保姆教程 Hysteria科学上网简要 Ubuntu 23.10 钉钉无法启动解决方法 网站导航栏防止插入Adsense自动广告 Linux环境按键检测 Hugo文末添加最后修改时间 Wayland环境ksnip无法复制问题解决 我眼中的股票市场 Caddy简单图片防盗链 greetd和regreet使用教程 Wayland环境下截图加后期修改 Wayland 环境下gif录屏 Firefox的一些有趣功能 Ubuntu 切换系统语言 Firefox 标题栏高度调整 网站添加回到顶部功能 Hugo自定义字体 Labwc 便捷配置 Wofi使用教程 窗口管理器labwc使用记 文件共享软件Dufs推荐 Hugo静态站点接入Adsense广告 Fcitx5配置详解 Ubuntu安装chrome的方法总结 一种Xterm.js的全屏方案 Google网址收录api Python示例 手机听离线音乐 Snipe it资产导入 应用启动器yofi使用配置 Snipe it资产管理系统安装使用 Ubuntu开机启动加速 Vue3 vite TypeScript跨域等相关设置 Ubuntu手动升级Libreoffice Ubuntu设置alacritty为默认终端 简体文章批量转换为繁体 使用Inkscape调整svg图片大小 实用命令 使用mitmproxy给手机app抓包 Python中rstrip方法细解 Github同主机多仓库部署deploy key问题处理 Linux安装最新版本Python KeePassXC使用教程 Ubuntu 22.10连接蓝牙耳机报错br-connection-profile-unavailable解决方法 Caddy日志配置轮转和格式化
Arch/labwc 环境网络相关设置
2025-12-23 · via mephisto.cc

Arch 安装的时候,没插网线的话,archinstall 会提示你使用 iwd 相关套件连接无线网络,能满足最基本的网络需求。

本文记录我的常用网络设置,主要包含 NetworkManager、iwd、Dnsmasq、waybar 相关配置。

1. 安装 NetworkManager、dnsmasq、iwd

1sudo pacman -S networkmanager dnsmasq iwd

选择 NetworkManager 功能强大,你能遇到的网络相关需求都能满足,毕竟大部分桌面环境预装,自带的 nmcli、nmtui 等工具也很好用。

Dnsmasq 在小型网络中很实用,比如家庭网络。

iwd 依赖轻,值得信赖。

2. 配置文件

在 NetworkManager 中启用 dnsmasq

1➜  ~ cat /etc/NetworkManager/conf.d/dns.conf
2[main]
3dns=dnsmasq

设置 dnsmasq 缓存

1➜  ~ cat /etc/NetworkManager/dnsmasq.d/custom-cache.conf
2cache-size=4096

cach-size 的意思是它在内存中缓存 DNS 查询结果的最大条目数量。

-c, --cache-size= Set the size of dnsmasq's cache. The default is 150 names. Setting the cache size to zero disables caching. Note: huge cache size impacts performance.

虽然 systemd-resolved 也提供类似功能,但 Dnsmasq 还能自定义域名、屏蔽广告等。另外 systemd 太庞杂了,什么都要接管的感觉。

自定义域名

示例展示自动代理、路由器各定义了一个域名,比较容易记住。

1➜  ~ cat /etc/NetworkManager/dnsmasq.d/custom-domain.conf
2address=/proxy.local/192.168.1.5
3address=/route.local/192.168.124.1

上游 DNS 设置

实测上海电信 dns 部分时候丢包,腾讯 dns 部分时候延时高。最后,选了阿里云的。

每个人网络状况不一,多测试使用选个适合自己的。

 1➜  ~ cat /etc/NetworkManager/dnsmasq.d/upstream-dns.conf
 2# aliyun
 3server=223.5.5.5
 4server=223.6.6.6
 5
 6# cf
 7server=1.1.1.1
 8
 9# 优化参数(可选,提升解析效率)
10strict-order       # 严格按配置顺序使用上游DNS(先试第一个,失败再试第二个)
11no-poll            # 禁用DNS轮询,减少资源占用
12proxy-dnssec       # 转发DNSSEC请求(提升解析安全性)

当然还可设置广告屏蔽等,常访问的网站基本没什么广告,也表示理解。

设置启用 iwd 为 WiFi 后端

1➜  ~ cat /etc/NetworkManager/conf.d/wifi_backend.conf
2[device]
3wifi.backend=iwd
4wifi.iwd.autoconnect=yes

iwd 依赖很少(请看下面👇Depends On 那一栏),只依赖内核和 C 库。

 1➜  ~ sudo pacman -Qi iwd
 2Name            : iwd
 3Version         : 3.10-1
 4Description     : Internet Wireless Daemon
 5Architecture    : x86_64
 6URL             : https://git.kernel.org/cgit/network/wireless/iwd.git/
 7Licenses        : LGPL-2.1-or-later
 8Groups          : None
 9Provides        : None
10Depends On      : glibc  readline  libreadline.so=8-64  ell  gcc-libs
11Optional Deps   : qrencode: for displaying QR code after DPP is started [installed]
12Required By     : None
13Optional For    : networkmanager
14Conflicts With  : None
15Replaces        : None
16Installed Size  : 2.18 MiB
17Packager        : Andreas Radke <andyrtr@archlinux.org>
18Build Date      : Fri 26 Sep 2025 01:46:26 PM CST
19Install Date    : Tue 09 Dec 2025 05:06:33 PM CST
20Install Reason  : Explicitly installed
21Install Script  : No
22Validated By    : Signature

不信可以看看官方 wiki

The result is a self-contained environment that only depends on the Linux Kernel and the runtime C library.

iwd 架构图

iwd architecture

刚好迷你主机带的 Intel 网卡,iwd 是 Intel 为 Linux 编写的,我还买了 Intel 的股票,赌美国会拯救牙膏厂。

1➜  ~ lspci | grep -i network
202:00.0 Network controller: Intel Corporation Wi-Fi 6 AX200 (rev 1a)

这样一通配置,已经能满足日常网络需求。

3. waybar 网络相关配置

如果你看得上老朽的配置,建议参考仓库:https://github.com/kmephistoh/dotfiles

配置在 config/waybar 目录下可直接复用。

1"network": {
2	"format": "{icon} {essid} {signalStrength}%",
3	"format-wifi": "  {ifname} {ipaddr}/{cidr} {signalStrength}%",
4	"format-ethernet": "󰈀 {ipaddr}",
5	"format-disconnected": "󰖪 disconnected",
6	"tooltip-format": "{ifname}: {ipaddr}/{cidr} via {gwaddr}",
7	"interval": 5
8},

记得安装 nerd 字体,不然图标部分会显示方块:

1sudo pacman -S ttf-jetbrains-mono-nerd

waybar 效果截图:

waybar-network

能看到网卡名、ip 信息、无线网络信号强度等,当然显示 ssid 也是可以的,改下配置即可。

4. 其它

按照上述配置,如果足够细心,你可能会有点疑惑🤔:

1➜  ~ ps aux |grep dnsmasq
2nobody       786  0.0  0.0  14900  7680 ?        S    19:05   0:00 /usr/bin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/run/NetworkManager/dnsmasq.pid --listen-address=127.0.0.1 --cache-size=400 --clear-on-reload --conf-file=/dev/null --enable-dbus=org.freedesktop.NetworkManager.dnsmasq --conf-dir=/etc/NetworkManager/dnsmasq.d

明明我写的 cache-size=4096,为什么上面启动项参数里面还是--cache-size=400? 如何确定当前 cache-size 是生效的?

其实是生效的,验证方法是给 dnsmasq 的进程发送 SIGUSR1 信号,当 dnsmasq 收到 SIGUSR1 信号时,它会将统计信息写入系统日志。

示例如下,先使用 pgrep 命令找到 pid,再用 kill 命令发送信号(注意同时打开日志查看 journalctl -u NetworkManager -f)

1➜  ~ pgrep dnsmasq
2786
3➜  ~ sudo kill -USR1 786

同时查看日志输出

 1➜ ~ journalctl -u NetworkManager -f
 2Dec 23 19:29:54 minipc dnsmasq[786]: time 1766488194
 3Dec 23 19:29:54 minipc dnsmasq[786]: cache size 4096, 0/298 cache insertions re-used unexpired cache entries.
 4Dec 23 19:29:54 minipc dnsmasq[786]: queries forwarded 126, queries answered locally 81
 5Dec 23 19:29:54 minipc dnsmasq[786]: queries for authoritative zones 0
 6Dec 23 19:29:54 minipc dnsmasq[786]: DNSSEC per-query subqueries HWM 0
 7Dec 23 19:29:54 minipc dnsmasq[786]: DNSSEC per-query crypto work HWM 0
 8Dec 23 19:29:54 minipc dnsmasq[786]: DNSSEC per-RRSet signature fails HWM 0
 9Dec 23 19:29:54 minipc dnsmasq[786]: pool memory in use 720, max 1776, allocated 2400
10Dec 23 19:29:54 minipc dnsmasq[786]: child processes for TCP requests: in use 0, highest since last SIGUSR1 0, max allowed 20.
11Dec 23 19:29:54 minipc dnsmasq[786]: server 223.5.5.5#53: queries sent 126, retried 0, failed 0, nxdomain replies 0, avg. latency 21ms
12Dec 23 19:29:54 minipc dnsmasq[786]: server 223.6.6.6#53: queries sent 0, retried 0, failed 0, nxdomain replies 0, avg. latency 0ms
13Dec 23 19:29:54 minipc dnsmasq[786]: server 1.1.1.1#53: queries sent 0, retried 0, failed 0, nxdomain replies 0, avg. latency 0ms
14Dec 23 19:29:54 minipc dnsmasq[786]: server 192.168.124.1#53: queries sent 0, retried 0, failed 0, nxdomain replies 0, avg. latency 0ms

上面日志的输出中,包含 cache size 4096, 0/298 cache insertions re-used unexpired cache entries.,表明当前生效的的确是 4096

如果长期不关电脑、或者是路由器等,dns 缓存还是能加快网络访问速度的。

最后,万一网络掉线了,如何重连网络呢?

首先,在家里我一年到头都遇不到几次掉线。如果真的掉线,labwc 环境下,我偏向命令行操作。

  • 命令行:nmcli device wifi connect ssid password your_wifi_password
  • tui:nmtui-connect 按界面指示操作,很简单的。

还可以用 iwctl, iwd 自动的命令行工具。

1iwctl # 进入无线工具
2device list # 查无线网卡名(如 wlan0)
3station wlan0 scan # 扫描WiFi
4station wlan0 get-networks # 列WiFi列表
5station wlan0 connect "WiFi名" # 输入密码连接
6exit # 退出工具
7ping archlinux.org # 验证联网

推荐使用 nmtui-connect,毕竟谁也不想记住那么长的命令,当然还有 NetworkManager 的 各种 GUI 可供选择。

都用窗口管理器了,我看没有那个必要。

一般来说,WiFi 网络连接信息,Linux 系统是自动保存在配置文件中的,开机启动会自动连接,断线的概率很低。

板载的无线网卡,在夏天散热条件不佳的情况下,可能会遇到。