我想重命名我的一台 Debian Linux 服务器,赋予它一个更具描述性、基于角色的名称。
以下是我知道需要更改名称的地方:
- /etc/hostname & /etc/mailname & 执行主机名命令
- /etc/hosts
- 其他服务器上的 /etc/hosts,例如我们的远程日志服务器
- /etc/password(我通常将 root 重命名为与服务器名称匹配,以便于邮件分类)
- Logwatch/Logcheck 配置
- 需要运行“rkhunter --propupd”
- 备份客户端配置 - 备份服务器配置
- 如果这是集群的一部分,则在心跳或保持活动配置中命名(在所有集群服务器上)
- /etc/drbd.conf(如果有共享的 drbd 驱动器)
- DNS 服务器 - 内部和外部
- 虚拟中心的服务器名称(这是一个虚拟服务器)
- Nagios/OpsView 或其他监控软件中的名称
- 服务器文档中的参考资料
我忽略了什么?重命名服务器时是否还有其他常见事项需要更改?
答案1
还有几件事需要检查:
如果您运行 MySQL,请不要忘记更新它。默认情况下,
mysql_install_db
将向mysql.user
表中添加条目,允许从服务器自己的主机名进行访问。它通常localhost
也会添加,因此您在这里可能没问题,但值得仔细检查以确保您不会将自己锁定。如果您正在运行 Apache,请确保全局更新
ServerName
以及任何可能使用旧规范主机名的虚拟主机。如果您正在运行邮件服务器(Sendmail、Postfix 等),请确保它可以确定自己的主机名。例如,Postfix 将尝试自动填写
$myhostname
,但如果您在 中手动覆盖了它,这将无济于事/etc/postfix/main.cf
。如果此服务器与其他设置为根据主机名执行访问控制的服务器(例如
/etc/exports
NFS/etc/hosts.allow
等)对话,您也需要更新这些服务器。如果您有任何使用服务器旧主机名作为通用名称 (CN) 的 SSL 密钥,则需要使用新主机名重新创建它们并发出新的证书请求。希望它们是自签名的,这样您就不必为新证书向某人付费。严格来说,如果您不这样做,SSL 仍将有效,但客户端通常会弹出有关名称不匹配的警告消息。
当然可能还有其他的,这取决于您运行的应用程序。
答案2
我会用“mass grep”的方式来做。例如:
$ grep -rin“主机名”/> /my/output/file.txt
并在完成时检查 file.txt。
原因在于几乎不可能准确地知道哪里需要更改主机名/ip,即使您了解配置,用户也可能会将他们的软件配置为依赖它,盲目搜索往往会在麻烦出现之前避免它。
答案3
您始终可以在本地网络上的其他机器上的 hosts 文件中添加另一个条目(如果可行),以便机器能够响应以下两者:
[root@165 ~]# cat /etc/hosts # 不要删除以下行,或各种程序 # 需要网络功能的操作将会失败。 127.0.0.1 本地主机.本地域 本地主机 78.119.15.19 myserver.net myserver 78.119.15.20 myserver2.net myserver2 another_name yet_another
在上面的例子中,myserver.net 是本地计算机,myserver2.net 是您正在设置别名的远程计算机
答案4
当我重命名我的 Ubuntu 主机时(由于我定期克隆虚拟机以进行不同的测试,因此这种情况经常发生)我不仅要这样做......
sudo grep -R oldhostname /etc/*
但我还必须重新运行 postfix 配置。仅编辑配置文件并不能改变一切。
sudo dpkg-reconfigure postfix
完成这些更改并重新启动后,一切就正常了。