代理服务器的运作逻辑可以有点复杂,但我尽量用简单的方式解释。
### 基础概念
当你启动一个代理服务(比如在你的电脑上或在云服务器上),这个代理服务会监听一个特定的IP地址和端口。如果这个代理服务在你的本地电脑上运行,那么它通常会监听 `127.0.0.1`(即本地回环地址)和一个特定端口(比如 `8080`)。
### 代理如何工作
1. **启动代理**:你首先启动代理服务,它开始在某个地址和端口上监听。
2. **配置应用程序**:然后,你需要配置你的浏览器、操作系统或其他应用程序,让它们通过这个代理进行网络访问。
3. **发起请求**:当你访问一个网站时,这个请求不是直接发送到网站服务器,而是首先发送到代理服务器。
4. **转发请求**:代理服务器收到你的请求后,会代表你将其发送到目标网站。
5. **接收响应**:目标网站响应这个请求,把数据发送回代理服务器。
6. **回传数据**:代理服务器再把这些数据发送回你的电脑。
### IP 地址是否变化
- **对外界来说**:当你使用代理服务器访问互联网时,目标网站看到的通常是代理服务器的IP地址,而不是你自己的公网IP地址。所以从这个角度来看,你的IP地址“变了”。
- **在本地来说**:但在你的本地网络和电脑上,你的IP地址并没有变。只是网络请求在出去之前会先经过代理服务器。
所以说,是否“变了”取决于从哪个角度看。如果你在访问一个网站时不想暴露自己实际的IP地址,使用代理服务器是一个有效的方法。但在你的电脑或局域网内,你的IP地址并没有变化。希望这能帮助你更好地理解代理的运作机制。
修改 `hosts` 文件主要用于手动指定域名到 IP 地址的映射。简单地说,它允许你控制计算机如何解析特定的域名。当你尝试访问一个域名(比如 `www.example.com`)时,操作系统首先会查找 `hosts` 文件以确定是否有手动设置的 IP 地址与这个域名关联。如果找到了,系统将直接使用该 IP 地址进行连接,而不会去进行 DNS 查询。
### 主要用途
1. **域名解析测试**: 开发者经常在部署新网站或应用之前,会通过修改 `hosts` 文件来在本地测试域名解析。
2. **访问限制**: 通过将特定域名映射到 `127.0.0.1`(本地回环地址),你可以阻止对这些域名的访问,这在家长控制或公司政策中可能是有用的。
3. **网络调试**: 在复杂的网络设置或应用部署中,修改 `hosts` 文件可以帮助你更容易地诊断问题。
4. **绕过网站限制或封锁**: 在某些情况下,`hosts` 文件也可用于绕过 IP 或域名的地理限制。
5. **负载均衡和高可用性测试**: 在企业环境中,通过更改 `hosts` 文件可以模拟负载均衡器或 DNS 更改的行为,以测试应用的高可用性。
### 如何工作
当你尝试访问一个网站时:
1. 操作系统首先会检查 `hosts` 文件。
2. 如果 `hosts` 文件中有与目标域名匹配的条目,系统会使用该条目指定的 IP 地址。
3. 如果没有匹配的条目,系统会进行 DNS 查询以获取 IP 地址。
### 注意事项
- 修改 `hosts` 文件需要管理员或 root 权限。
- 一旦修改,影响是即时的,但某些情况下可能需要清除 DNS 缓存。
- 不正确的 `hosts` 文件配置可能会导致网络连接问题,所以需要谨慎操作。
总的来说,`hosts` 文件是一个强大的工具,能让你对域名解析有更精细的控制。然而,因为它会影响你系统的网络行为,所以在修改之前最好先了解它是如何工作的。
### 清除DNS缓存的意义
当你访问一个网站(例如,`www.example.com`)时,你的操作系统和网络设备会储存(缓存)这个域名与其对应的 IP 地址的映射关系,以便于下次访问相同的网站时能更快地加载页面。这个过程称为 DNS 缓存(Domain Name System Cache)。
清除 DNS 缓存(也称为刷新 DNS 缓存)意味着删除所有已保存的域名和 IP 地址的映射关系。一旦这些信息被清除,系统会重新查询 DNS 服务器来解析域名,获取新的 IP 地址。
### 清除DNS缓存的作用
1. **解决网站访问问题**: 如果一个网站改变了其 IP 地址或者由于某种原因 DNS 缓存的数据变得过时或损坏,清除 DNS 缓存可以解冑无法访问该网站的问题。
2. **加速 DNS 更新**: 如果你是网站的管理员并且你刚刚更改了域名的 DNS 设置,清除缓存可以帮助你更快地看到这些变化。
3. **增加安全性**: 在某些攻击情况下(如 DNS 污染或劫持),清除旧的、可能被污染的 DNS 缓存可以提高安全性。
4. **网络调试**: 清除 DNS 缓存是网络故障排除的一种常用手段。
### 如何清除DNS缓存
不同的操作系统有不同的命令和方法用于清除 DNS 缓存。
- **Windows**: 打开命令提示符(以管理员身份运行),然后输入 `ipconfig /flushdns`
- **macOS**: 打开终端,根据你的 macOS 版本,执行相应的命令。在较新的 macOS 版本上,通常是 `sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder`
- **Linux**: 不同的 Linux 发行版有不同的方法,但通常你需要重启 `nscd`(Name Service Cache Daemon)或 `systemd-resolved` 服务。
请注意,在刷新 DNS 缓存之前,确保你了解这样做的影响,并小心执行相关操作。不当地使用这个功能可能会导致网络连接问题。
"绕过代理"(或称为"例外规则"、"白名单"等)的原理其实比较简单。当你设置了这些规则后,网络请求在发送到代理服务器之前会先检查这些规则。
1. **域名或IP匹配**: 当你尝试访问一个网站或服务时,系统或应用程序会先检查该网站的域名或IP是否在绕过代理的列表中。
2. **直接连接**: 如果匹配成功,该请求就会直接连接到目标服务器,而不经过代理服务器。
3. **代理连接**: 如果没有匹配成功,该请求会被发送到代理服务器,然后由代理服务器转发到目标网站。
这个机制允许你在使用代理的同时,访问一些不需要或不应该通过代理的网络资源。
### 在哪里进行设置?
这些设置通常可以在多个层次进行:
- 在操作系统级别:这影响所有通过该系统发出的网络请求。
- 在应用程序级别:只影响特定应用程序(如浏览器)的网络请求。
- 在代理软件级别:只影响通过该代理软件转发的请求。
### 为什么需要绕过?
有多种原因你可能想要某些请求绕过代理:
1. **内网资源**: 如果你在一个公司或家庭网络环境,某些内网资源可能无法通过外部代理访问。
2. **性能**: 代理会增加网络延迟,对于一些对速度敏感的应用,直接连接可能更有效率。
3. **安全和隐私**: 某些敏感操作或数据可能你不希望通过一个第三方代理服务器。
4. **地理限制**: 有些网站或服务有地理限制,必须从某个特定地区访问。
通过这种方式,绕过代理的设置提供了一种灵活的网络访问策略,允许你根据需要定制网络流量的路由。
打开http://127.0.0.1:8018/#rules,添加需要配置的地址。1.开启浏览器Proxy SwitchyOmega插件。1.找到
host
本地文件目录。跑项目,运行项目,访问地址。
说到
代理
,大多数情况我们都会想到通过浏览器设置的正向
代理
,以及类似nginx的反向
代理
;而实际上除此之外还有一种基于
host
方式实现的
代理
。
本文主要讲述,如何实现一个基于
host
方式的http
代理
,以及它与普通
代理
之间的区别。这种方式的
代理
主要可以应用于哪些实际的测试场景。
与普通
代理
的区别
所谓的普通
代理
,就是我们日常会用到的那种
代理
,通常需要客户端本身支持,使用时对客户端进行
代理
信息配...
Host
在测试过程中,开发经常会给一些
IP
和域名,让配置的
host
s文件里边,不配置的话就不能正常测试。配置
host
文件的作用主要是用于自定义域名与
IP
地址之间的映射关系。
Host
文件是一个操作系统用于将人类可读的域名(例如:www.example.com)映射到
IP
地址(例如:192.168.1.1)的文件。当你在浏览器中输入一个网址时,系统会首先查找
host
文件中是否有相应的映射关系,如果...
今天有位朋友问了个问题,在本地IDE开发工具调试代码的时候,怎么不动代码的情况只针对部分API走proxy,因为他们的代码只需要在本地调试的时候才要用到Proxy,而平时都是部署在云上,是用不到Proxy的,所以他们老大不让他们代码里出现任何用到
代理
的代码入侵逻辑,只能通过外置配置
代理
。当Service A 调用时才需要走
代理
,而调用时自动
绕过
代理
。
http://myadautoweb.com/hello
这个请求的域名会被10.132.76.222捕捉到的。10.132.76.222上的nginx会去匹配server_name:myadautoweb.com 的server快配置
查看nginx中请求域名:
第11列也就是域名的那一列