这篇教程将详细说明如何在裸金属服务器初始化时,通过 ISO 挂载并使用 Debian-network-tui 图形化快速完成网络配置,避免手工编辑 /etc/network/interfaces 的繁琐与错误。
还能自动化配置apt源、DNS、SSH服务+公钥导入
界面截图
主菜单

修改网卡界面

使用
一、工具简介
Debian-network-tui 是一个基于 TUI 的网络配置工具,专为 Debian 11–13 设计,功能类似 nmtui,但直接管理 ifupdown 的配置文件。主要特性:
- • 编辑连接:新建 / 修改 / 删除 iface
- • 连接类型:Ethernet、VLAN、Bond
- • 可在以太网或 Bond 上建 VLAN(如
bond0.100) - • Bond:从已 UP 网卡勾选 slaves,支持模式 / miimon / LACP;自动为 slave 写入
manual + bond-master - • VLAN:从已 UP 网卡/bond 选择 Parent,VLAN ID 范围 2–4094
- • IPv4:
dhcp / static / manual / disabled(新建默认 disabled) - • IPv6:
disabled / dhcp / static / auto - • 独立编辑 DNS:
/etc/resolv.conf - • 一键用本地配置文件覆盖
/etc/resolv.conf - • 一键执行:覆盖 DNS + 清空/应用 apt 源 + 安装 ifenslave/vlan + 配置 SSH(带实时日志)
- • 本地安装
ifenslave / vlan 的 .deb - • 清空 / 应用 apt 源(从程序目录读取配置文件)
- • 配置 SSH:安装 openssh-server、允许 root 密钥登录、导入公钥
不依赖 NetworkManager,适合服务器与最小化安装。
二、安装方式
1. 从Github 下载
从 GitHub Releases 下载:
https://github.com/Songxwn/Debian-network-tui/releases
# amd64 示例(版本号按 Release 实际修改)tar -xzf debian-network-tui-v0.3.15-linux-amd64.tar.gzsudo install -m 755 debian-network-tui-v0.3.15-linux-amd64 /usr/local/bin/debian-network-tui
2. 从源码构建 (需要Go和make环境)
git clone https://github.com/Songxwn/Debian-network-tui.gitcd Debian-network-tuigo mod tidymake build # 输出 bin/debian-network-tui
交叉编译:
make cross # 生成 amd64/arm64 二进制
3.询问公众号发送Debian - 百度云盘下载
三、运行与配置
基本运行
sudo debian-network-tui
可指定测试配置文件路径:
sudo INTERFACES_FILE=/tmp/interfaces debian-network-tui
空闲超时默认 65 秒,可用环境变量调整(0 关闭):
sudo IDLE_TIMEOUT_SEC=120 debian-network-tui
界面操作
- • 连接列表:
a 添加,d 删除,Enter 编辑,Esc 返回 - • 编辑表单:Tab 切换字段,左右键切换选项,Ctrl+S 保存,Esc 取消
主菜单
- 1. Edit a connection — 编辑网卡配置
- 2. Edit DNS (/etc/resolv.conf) — 编辑 DNS(
Ctrl+O 可从本地文件覆盖) - 3. Apply DNS from file (overwrite) — 用二进制同目录的
resolv.conf / dns.conf 等覆盖系统 DNS(先备份) - 4. Activate a connection —
ifup - 5. Deactivate a connection —
ifdown - 6. Restart networking — 重启网络服务
- 7. Clear all connections — 清空网卡配置(保留 lo)
- 8. Install ifenslave/vlan (.deb) — 安装本地 deb
- 9. Clear apt sources — 清空 apt 源
- 10. Apply apt sources from file — 从文件应用 apt 源
- 11. Configure SSH server (root key) — 配置 SSH 与 root 密钥登录
- 12. One-shot setup (DNS, apt, bond/vlan, SSH) — 按顺序一键执行上述文件化步骤,并显示实时日志(需本地文件齐全)
本地文件约定(与二进制同目录)
一键部署(菜单 12)所需文件: DNS + APT + Bond/VLAN deb + SSH 公钥(见下方各项)。
DNS(菜单 3 / 12):
- •
resolv.conf / dns-resolv.conf / dns.conf → 覆盖 /etc/resolv.conf - • 示例:
examples/resolv.conf
Bond/VLAN 包(菜单 8 / 12):
APT 源(菜单 9–10 / 12):
- •
sources.list 或 apt-sources.list → /etc/apt/sources.list - •
*.list / *.sources → /etc/apt/sources.list.d/ - • 示例:
examples/sources.list
SSH(菜单 11 / 12):
- •
openssh-server_*.deb(可选,没有则走 apt)
PubkeyFile=root.pub
- •
root.pub:OpenSSH 公钥内容示例:examples/ssh-root.conf、examples/root.pub
SSH 配置内部逻辑说明
菜单项 Configure SSH server (root key) 确认后,按以下顺序执行(实现见 internal/sshsetup):
1. 安装 openssh-server
- 1. 取当前可执行文件所在目录(解析符号链接后)。
- 2. 扫描该目录下文件名包含
openssh-server(或同时包含 openssh 与 server)的 .deb。 - 3. 若找到本地包:
apt-get install -y --allow-downgrades <deb路径...>(DEBIAN_FRONTEND=noninteractive)。 - 4. 若未找到:
apt-get install -y openssh-server(依赖当前 apt 源可用)。
2. 解析公钥来源
优先读取同目录下的 ssh-root.conf(可选):
未配置或文件不存在时,按顺序尝试:
任一存在即采用;全部缺失则报错退出(不继续改 sshd)。
公钥文件中:跳过空行与 # 注释;仅接受以 ssh-rsa、ssh-ed25519、ecdsa-sha2-* 等类型开头的行。
3. 配置 sshd(root 仅密钥登录)
写入 drop-in(不直接改主配置,便于卸载/覆盖):
路径:/etc/ssh/sshd_config.d/99-debian-network-tui-rootkey.conf
PermitRootLogin prohibit-passwordPubkeyAuthentication yesAuthorizedKeysFile .ssh/authorized_keys
含义:
- •
prohibit-password:允许 root 远程登录,但禁止密码,只接受公钥。 - • 依赖 Debian 默认
Include /etc/ssh/sshd_config.d/*.conf。
4. 导入 root 公钥
- 1. 确保目录
/root/.ssh 存在,权限 700。 - 2. 读取已有
/root/.ssh/authorized_keys,按完整行去重。
5. 重启服务
依次尝试:
- 1.
systemctl restart ssh(Debian 单元名) - 2. 失败则
systemctl restart sshd - 3. 无 systemctl 时:
service ssh restart
任一步失败会返回错误(此时包与配置可能已写入,需人工检查)。
安全提示
- • 请确认
root.pub 中是你自己的公钥,误导入他人密钥等于开放 root。 - •
prohibit-password 后 root 不能再用密码登录;请先保证密钥可用或保留其他管理员账号。 - • 若系统使用云镜像自定义 sshd,请确认
sshd_config.d 会被加载。
四、常见操作
- • 选择 Edit a connection → 输入 IP、掩码、网关、DNS
- • 保存后配置示例:
# Managed by debian-network-tui: eth0allow-hotplug eth0iface eth0 inet static address 192.168.1.10 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 8.8.8.8 1.1.1.1
- • 主菜单选择 Activate a connection → 调用
ifup <iface>
- • 编辑后需执行
ifup <iface> 或 systemctl restart networking - • 通过 SSH 修改时,若停用当前网卡可能导致断连
- •
interfaces.d/ 中的配置会合并到主文件,需手动清理旧片段
五、适用场景
- • 裸金属服务器初始化:ISO 挂载后快速配置网络
六、总结
在裸金属服务器开局配置场景中,Debian-network-tui 提供了一个高效、直观的解决方案。通过 ISO 挂载即可运行,避免了手工编辑的复杂性,非常适合批量部署和远程环境。
PS:将软件本体和配置文件封装为ISO,推荐使用软碟通 > https://www.ultraiso.net/
运维技术交流群
发送邮件到 ➡️ me@songxwn.com
或者关注WX公众号:网工格物
微信扫码博客(最先更新)
https://songxwn.com/