J W*_*J W 7 networking mitmproxy
我正在尝试设置 mitmproxy,以便我可以从浏览器发出请求并让它从在http://localhost:3000https://{my-domain}运行的本地服务器返回响应,但我无法获取 https 请求来到达我的本地服务器。我看到来自 mitmproxy 的调试语句。另外,我可以让它适用于 http 流量,但不适用于 https。
我阅读了mitmproxy 插件文档和api 文档 ,我已经安装了证书,并且可以通过代理监控 https。
我正在使用 Mitmproxy:4.0.4 和 Python:3.7.4
这是我的插件(local-redirect.py)以及我如何运行 mitmproxy:
from mitmproxy import ctx
import mitmproxy.http
class LocalRedirect:
def __init__(self):
print('Loaded redirect addon')
def request(self, flow: mitmproxy.http.HTTPFlow):
if 'my-actual-domain-here' in flow.request.pretty_host:
ctx.log.info("pretty host is: %s" % flow.request.pretty_host)
flow.request.host = "localhost"
flow.request.port = 3000
flow.request.scheme = 'http'
addons = [
LocalRedirect()
]
Run Code Online (Sandbox Code Playgroud)
$ mitmdump -s local-redirect.py | grep pretty
Run Code Online (Sandbox Code Playgroud)
当我访问服务器上的 url 时,我看到了日志记录语句,但我的浏览器挂在请求上,并且没有向我的本地服务器发出请求。
上面的插件很好,但是我的本地服务器不支持 HTTP2。
使用该--no-http2选项是一个快速修复:
mitmproxy -s local-redirect.py --no-http2 --view-filter localhost
Run Code Online (Sandbox Code Playgroud)
或者
mitmdump -s local-redirect.py --no-http2 localhost
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7860 次 |
| 最近记录: |