通过hosts文件修改本地域名映射

本文涉及的产品
.cn 域名,1个 12个月
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: hosts是一个没有扩展名的系统文件,windows系统里位置在 C:\Windows\System32\drivers\etc,macOS/Linux/iOS/Android位置在 /etc/hosts,其作用就是将一些常用的网址域名与其对应的IP地址建立一个映射关系

hosts是一个没有扩展名的系统文件,windows系统里位置在 C:\Windows\System32\drivers\etc,macOS/Linux/iOS/Android位置在 /etc/hosts,其作用就是将一些常用的网址域名与其对应的IP地址建立一个映射关系,这样用户在浏览器中输入一个网址,浏览器会先在电脑本地的那个hosts文件里去找有没有对应的ip地址,如果有就直接去访问这个ip地址,如果没有找到,则系统会再将网址提交到DNS域名解析服务器进行IP地址的解析。

在另一篇文章:电脑上打不开github解决办法,也是通过修改 hosts 文件实现的。

修改 hosts 文件实现 baidu.com 访问本地服务

下面通过一个小实验,实现在浏览器中输入 baidu.com 访问电脑本地的服务,首先在 hosts 文件中将 baidu.com 映射到本地的 127.0.0.1,直接加在文件最后就可以了,如下:

# ...
127.0.0.1 baidu.com

修改好后保存,如果提示没修改权限,可通过如下方法尝试解决:

  • 鼠标右键以管理员方式打开
  • 登录电脑那个默认的 Administrator 管理员账号
  • 直接右键-属性里,也可以查看和修改当前文件的权限
  • 复制hosts文件到桌面,改好了再直接粘贴过去覆盖替换那个文件

保存好后刷新下本地dns,命令:ipconfig/flushdns

接着我们可以在本地起一个后端服务或者前端项目,比如我们在 localhost:8088 端口起一个前端 vue 项目,此时我们去浏览器里输入 baidu.com:8088,此时并不会打开百度的网站,如果是 webpack 打包运行的,可能会看到显示:Invalid Host header。

到这里其实我们已经实现了通过 baidu.com 访问咱本地的服务,至于显示的 Invalid Host header 而不是咱本地的网页,其实是 webpack 的一项安全检查设置:devServer.allowedHosts,可通过如下方式解决:

  • 设置 disableHostCheck 为 true,webpack4 里可以用,在 webpack5 版本里已经被移除了,直接使用会报错
  • 通过 allowedHosts 设置允许访问开发服务器的域名白名单
// vue.config.js
module.exports = {
   
  //...
  devServer: {
   
    allowedHosts: [ // 'auto' | 'all' [string]
      'baidu.com',
      // '.baidu.com', // . 可作为子域通配符
    ]
  }
}

设置好后就可以正常通过 baidu.com:8088 访问咱本地运行的服务了。

hosts 域名访问原理在开发和测试中的应用

开发中如果需要使用到多个环境或者多台服务器,就可以设置一个自定义域名,方便切换开发测试。比如和后端联调接口,需要访问特定的局域网 ip 地址,或者前端请求不能直接通过ip地址发起请求时,或者运维未配置开发环境域名(即开发环境、测试环境、预发布环境、生产环境...都使用相同的域名),就可以新增域名映射来实现访问特定的ip。

移动端开发测试中也可以通过 hosts 文件,手机上设置代理到电脑上,来实现访问特定ip地址的目的。比如业务需要对接第三方,测试环境外网无法访问或需要特定的ip白名单才能访问时,也可以通过域名映射来实现访问。

管理和切换 hosts 文件工具:SwitchHosts

目录
相关文章
|
11月前
|
Kubernetes 容器 Perl
k8s配置hosts域名的几种方式
k8s配置hosts域名的几种方式
1630 0
|
域名解析 监控 JavaScript
宝塔面板pm2管理器部署node.js(express框架)sever文件,可以使用域名访问你的后端项目
宝塔面板pm2管理器部署node.js(express框架)sever文件,可以使用域名访问你的后端项目
747 0
|
4月前
|
并行计算 前端开发 Serverless
函数计算产品使用问题之如何将一个域名的不同路径或方法映射到不同的函数计算服务上
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
6月前
|
缓存 网络安全 开发工具
【尝试】域名验证:配置github二级目录下的txt文件
【尝试】域名验证:配置github二级目录下的txt文件
77 2
|
6月前
|
域名解析 网络协议 安全
【域名解析 DNS 专栏】反向 DNS 解析:IP 地址到域名的映射秘密
【5月更文挑战第25天】反向DNS解析将IP地址转换为域名,用于验证和识别网络通信来源。它在邮件服务器验证、网络安全中扮演关键角色,例如检查发送邮件服务器的反向DNS以防止垃圾邮件。通过Python示例展示了反向DNS解析过程。尽管可能遇到错误配置和不准确信息,正确管理的反向DNS解析能增强网络的可信度和安全性。随着技术进步,反向DNS解析将持续优化,提升网络体验。
164 0
|
6月前
|
域名解析 网络协议 应用服务中间件
阿里云DNS常见问题之域名在代理服务器上不能访问只能通过IP映射如何解决
阿里云DNS(Domain Name System)服务是一个高可用和可扩展的云端DNS服务,用于将域名转换为IP地址,从而让用户能够通过域名访问云端资源。以下是一些关于阿里云DNS服务的常见问题合集:
|
6月前
|
安全 Windows
win10修改本地host文件,用以增加自定义本地访问域名127.0.0.1
win10修改本地host文件,用以增加自定义本地访问域名127.0.0.1
372 0
|
应用服务中间件 Linux nginx
linux nginx域名证书到期,拿着客户给的新证书文件在nginx中对证书进行替换
业务场景: 📕1.找到原证书位置,可在nginx 配置文件中查找到 🖥️2.找到位置后将原文件名字 加上.old (需要更换两个文件 一个.pem 一个.key) 🔖3.将新证书文件放在原目录,并重命名为原证书文件名称 📌4.cd到sbin目录 reload nginx 📇5.查询是否替换成功 🧣6、最后的话 业务场景: 域名证书到期,拿着客户给的新证书文件在nginx中对证书进行替换
365 0
|
运维 应用服务中间件 Go
通过Nginx配置域名映射到本地项目
通过Nginx配置域名映射到本地项目
471 0
|
PHP Windows
php环境部署:phpstudy设置本地测试域名找不到hosts文件的解决方案
php环境部署:phpstudy设置本地测试域名找不到hosts文件的解决方案
244 0

热门文章

最新文章