在统信UOS中实现域名静态解析需修改/etc/hosts文件,方法包括:一、nano手动编辑;二、vi编辑+chattr锁定防覆盖;三、图形化文本编辑器以管理员运行;四、同步更新hostname与hosts确保本机域名可解析;五、批量导入预置映射列表。

如果您需要在统信UOS系统中实现对特定域名的静态解析映射,或绕过DNS服务器直接指定IP地址与主机名的对应关系,则必须修改系统的本地域名解析表——即 /etc/hosts 文件。以下是多种可行的配置方法:
一、使用nano编辑器手动修改hosts文件
该方法通过文本编辑器直接编辑系统级hosts配置文件,适用于所有统信UOS桌面版与服务器版,修改后立即对当前会话及后续服务生效,但需确保权限正确与格式规范。
1、在桌面空白处右键,选择“在终端中打开”。
2、输入 sudo su 并回车,输入当前用户密码(输入时无显示),回车获取root权限。
3、执行命令:nano /etc/hosts,进入编辑界面。
4、定位到文件末尾,在新行中按严格格式添加条目:IP地址[Tab键]完整域名[Tab键]简称主机名(可选),例如:192.168.10.50 app.internal.local app。
5、按 Ctrl+O 回车保存,再按 Ctrl+X 退出编辑器。
6、执行 ping -c 3 app.internal.local 验证是否成功解析至指定IP。
二、使用vi编辑器修改并设置文件不可变属性
此方法在完成hosts编辑后,通过chattr命令锁定文件,防止网络管理服务(如NetworkManager或systemd-networkd)在重启或重载时覆盖用户自定义条目,适用于生产环境长期稳定需求。
1、以root权限打开终端,执行 vi /etc/hosts。
2、按 i 进入插入模式,在文件末尾新增所需映射行,确保每行仅含一个IP与一个或多个域名,用Tab分隔。
3、按 Esc 键退出插入模式,输入 :wq 保存并退出。
4、执行 chattr +i /etc/hosts,将文件设为不可修改状态(需root权限)。
5、验证锁定效果:尝试再次执行 echo "127.0.0.1 test.local" >> /etc/hosts,应提示 Operation not permitted。
6、如后续需修改,须先运行 chattr -i /etc/hosts 解锁。
三、通过图形化文本编辑器以管理员身份修改
该方法规避终端操作门槛,利用UOS自带的“文本编辑器”图形界面完成hosts编辑,适合不熟悉命令行的用户,但必须以管理员权限启动编辑器才能写入系统保护路径。
1、点击左下角“开始菜单”,在搜索栏输入 文本编辑器,右键其图标,选择“以管理员身份运行”。
2、在文本编辑器中,点击菜单栏“文件”→“打开”,在地址栏粘贴路径:/etc/hosts,回车。
3、若提示权限不足,确认已使用管理员身份启动;否则点击“是”授权访问。
4、在文件末尾换行,输入目标映射,例如:10.0.2.15 gitlab.uos internal.gitlab,注意使用Tab键而非空格分隔。
5、点击“文件”→“保存”,关闭编辑器。
6、打开新终端窗口,运行 getent hosts gitlab.uos,检查输出是否包含对应IP与域名。
四、配合hostname与hosts同步更新全系统主机名识别
当修改hosts文件目的是使本机能通过自定义域名访问自身(如开发调试场景),需同时确保本机主机名在hosts中有对应解析条目,否则部分服务(如SSH、Apache虚拟主机)可能因反向解析失败而异常。
1、执行 hostname 获取当前主机名,例如输出为 uos-dev。
2、运行 ip addr show | grep "inet " | grep -v "127.0.0.1" 查找本机主IP,例如得 192.168.1.100。
3、以root权限编辑hosts:nano /etc/hosts。
4、查找并修改形如 127.0.1.1\tuos-dev 的行,将其IP替换为实际局域网IP,例如改为:192.168.1.100\tuos-dev uos-dev.local。
5、保存退出后,执行 hostname -f,确认输出为完整FQDN(如 uos-dev.local)。
6、测试本地服务调用:curl http://uos-dev.local 或 ssh uos-dev.local。
五、批量导入预置hosts映射列表
当需部署大量内部域名映射(如微服务集群、多测试环境隔离),可预先准备标准格式的hosts片段文件,通过重定向方式追加导入,避免逐行手工输入错误,提升配置一致性与可复现性。
1、创建临时映射文件:nano /tmp/custom-hosts.txt。
2、输入多行标准格式内容,每行均为 IP[Tab]域名1[Tab]域名2...,例如:172.16.0.10 api.staging env-staging。
3、保存退出后,执行:sudo tee -a /etc/hosts 。
4、立即清理临时文件:rm /tmp/custom-hosts.txt。
5、运行 grep -v "^#" /etc/hosts | tail -n 5 查看最后5行,确认新增内容已写入且无注释干扰。
6、对任一新增域名执行 nslookup 域名 127.0.0.1,验证是否被本地解析器优先响应。















