当前位置: 首页 > news >正文

织梦如何做汽车贸易网站网络公司名字

织梦如何做汽车贸易网站,网络公司名字,app开发公司资质,wordpress如何制作主题昨天在本地执行 grpc 的 quick start(python版本的),我了解 grpc 内部使用的是 HTTP2,所以我就想着抓包来试试,下面就来记录一下这个过程中的探索。 注意:我的电脑上面安装了 Fiddler Classic,…

昨天在本地执行 grpc 的 quick start(python版本的),我了解 grpc 内部使用的是 HTTP2,所以我就想着抓包来试试,下面就来记录一下这个过程中的探索。

注意:我的电脑上面安装了 Fiddler Classic,不过它并不支持 HTTP2,最新的 Fiddler Everything 支持,不过这个是收费版本的,我就去下载了 mitmproxy 这个开源的软件。

一、网络代理回顾

在这里插入图片描述

代理软件的工作原理是:你想要抓包的软件自动检测到了代理或者你手动设置了代理,然后你的数据不是直接发送给服务端,而是它发送给代理,代理帮你发送给服务端。例如常见的浏览器或者安卓程序,并不是你开启了代理,流量就会自动被代理捕获,虽然看起来像是这样,但是实际上还是有区别的。
所以,实质是软件内部是有两种上网方式,一个是直连服务器,一个是通过代理连接服务器。这里以 Python 的 requests 包为例来举例:

代理上网:requests.get("http://ip:port", proxies=proxies)

正常上网:requests.get("http://ip:port)"

在这里插入图片描述

所以,因为代理上网是一个常见的需求,所以大部分的软件是支持网络代理的。这里我说软件,而不是程序,因为软件是要给更大的概念,它包括了程序。grpc 本身是支持代理的,不过需要手动来指定代理服务器的配置。

二、启动 mitmweb 且设置系统代理

在这里插入图片描述

在这里插入图片描述

三、本地环境抓包

首先尝试在本地环境进行抓包测试,这里按照 grpc 的 quickstart 步骤做就行了。

1.启动 grpc demo 服务端

在这里插入图片描述

2.启动 grpc demo 客户端

我使用默认的 cmd 执行失败,而且 powershell 也不支持这个语法,真是令人头疼!

在这里插入图片描述

然后,我就换成了 Git Bash 了,它就可以了。

在这里插入图片描述

成功抓到了数据包,不过这个默认的样式太丑了,识别成了 TCP,数据也有乱码。

在这里插入图片描述

注意:Windows 本身的终端各种语法都不一样,而且总是有奇怪的问题出现。因为现在大多数开发环境都是 Linux,所以命令肯定也是要以 Linux 上的为准。以后还是尽量用 Git Bash 了,用起来舒服一些。

三、容器环境抓包

在 Windows 上面使用它的终端,总感觉不得劲,因为我是 WSL2,所以我直接用 WSL2 的终端了。但是我发现一个问题,我在容器内部访问 localhost,它居然指向的是我的Windows,不知道为什么在 Windows 上面的开发环境感觉总是有奇怪问题,所以我还是转向虚拟机吧。

这是我构建测试镜像的 Dockerfile 文件:

FROM python:3.12
RUN python3 -m pip install --upgrade pip \&& python3 -m pip install grpcio \&& python3 -m pip install grpcio-tools
CMD ["/bin/bash"]

构建镜像的命令:docker build -t rpc_py:0.1 .

注意:mitmproxy 代理还是在本地运行的。

1.启动 grpc demo 服务端

docker run -it -v $(pwd)/grpc:/home/grpc -p 50051:50051 -e http_proxy=http://192.168.8.162:8080 rpc_py:0.1

我的 grpc 代码是拉取到了本地,然后挂载到镜像中的,同时做了一个端口映射,把服务端的端口暴露出来了,指定了 http_proxy 这个环境变量。

在这里插入图片描述

2.启动 grpc demo 客户端

首先先修改 greeter_client.py 文件中的访问地址,原先是 localhost,把它改成虚拟机的 ip 地址。

在这里插入图片描述

在新的终端中,使用 docker exec 打开交互式终端,然后直接指向 python greeter_client.py 既可观察到抓包的信息了,不过这里的信息只是可以看到,显示是有问题的,这个之后有机会再研究吧。

在这里插入图片描述

3.网络图

上面这样做看起来有些奇怪,这里我放一张图片来解释一下吧。我的虚拟机是在局域网的另一台机器上的,我的代理软件 mitmproxy 是在 Windows 上面运行的。我在容器中将服务的端口暴露出去,然后客户端请求的地址是虚拟机的 ip+暴露端口。也就是说,客户端虽然和服务器都在同一个容器中,但是它不是直接访问的,而是先出去容器,经过代理服务器,然后进入容器,主打的就是一个舍近求远。

在这里插入图片描述


PS: 在 WSL2 中,遇到了奇怪的网络问题,这里也提一下吧。

在 WSL 中的容器内抓包有一个问题,就是这个正确结果不是一定返回的,会莫名出现错误的结果。一开始全是错误的结果,我也不知道哪里的问题。但是之后尝试,发现是有的有结果,有的报错,真是奇怪了。

在这里插入图片描述

正确的结果和错误的结果都可以在 mitmproxy 中看到:

在这里插入图片描述

http://www.ds6.com.cn/news/97647.html

相关文章:

  • 把网站放在wwwroot已经有一个包含文件的网站google中文搜索引擎
  • WordPress网站积分系统深圳seo公司排名
  • 张家口做网站哪家好谷歌搜索引擎在线
  • 如果有域名和空间怎么做网站百度号码认证申诉平台
  • 做母婴的网站有哪些如何优化关键词搜索排名
  • 网站高级?O置百度推广怎么操作流程
  • 宜昌哪里做网站xp优化大师
  • 企网站的互联网网站运营工作的基本内容
  • 门户网站制作如何进行网络营销
  • 怎么用模板做网站赣州网站建设
  • 济南集团网站建设报价b站推广软件
  • 17做网站 一件代发竞价推广遇到恶意点击怎么办
  • 做信贷抢客户网站搜索引擎优化的主要手段
  • 深圳福田最大网站公司百度手机助手下载2021新版
  • 免费制作微信小程序的网站2023年8月疫情又开始了吗
  • 附近做网站的公司如何做品牌宣传与推广
  • wordpress百度云链接地址北京seo供应商
  • 小程序网站怎么做怎么做网站教程
  • 做网站排名费用多少钱seo网站优化服务
  • 公司网站如何做推广每天4元代发广告
  • asp.net mvc6电商网站开发实践网店运营具体做什么
  • 国家级示范建设网站北京百度竞价托管公司
  • 网站建设成本如何建立公司网站网页
  • 广告设计怎么做搜索引擎网站推广如何优化
  • 网站防护找谁做百度营销推广官网
  • 为什么政府网站做的很烂营销型网站制作企业
  • 企业营销型网站建设的可行性手机建立一个免费网站
  • 外贸营销网站建设介绍海外网络推广
  • 惠州做棋牌网站建设多少钱上海百度搜索优化
  • 国外网站开发技术网络营销策划方案格式