Network Controller

网络控制器是使用 C++ 和 FLTK 编写的原生 X11 应用,启动命令为 network-controller。支持中文,入口位于系统应用菜单;默认包含在 Xorg 镜像中。 普通用户选择 sudo 密码或 root 密码解锁受限工作进程,GUI 保持原用户身份。 root 账户直接进入。密码不保存在命令参数、环境变量、文件或日志中。

查看与诊断

左侧按实际接口查询结果列出网卡。“概览”显示 IPv4、掩码、网关、MAC、MTU、 解析器。自动刷新只更新状态,不覆盖未保存的配置。若系统导出标准接口计数,则 同时显示收发总量、速率、包数及错误;当前内核尚未导出这些计数,界面明确提示 并隐藏该组字段,不把缺失数据显示为零。网关和连接信息使用已有公开网络查询接口。

“诊断工具”提供 Ping、DNS 查询、TCP 端口测试和 IPv4 子网计算。工具菜单提供 有效路由、TCP 连接、DHCP 租约、解析器、DHCP 日志和诊断报告。诊断命令 异步执行,支持取消、超时与关闭清理;结果在“输出”中保留,可复制或导出。 TCP 连接建立不代表 TLS 校验或目标应用健康;DNS、端口与 Ping 的失败各自报告。

配置与迁移

持久化编辑明确限定当前内核支持的 eth0,其他可查询接口(若有)只读显示。 没有 IPv4 地址或处于禁用状态的网卡也按实际接口索引查询。支持自动 DHCP、静态 IPv4 和禁用;静态模式可以不设置默认网关,DNS 必须明确选择 自定义或 Cloudflare。自定义 DNS 最多三个 IPv4 地址,以空格分隔。

配置位于 /etc/reliefos/network.conf,是版本化数据,不作为 shell 脚本执行。 静态地址、前缀、网关和 DNS 在 GUI、工作进程及启动链分别验证。文件目录和 配置必须由 root 所有,不能由组或其他用户写入,不能使用符号链接替代配置文件。 保存检查外部变动,并通过临时文件、同步与 rename 原子替换;旧内容保存在 network.conf.bak。“恢复上次配置”也检查当前快照,不能绕过冲突检查。 原先没有配置文件的状态可以恢复为缺省状态。

旧的 DNS-only network.conf 保持可读;旧 udhcpc DNS 策略在迁移前继续生效。 第一次保存写入完整的新格式并备份旧文件,恢复旧备份后仍能通过原链路启动。 升级时保留本地 /etc 配置,不要求手动删除旧文件。 版本化 profile 生效后,旧 DNS 写入 API 返回 EBUSY,调用方应通过本程序或 编辑 profile 后重启网络服务调整策略;不会在解析器忽略旧文件时谎报设置成功。 未迁移的旧配置继续支持旧 API。

仍由 reliefos-dhcp OpenRC 服务拥有网络生命周期。DHCP 保留原有监督器, 静态/禁用执行一次性设置;停止服务依据启动时记录的实际模式,而不是刚保存的 新模式,避免漏停旧 DHCP 进程。客户端写入 root 所有的 PID 文件,停止时校验 该记录及实际命令行,通过 OpenRC start-stop-daemon 限时等待客户端退出, 然后清除租约与旧地址,避免残留客户端覆盖静态配置。 network-profile 工具独立于可选 GUI, 因此关闭 GUI 组件不影响基础网络启动。解析器仍由唯一的 publish-resolver 发布,DHCP 租约不会覆盖显式 DNS 策略。

“仅保存”更改持久化策略,供随后服务重启、DHCP 更新或下次启动读取; “保存并应用”同时重启现有网络服务,可能中断连接。应用失败时已保存的文件 仍保留,程序显示失败和输出,可修正或恢复备份;不能将保存成功等同于联网成功。

边界

当前 GUI 不提供 IPv6 持久化配置;系统的 IPv6/SLAAC、RDNSS 与命令行配置见 IPv6 网络。此 GUI 也不提供 Wi-Fi、VPN、桥接、VLAN、任意静态路由管理或改变内核固定的 MTU。当前内核未导出 ARP 表和全网卡计数,不能将单条 TCP 连接的字节计数冒充 网卡总流量。不支持的能力不会显示成已生效。以太网链路能力取决于当前内核和驱动。 QEMU 运行验证与 VMware 实机验证分别记录;VMware 验证未完成。