Linux 中 /etc/hosts 文件的用途是什么?

系统 Linux
本文将更加深入的了解一些关于该文件的用途。一起来看一下吧。

Linux 或任何其他操作系统中的 /etc/hosts 文件用于映射IP地址和域名。

这是一个很一般的答案,对吧?本文将更加深入的了解一些关于该文件的用途。

Linux 中的 /etc/hosts 文件是什么

在联网的早期,/etc/hosts 文件被用来将 IP 地址(比如:8.8.8.8)转换为人类可读的形式(比如:​​www.google.com​​),随着时间的推移,该功能不再被需要。现在,解析域名的整个过程都是通过 DNS(域名系统)完成的。

既然如此,我们为什么还需要保留这个文件呢? 目前,hosts 文件虽然很少但仍在部分情况下被使用到:

  • 当你想阻止某网站时;
  • 当DNS被破坏时,它可以用作备份;
  • 也可以将其用作本地DNS服务器。

此外我们还可以想到的许多其他任务,例如阻止广告、加固本地防火墙,以及许多其他涉及 IP 和 DNS 使用的任务等。

下面我们通过例子来介绍一下关于 /etc/hosts 文件的几个实际用途。

使用/etc/hosts文件重定向URL

hosts 文件需要两个组件才能工作:域名和 IP。

所以接下来(作为演示的例子,我们使用百度的地址),我们要做的是使用百度的DNS,并将其重定向到百度的IP。 首先我们来使用 ping 命令来获取百度的 IP 地址:

$ ping -c1 ​​www.baidu.com​​
ping ​​www.baidu.com​​ (180.101.49.14) 56(84) bytes of data.
64 bytes from 180.101.49.14 (180.101.49.14): icmp_seq=1 ttl=58 time=8.98ms
...

现在,我们打开 hosts 文件(在我们的例子中我们使用 vim 编辑器):

$ sudo vim /etc/hosts
127.0.0.1 localhost
::1 localhost
180.101.49.14 ​​tiap.com​​
180.101.49.14 ​​www.tiap.com​​

上面例子中,最后两行是我们新添加的。

那现在当我在 ping ​​www.tiap.com​​ 的时候,它就会被重定向到百度的 IP:

$ ping -c1 ​​www.tiap.com​​
ping ​​www.baidu.com​​ (180.101.49.14) 56(84) bytes of data.
64 bytes from 180.101.49.14 (180.101.49.14): icmp_seq=1 ttl=58 time=8.98ms
...

你可以使用此方法将网站从一台服务器迁移到另一台服务器。在实际将网站的DNS更改为新服务器之前,需要在新服务器上进行所有更改,该服务器可以通过系统上的域名进行访问。

使用 /etc/hosts 文件阻止不需要的网站

接下来我们要做的,是将本地 IP 地址分配给不想再访问的站点。 比如,我们想要屏蔽 Facebook。首先 ping 一下 Facebook,以检验正常情况下是可以访问的(国内访问需要FQ):

ping -c1 ​​facebook.com​​

然后编辑 hosts 文件:

$ sudo vim /etc/hosts
127.0.0.1 localhost
::1 localhost
127.0.0.1 ​​facebook.com​​
127.0.0.1 ​​www.facebook.com​​

当我们再次访问 Facebook 时,显示如下:

使用 /etc/hosts 文件创建网站快捷方式

如果一个网站的域名比较长,我们可以为其取一个简短的名称,作为其快捷方式在本机使用。比如,我们为 Linuxhandbook 创建一个名为 ​​lhb.com​​ 的快捷方式。 首先,需要获取 linuxhandbook 的 IP地址:

$ ping -c1 ​​linuxhandbook.com​​

然后修改 hosts 文件:

$ sudo vim /etc/hosts

做如下更改:

完成之后,可以 ping 一下快捷方式:

通过上图可以看到,访问原域名与快捷方式的域名完全一样。

责任编辑:庞桂玉 来源: TIAP
相关推荐

2010-03-01 14:46:41

Linux hostn

2019-01-21 09:06:08

Linuxetcservices

2024-11-22 15:39:02

C#Params编程

2023-03-02 08:48:43

Linuxsubshell

2022-02-24 23:37:19

区块链钱包比特币

2010-03-09 11:21:41

Linux etcgroup

2010-03-09 10:50:58

2023-12-29 10:08:18

Linux系统安全

2010-03-09 11:09:05

Linux etcshadow

2023-03-01 09:49:23

2022-10-19 09:38:55

2022-04-03 13:17:21

Linux黑话解释GRUB

2023-11-22 10:51:25

LinuxSuper

2021-11-04 09:56:28

人工智能深度学习技术

2023-12-26 07:26:07

Java序列化反序列化机制

2023-05-18 22:51:08

2018-07-06 14:31:09

Linux文件系统结构说明

2021-04-26 07:51:00

JavaScript方法函数

2022-09-15 09:54:34

nullPython字符

2010-06-29 13:58:17

SNMPMIB
点赞
收藏

51CTO技术栈公众号