在太阳下
不管你喜不喜欢,高不高兴,爱与不爱;太阳照旧照耀着你!温暖着你!

OpenWRT 通过修改hosts文件实现自定义域名解析规则

OpenWRT 通过修改hosts文件实现自定义域名解析规则
TIME 2023-05-30 20:16

如何实现自定义域名解析规则?

假设我需要在本地实现将域名 inthesun.life 解析到 192.168.1.88,那么如何实现呢?
1.修改 Win10 系统的 C:\Windows\System32\drivers\etc\hosts 文件,参见Windows10修改本地hosts文件达到重置本地域名解析
但是只适用于 Win10 系统本身,本地的其他设备无效
2.修改路由器的 hosts 文件,即OpenWRT的hosts 文件
这样在OpenWRT路由器下面的所有设备都支持实现自定义域名解析

如何修改OpenWRT的hosts文件

例如,将 inthesun.life 解析到 192.168.1.88
编辑 /etc/hosts 文件

vi /etc/hosts

/etc/hosts 文件中添加以下条目

192.168.1.88      inthesun.life

保存并且退出vi编辑器
当我们在浏览器中访问 inthesun.life 时,浏览器将会在 /etc/hosts 文件中搜索解析规则,找到该域名对应的IP地址,并使用该地址进行通信。

这种使用 /etc/hosts 文件自定义域名解析规则的方法非常有用,因为它允许您将特定的域名映射到不同的 IP 地址,而无需更改 DNS 服务器的配置或购买新的域名。


修改hosts文件后,如何使其生效?
最简单且粗暴的方式就是 reboot 重启,但是我又不想中断网络服务,该怎么办?

在您修改完 /etc/hosts 文件后,需要让操作系统重新读取该文件以使更改生效。有几种方法可以做到这一点:

  1. 重启网络服务

您可以通过重启网络服务来读取更新后的 /etc/hosts 文件。您可以使用以下命令来重启网络服务:

/etc/init.d/network restart

在执行此命令后,网络服务将被重新启动。然后,您应该能够看到您添加的主机名和 IP 地址的映射关系。

  1. 刷新DNS缓存

如果您不想重启网络服务,则可以尝试刷新DNS缓存来获取最新的主机名和 IP 地址的映射关系。您可以使用以下命令刷新DNS缓存:

/etc/init.d/dnsmasq restart

执行此命令后,dnsmasq DNS代理服务将被重启,并且应该会清除现有缓存并读取最新的 “/etc/hosts” 文件内容。

  1. 在终端中使用 “source” 命令

如果您正在命令行终端中修改 “/etc/hosts” 文件,则可以使用 source 命令(或 “.” 命令)来重新加载该文件内容,而无需重启网络服务。您可以使用以下命令在当前终端中重新加载 “/etc/hosts” 文件:

$ source /etc/hosts

或者:

$ . /etc/hosts

执行其中任意一个命令后,当前终端会读入新的 hosts 文件内容。但这个方法只在当前终端内起作用,关闭终端之后就失去了效果。

这些方法中任选一种都可以使修改的 /etc/hosts 文件生效,并且您应该能够看到您添加或更改的主机名和 IP 地址的映射关系。

点击数:18

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
Verified by MonsterInsights