开发者社区 问答 正文

vim /etc/hosts映射问题

在自己的电脑上三台服务器vim /etc/hosts添加:[内网IP][主机名],阿里云对别的主机是[外网IP][主机名],对自己是[内网IP][主机名]。阿里云服务器完成不了ssh免密登录、zookeeper运行不了、Hive启动不了。怎样实现不同账号的内网映射?就是在阿里云/etc/hosts里设置[内网IP][主机名]就能实现三台服务器的连接。

展开
收起
smartxuan 2020-07-18 10:35:55 944 分享 版权
阿里云 AI 助理回答

要在阿里云的ECS(Elastic Compute Service,弹性计算服务)实例之间实现基于内网IP的通信,并且希望在每个服务器的/etc/hosts文件中通过内网IP和主机名映射来简化连接,你需要确保以下几个步骤已经完成:

  1. 开启安全组规则:首先,确保所有涉及的ECS实例之间的内网访问没有被安全组规则所阻止。你需要为每个实例的安全组添加相应的内网入站规则,允许来自其他实例所在安全组的TCP或UDP流量(具体端口根据你的应用需求,如SSH默认是22端口,Zookeeper可能需要2181等)。这样,实例之间可以通过内网IP直接通信。

  2. 配置/etc/hosts:在每台ECS实例上编辑/etc/hosts文件,将其他实例的内网IP地址与对应的主机名进行映射。格式如下:

    [内网IP地址] [主机名]
    

    例如:

    10.0.0.2 ecs-instance-1
    10.0.0.3 ecs-instance-2
    
  3. 测试网络连通性:使用ping命令测试从一台ECS到另一台ECS的内网IP是否可以连通。如果能够成功ping通,说明网络层面的配置是正确的。

  4. SSH免密登录设置:对于SSH免密登录问题,你需要在每台服务器上生成SSH密钥对(如果尚未生成),然后将公钥复制到其他服务器的~/.ssh/authorized_keys文件中。这一步骤与是否使用内网IP无关,而是SSH协议本身的特性。可以使用以下命令生成密钥对并复制公钥:

    • 生成密钥对(如果未生成):
      ssh-keygen
      
    • 复制公钥到其他服务器(假设已配置好SSH无密码登录或使用密码登录):
      ssh-copy-id 用户名@目标服务器内网IP
      
  5. Zookeeper和Hive配置:确保在Zookeeper和Hive的配置文件中使用的主机名与你在/etc/hosts中设置的主机名相匹配。这些服务通常依赖于正确解析其配置文件中的主机名来建立集群间的通信。

  6. 注意账号权限:不同账号间进行内网映射时,确保每个账号有权限修改自己的/etc/hosts文件,并且在执行上述操作时具有足够的权限。如果是通过阿里云RAM(Resource Access Management)管理不同用户,还需要确保这些用户有足够的权限访问和修改各自ECS实例的相关配置。

完成以上步骤后,理论上你应该能够在阿里云ECS实例之间通过内网IP和主机名映射实现无缝连接,进而顺利运行像SSH免密登录、Zookeeper集群以及Hive服务等。如果还有问题,建议检查日志文件以获取更详细的错误信息,以便进一步诊断问题所在。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答