Linux实例使用主机名进行内网通信

ECS实例主机名本身不具备内网通信能力,一般通过私网IP进行资源访问。在VPC网络下,针对Linux系统的实例,您可以设置主机名类型为IP格式或ID格式,结合ECS私网域名解析功能,实现主机名到IP地址的解析,从而实现ECS主机名代替IP地址进行同一VPC下内网通信。

前提条件

  • VPC网络。

  • Linux操作系统。

主机名类型

重要

修改主机名类型功能处于邀测阶段。

您可以通过配置主机名类型来设置ECS实例的主机名。ECS实例支持以下三种类型的主机名:

  • 自定义格式主机名:在符合基本格式条件的前提下,完全基于您自定义的字符串生成主机名。

    • 主机名格式

      • Windows系统:长度为2~15个字符,允许使用大小写字母、数字或连字符(-)。不能以连字符(-)开头或结尾,不能连续使用连字符(-),也不能仅使用数字。

        重要

        Windows实例由于长度限制,仅支持自定义类型主机名。

      • 其他操作系统(Linux等):长度为2~64个字符,允许使用点号(.)分隔字符成多段,每段允许使用大小写字母、数字或连字符(-),但不能连续使用点号(.)或连字符(-)。不能以点号(.)或连字符(-)开头或结尾。

      建议您使用可以清楚表明服务器用途的主机名。一般情况下,成熟的运维体系会包括一套完整的编号规则,例如,“业务编号-产品线-地区”。示例如下:

      • app001-live-huanan1可以表示企业的直播app应用位于在华南1地区的001号ECS服务器。

      • jack001-dev-huabei2可以表示企业内部员工jack同学使用的位于华北2地区的001号开发服务器。

    • 自定义有序主机名:在批量创建多台ECS实例时,通过自定义有序主机名,便于区分每台ECS实例或批量分类和管理您的ECS实例,提高管理效率。详细信息,请参见批量设置有序的实例名称或主机名称

  • IP格式主机名:根据实例的主网卡主私网IPv4地址自动生成固定格式的字符串,用户无法编辑。

    重要

    当您通过修改私有IP地址变更实例的主私网IPv4地址后,实例的主机名会自动更新。

    • 主机名格式:ip-[主网卡主私网IPv4样式字符串].[regionID].ecs.internal

      • 主网卡主私网IPv4样式字符串:替换主私网IPv4中的“.”为“-”。

      • regionID:ECS实例的地域ID,您可以通过地域和可用区列表查看对应的地域ID。

      • ecs.internal:ECS实例内部域名。

    • 适用场景:IP地址格式作为主机名一般用于一些特定场景或环境下的临时用途。

      • 临时配置或测试环境:在搭建临时的测试网络、进行设备调试或配置初期,为了便于快速识别和配置,有时可能会临时使用类似IP地址格式的主机名,尤其是在需要快速设置多台设备时。

      • 特定自动化脚本或配置:在一些自动化部署脚本或特定软件配置中,特别是在需要直接通过脚本或程序动态分配和管理设备标识时,可能会使用这种格式作为一种临时标记或占位符。

  • 实例ID格式主机名:根据实例的ID自动生成固定格式的字符串,用户无法编辑。

    • 主机名格式:[实例ID].[regionID].ecs.internal

    • 适用场景

      • 自动化管理和配置:在云计算环境、容器编排(如Kubernetes)、或者使用配置管理工具(如Ansible、Chef、Puppet)时,将主机名直接设置为资源ID可以方便自动化系统识别和管理。这样可以简化脚本编写和模板化配置,因为资源ID通常是唯一的,易于程序处理。

      • 资源追踪与审计:当需要清晰地追踪云服务实例或其他类型资源的生命周期时,使用资源ID作为主机名很有帮助。这使得日志分析、性能监控和故障排查过程中能快速定位到具体的资源,尤其是在大型分布式系统中。

      • 资源关联与依赖管理:在有复杂依赖关系的系统部署中,使用资源ID作为主机名可以帮助明确资源之间的关系。这对于理解服务拓扑、进行故障隔离以及优化资源分配都有好处。

配置实例主机名类型

在创建ECS实例时,如果您不指定,系统会默认分配自定义类型的主机名。

您可以在购买实例时定义主机名类型,或者在创建实例后通过编辑实例属性修改实例主机名类型。

购买实例时定义主机名类型

操作步骤
  1. 前往实例购买页

  2. 选择自定义购买页签。

  3. 按需选择付费类型、地域、实例规格、镜像等配置。

    各配置项详细说明,请参考配置项说明

  4. 点击高级选项(选填)定义主机名,关于主机名类型说明,请参见实例主机名类型

    image

编辑实例属性时修改实例主机名类型

  1. 登录ECS管理控制台

  2. 在左侧导航栏,选择实例与镜像 > 实例

  3. 找到目标ECS实例,在操作列中,选择图标> 实例属性 > 编辑实例属性,弹出编辑实例属性的对话框。

    选择主机名类型,如果选择自定义,则您需要自行输入自定义的主机名。如果选择基于IP生成主机名基于实例ID生成主机名,则系统会自动生成。关于主机名类型说明,请参见实例主机名类型

    重要

    Windows实例由于长度限制,仅支持自定义类型主机名。

    image

  4. 重启实例,使主机名类型修改生效。

Linux实例基于IP/ID格式主机名进行内网通信

场景介绍:在同一个专有网络VPC及安全组下准备两台ECS实例。

基本信息

  • 目标实例:对目标实例进行主机名及私网域名解析配置。

    • 操作系统:Alibaba Cloud Linux 3.2

    • 实例ID:i-8ps625l5075b18r0v1cp

    • 主私网IPv4:172.16.0.101

    • 安全组:sg-bp1g41cssbfqzwjwrqtl

  • 测试实例:在测试实例通过ping <目标实例主机名>访问目标实例。

    • 操作系统:Alibaba Cloud Linux 3.2

    • 实例ID: i-8ps8nsvbw63sr7n2bw7j

    • 主私网IPv4:172.16.100.170

    • 安全组:sg-bp1g41cssbfqzwjwrqtl

具体操作

  1. 配置目标实例主机名为基于实例IP格式。您也可以配置实例主机名为基于实例ID格式,具体操作,请参见配置实例主机名

    image

  2. 重启目标实例,使主机名配置生效。

  3. 确认目标实例的主机名。

    1. 远程连接目标实例。

      具体操作请参见通过密码或密钥认证登录Linux实例

    2. 执行如下命令,查看目标实例当前主机名。

      hostname

      本示例返回信息如下,可以看到主机名修改已生效:

      image

  4. 配置目标实例私网域名解析,具体操作,请参见配置ECS私网域名解析

    说明

    此处私网域名解析记录类型和第一步中配置的主机名类型要匹配,否则您可能无法通过主机名访问目标实例(通过私网域名访问实例,请参见ECS实例之间通过私网域名通信):

    • 主机名选择基于实例 ID 生成主机名,那么私网域名解析则选择启用实例 ID 格式主机名到实例主私网 IPv4 的 DNS 解析(A记录)。

    • 主机名选择基于 IP 生成主机名,那么私网域名解析则选择启用 IP 格式主机名到实例主私网 IPv4 的 DNS 解析(A记录)。

    本示例中,选择启用实例 ID 格式主机名到实例主私网 IPv4 的 DNS 解析(A记录)

    image

  5. 登录测试实例,通过ping <目标实例主机名>测试连通性。

    1. 通过Workbench远程连接测试实例。具体操作请参见通过密码或密钥认证登录Linux实例

    2. 执行如下命令,验证目标实例主机名的内网连通。

      ping ip-172-16-0-101.ap-southeast-3.ecs.internal

      本示例中返回结果如下,可以通过主机名实现内网访问:

      image

常见问题

无法访问IP格式的主机名了怎么办?

  • 可能原因:您将实例基于IP格式的主机名配置在了其他应用程序中,但是实例的主私网IP发生了变化,导致原来配置的主机名已经失效。

  • 解决方案:当实例的私网IP发生变更,您需要更新在其他应用中依赖主机名的相关配置。

相关文档

Windows实例不支持基于IP或基于ID生成主机名,无法实现基于主机名进行私网通信,但支持配置私网域名,实现基于私网域名进行通信,详细信息,请参见ECS实例之间通过私网域名通信