如何通过代理共享网络

前言: 昨天在探索用 Gin 实现 HTTPS 代理,学习到了很多新的知识点,感觉可以把以前的内容串联起来了。然后在睡觉的时候,想到了怎么通过代理共享网络的问题。这个问题已经思考过了好几次,但是还是有一点模糊,昨天不知道怎么的,感觉有点想通了,事不宜迟得赶紧记录下来。
我在电脑上面安装了 Fiddler,一个抓包软件,它算是一个 HTTP 代理软件。我使用它主要是用来学习 HTTP 协议,很多问题,要是可以亲眼看上一眼,其实就能解决了。你可能会使用其它的代理,例如用来上网的代理,但是原理上大致是相似的。

我不保证这些图示和我的理解都是正确的,因为随着认识的深入,会看到更多的东西,也许会发现以前的理解是错误的。

注意:我可能会混用这几个名词:HTTP抓包软件(Fiddler),代理服务器,代理软件,不过我所要表达的意思是相同的,下面如果没有特别指明,我说的都是指 Fiddler 这个软件。

一、本机通过代理上网

下面就是常见的在本机使用代理上网的方式,它的网络流量的走向图,这里只是一个简化的模型。
注意:这里并不限定具体的设备,只要是可以联网的计算机就可以了。

在这里插入图片描述

二、共享网络无法通过代理上网

当你尝试分享网络时,如果不进行任何的配置,这是它的网络流量走向图。红色的是通过代理上网的软件的流量走向,蓝色的是通过共享网络上网(通常是WIFI热点)的设备的流量走向。所以,你应该明白为什么其它的设备在共享网络的情况下,无法通过代理来上网了,即你的设备的流量不会经过代理。如果使用 Fiddler 来抓包的话,表现就是无法获取到相应软件的网络数据包(HTTP协议)。
在这里插入图片描述

三、共享网络通过代理上网

所以解决的方案就是如下图所示:也就是说你需要把其它设备的流量指向代理软件,然后通过它来上网。如果是使用 Fiddler 的话,那么就可以在 Fiddler 中看到你想要的网络数据包,也就是说其它软件的流量经过了代理。

在这里插入图片描述

代理通常是指你本地运行的软件,亦或是指一台专门运行它的机器。但是通常大家都是在本地运行的,这里我们就是指软件的它吧。因此它一定是存在于一台主机之上的,所以它有一个 IP 地址,同时它也会占据一个端口(通常是一个,也有可能有多个的,我不确定。)
IP 地址+端口号就可以在网络下确定一个唯一的位置了,既然你已经知道了它的位置,那么你的流量自然也就能指定过去了。所以你需要的做的事情其实很简单,连接共享的 WIFI 的时候,配置一个代理服务器(指定你已经获取的 IP 地址和端口号即可)。不过,也需要注意,通常有些代理只接收本地的网络流量,所以你可能需要在设置中配置允许局域网的流量即可。

四、示例

前面的图片是让你明白,我们需要怎么做才可以共享网络,下面我来介绍几个简单的示例。

电脑抓取手机的流量

这里不使用真机,我选择使用安卓模拟器来演示。首先是安装一个安装模拟器,然后挑选一个应用,这里我选择知乎作为演示的程序。我在笔记本电脑上面运行代理服务器,这里的代理服务器是 Fiddler,我要使用它来抓取模拟器上运行的知乎的网络数据。因为我的电脑安装了 Docker Desktop,所以昨天尝试了几个安卓模拟器都没有成功。今天重新安装了蓝叠的 Hyper-V 版本,总算是可以运行了。、
不行,折腾了半天才发现,这个东西不允许修改WiFi的配置,白费功夫了。

四、电脑抓取虚拟机的流量

  1. 笔记本和虚拟机可以互相访问

笔记本的IP地址

在这里插入图片描述

虚拟机的网络设置蛮复杂的,不过我这里给一个简单的判断方法,只要可以 ping 通就可以了。这说明主机和虚拟机在同一个网络,类似我们共享网络时所处的局域网环境了。

在这里插入图片描述

  1. 在本机启动代理服务器 Fiddler

在这里插入图片描述

Fiddler 默认情况下是不允许除了本机之外的计算机连接的,通常大部分的代理也都不支持,需要手动开启并承担对应的风险。因为这相当于把服务给暴露了,记得如果不使用的话就将其关闭。

在这里插入图片描述

  1. 配置代理服务

在虚拟机中手动配置代理的地址,这里我用的是虚拟机,正常情况下你应该是在连接 WIFI 那里配置代理服务器的 IP 和 端口信息的。

在这里插入图片描述

  1. 在虚拟机中上网
    在这里插入图片描述

这里提示不安全是因为证书的问题,HTTPS 代理因为使用的是 Fiddler 的代理,所以被认为是不安全的,在这里忽略它就好了。

在这里插入图片描述
在这里插入图片描述

这里我来搜索了一个基本上不会有人搜索的URL,然后在 Fiddler 中也确实看到了它的流量。这说明经过配置,虚拟机的流量已经指向了 FIddler 的代理服务器,所以我们也可以抓取虚拟机的网络数据包了。

手机给其它设备共享网络

你可以在电脑上运行代理,同样你可以在手机上运行代理,这都是相同的。关键在于配置好代理服务器的 IP地址+端口号 即可了,这样你就可以控制流量的方向了。这里就不进行演示了,可以看下面这个小故事,它们的原理都是相似的。

PS:
最后附一个小故事吧,我去年买了一个日版的 Switch,然后带回老家的时候,想要下载游戏。你知道的,网络不是很好,商店都不一定容易登录,更何谈下载十几 GB 的游戏了。然后我在网上找到了一个解决方案,就是下面这个加速宝。你花钱购买一定的流量,它给你分配一个账号,然后你给你的 switch 配置上代理,之后就可以愉快的下载了。我为了它付费了两次,但是我下载的游戏不大,所以每次都剩余大量的流量过期浪费了。我说这个不是想给它宣传,而是我才明白,我自己就可以给自己开代理,为什么要花钱去买它的流量。
哎呀,悔之晚矣,就当是交了智商税了。其实我当时也想过,但是我当时显然没有现在的知识,书到用时方恨少呀。然后就是如果你懂了一些知识,它是真的可以省钱呀。

在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值