百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

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

haoteby 2025-02-07 17:33 14 浏览

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

相关推荐

如何随时清理浏览器缓存_清理浏览器缓存怎么弄

想随时清理浏览器缓存吗?Cookieformac版是Macos上一款浏览器缓存清理工具,所有的浏览器Cookie,本地存储数据,HTML5数据库,FlashCookie,Silverlight,...

Luminati代理动态IP教程指南配置代理VMLogin中文版反指纹浏览器

介绍如何使用在VMLogin中文版设置Luminati代理。首先下载VMLogin中文版反指纹浏览器(https://cn.vmlogin.com)对于刚接触Luminati动态ip的朋友,是不是不懂...

mac清除工具分享,解除您在安全方面的后顾之忧

想要永久的安全的处理掉重要数据,删除是之一,使用今天小编分享的mac清除工具,为您的操作再增一层“保护”,小伙伴慎用哟,一旦使用就不可以恢复咯,来吧一起看看吧~mac清除工具分享,解除您在安全方面的后...

取代cookie的网站追踪技术:”帆布指纹识别”

【前言】一般情况下,网站或者广告联盟都会非常想要一种技术方式可以在网络上精确定位到每一个个体,这样可以通过收集这些个体的数据,通过分析后更加精准的去推送广告(精准化营销)或其他有针对性的一些活动。Co...

辅助上网为啥会被抛弃 曲奇(Cookie)虽甜但有毒

近期有个小新闻,大概很多小伙伴都没有注意到,那就是谷歌Chrome浏览器要弃用Cookie了!说到Cookie功能,很多小伙伴大概觉得不怎么熟悉,有可能还不如前一段时间被弃用的Flash“出名”,但它...

浏览器指纹是什么?浏览器指纹包括哪些信息

本文关键词:浏览器指纹、指纹浏览器、浏览器指纹信息、指纹浏览器原理什么是浏览器指纹?浏览器指纹是指浏览器的各种信息,当我们访问其他网站时,即使是在匿名的模式下,这些信息也可以帮助网站识别我们的身份。...

那些通用清除软件不曾注意的秘密_清理不常用的应用软件

系统清理就像卫生检查前的大扫除,即使你使出吃奶的劲儿把一切可能的地方都打扫过,还会留下边边角角的遗漏。随着大家电脑安全意识的提高,越来越多的朋友开始关注自己的电脑安全,也知道安装360系列软件来"武装...

「网络安全宣传周」这些安全上网小知识你要知道!

小布说:互联网改变了人们的衣食住行,但与之伴生的网络安全威胁也不容忽视。近些年来,风靡全球的勒索病毒、时有发生的电信诈骗、防不胜防的个人信息泄露时时刻刻都威胁着我们的生活。9月18日-24日是第四届...

TypeScript 终极初学者指南_typescript 进阶

在过去的几年里TypeScript变得越来越流行,现在许多工作都要求开发人员了解TypeScript...

jQuery知识一览_jquery的认识和使用

一、概览jQuery官网:https://jquery.com/jQuery是一个高效、轻量并且功能丰富的js库。核心在于查询query。...

我的第一个Electron应用_electronmy

hello,好久不见,最近笔者花了几天时间入门Electron,然后做了一个非常简单的应用,本文就来给各位分享一下过程,Electron大佬请随意~笔者开源了一个Web思维导图,虽然借助showSav...

HTML5 之拖放(Drag 和 Drop)_html拖放api

简介拖放是一种常见的特性,即抓取对象以后拖到另一个位置。在HTML5中,拖放是标准的一部分,任何元素都能够拖放。先点击一个小例子:在用户开始拖动<p>元素时执行JavaScrip...

如何用JavaScript判断输入值是数字还是字母?

在日常开发中,我们有时候需要判断用户输入的是数字还是字母。本文将介绍如何用JavaScript实现这一功能。检查输入值是否是数字或字母...

图形编辑器开发:快捷键的管理_图形编辑工具

大家好,我是前端西瓜哥。...

浏览器原生剪贴板:原来它能这样读取用户截图!

当我们使用GitHub时,会发现Ctrl+V就能直接读取用户剪贴板图片进行粘贴,那么它是如何工作的?安全性如何?...