1. 使用socat
介绍:socat 是 Linux 系统中自带的一个工具,最常见的用法是在网络编程中用作网络中继或端口转发器,可以用来抓包。
安装:直接通过包管理器命令安装即可,如 yum install -y socat
用法:socat TCP-LISTEN:port1,fork TCP:host:port2
这个命令的作用是监听本地的 port1,当有连接进来时,将数据转发到指定的 host 的 port2。具体说明如下:
* TCP-LISTEN:port1:在本地 TCP 端口 port1 上监听连接。
* fork:表示允许多个客户端连接,并为每个连接创建一个新的进程来处理。
* TCP:host:port2:将连接转发到指定的远程 host 的 port2 端口。
比如,本机启动了一个Zabbix,端口为80。通过socat 启动一个14001端口,将访问本机14001的请求都指向本机的80端口:socat -v TCP-LISTEN:14001,fork TCP:127.0.0.1:80
,此时通过浏览器访问此服务器的14001端口,也可以看到Zabbix界面。
socat将会打印出请求的全部内容:
2. 通过mitmproxy
介绍:mitmproxy 是一个流行的中间人代理工具,用于拦截、修改和查看 HTTP 和 HTTPS 流量。它经常用于网络调试、安全测试和网络流量分析等场景。
在线安装:mitmproxy是一个Python工具,需要通过pip安装,yum install -y python3-pip python3-devel && pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple mitmproxy
离线安装:
先把所有的rpm包下载下来:yumdownloader --resolve python3-pip python3-devel
,将包考到目标机器上,然后执行:rpm -ivh *
再把所有的pip包下载下来:pip3 download -i https://pypi.tuna.tsinghua.edu.cn/simple mitmproxy -d /opt/
,然后拷贝到目标机器上再安装:pip3 install ./*
用法:比如启动 mitmproxy 8080端口,代理我本机的80端口,只需要执行命令mitmproxy -p 8080 --mode reverse:http://localhost:80
,当你访问 mitmproxy 监听的端口(例如浏览器中输入 http://<mitmproxy_host>:8080)时,mitmproxy 将会将流量代理到本地的 80 端口,同时仍然允许你查看和修改流量。
--mode reverse 参数来反向代理流量
-p 参数来指定 mitmproxy 监听的端口
这种方式可以更直观的查看每个请求:
上下键选择想要查看的请求,回车可以查看细节,q可以返回列表或者退出。