1.背景
也许你自己已经拥有了服务器,也许你工作中,公司有服务器供你使用,可是你发现没有,你为什么可以直接通过机器名字,就能直接访问另外一台机器,例如:
[root@master ~]# ssh root@node1
root@node1's password:
如果你自己已经几台服务器了,可是如何将几套机器实现快速通过name连接呢,也许你之前直接根据公网ip可以实现连接,但是每次都得获取公网ip不会很麻烦吗,所以我希望可以快速实现自己机器的互连,最好还能免密
2.操作
先给大家介绍一个命令hostnamectl -h查看帮助
[root@master ~]# hostnamectl -h
hostnamectl [OPTIONS...] COMMAND ...
Query or change system hostname.
-h --help Show this help
--version Show package version
--no-ask-password Do not prompt for password
-H --host=[USER@]HOST Operate on remote host
-M --machine=CONTAINER Operate on local container
--transient Only set transient hostname
--static Only set static hostname
--pretty Only set pretty hostname
Commands:
status Show current hostname settings
set-hostname NAME Set system hostname
set-icon-name NAME Set icon name for host
set-chassis NAME Set chassis type for host
set-deployment NAME Set deployment environment for host
set-location NAME Set location for host
如果你的机器名字很繁琐,先把你机器的名称改得好听一点吧
[root@instance-6qpd67vu ~]# hostnamectl set-hostname master
重新登陆发现你的名称已经改为master
同样的道理将你的其他机器改为node1....
3.实现名称解析ip
[root@master ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost
127.0.0.1 instance-9qans59e594.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.0.6 instance-9qans59e59 instance-9qanss59e59.novalocal
106.10.27.41 master
106.11.2.108 node1
最后两行信息就是做的ip映射吧,这样你就可以直接ssh root@node1,访问node1的机器,不用在关心公网ip
并且,远程传输文件时,也是可以直接使用hostname的,例如scp test.sh root@node1:/home/work/
至于机器之间的免密登陆,需要去生成相应的密钥,私钥,我希望有个门神一样的东西,给一个公共入口。