13、【Ubuntu】【VSCode】VSCode 断联问题分析:hostname(一)
【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除
背景
上篇 blog
【Ubuntu】【VSCode】VSCode 断联问题分析:getent 命令(二)
继续介绍了下 getent
命令的描述以及回环地址 127.0.1.1
和 127.0.0.1
的区别,下面继续来看下
VSCode 断联问题
上篇 blog 【Ubuntu】【VSCode】VSCode 断联问题分析:getent 命令(二) 里提到了主机名 adminpc-M600
也具有一个回环地址 127.0.1.1
,下面就主机名再详细展开说下
首先,主机名也有自己的一个命令 hostname
,在终端输入
man hostname
可以查看 hostname
命令如下
可以看到,如果直接在终端输入 hostname
,那么将返回这台机器的主机名
另外,上面还提到了另一个命令 domainname
,这个命令会显示这个机器的域名,下面介绍下主机名和域名的区别,首先是其定义不同:
- 主机名 (hostname):一台具体计算机在网络中的名字,具有局部性,通常只在某个局部网络环境(比如家庭,公司)中有意义,比如当前的电脑叫
adminpc-M600
,同处于这个局部环境的打印机叫printer-01
等 - 域名 (domainname):一个组织或网站在互联网上的名字,用于标识一个域 (domain),是全局性的,在互联网上是唯一的,比如 google.com 等
然后其层级也不同,它们不是并列关系,而是包含关系,比如全限定域名 (FQDN) 就等于主机名 + 域名,举个例子,一台机器主机名叫 adminpc-M600
,域名叫 mycompany.com
,其全限定域名 adminpc-M600.mycompany.com
就是这台机器在互联网上完整的唯一标识
可以用 domainname
查本台机器的域名,当然,一般是没有的
在终端输入
hostname -f
可以查看本机的查看全限定域名 FQDN,-f
选项描述如下
从描述可以看出,-f
选项会显示全限定域名 FQDN(Fully Qualified Domain Name),FQDN 由主机名和域名构成,在没有域名时,hostname -f
只会显示主机名
另外,上篇 blog 【Ubuntu】【VSCode】VSCode 断联问题分析:getent 命令(二) 提到,getent hosts google.com
可以查看其 IP 地址,注意,这里填的是 google.com
,而不是 www.google.com
,google.com
是域名,而 www.google.com
是全限定域名 FQDN,没错,前面的 www
就是主机名,是 Web 服务器代号
如果输入命令 getent hosts www.google.com
,同样也可以获得其 IP 地址
可以看到 google.com
和 www.google.com
这里的 IP 地址是不一样的,但经过负载均衡器之后,都指向同一个地方,所以在浏览器上,输入这俩域名,打开的网站内容是一样的,这其中实现可能有几个点
- DNS 配置:网站管理员可以在 DNS 服务器上为域名
mycompany.com
和adminpc-M600.mycompany.com
都配置了 A 记录或 CNAME,比如
A mycompany.com → 142.250.180.78
CNAME adminpc-M600.mycompany.com → mycompany.com
这样无论输入 mycompany.com
还是 adminpc-M600.mycompany.com
,DNS 都能解析到相同的 IP 地址,上面的情况显然不是这种,网站上更常见的,还是下面这种
- HTTP 重定向 (301/302):网站设置一个主域(比如
www.csdn.net
),当访问 csdn.net 时,Web 服务器收到请求,立即返回一个 HTTP 301 (永久重定向) 响应,告诉浏览器:用www.csdn.net
访问,此时浏览器就会自动跳转到www.csdn.net
,确保搜索引擎和用户都使用统一的 URL,避免重复内容
ok,先到这里,下篇 blog 继续