最简单的方法是从容器内部进行操作;您可以通过进入容器并运行以下命令来拦截和打印 nginx 和 Discourse 之间的请求:
apt-get update && apt-get -y install scapy
scapy
# 在 scapy 提示符下,粘贴以下内容:
class Callback:
def __init__(self):
self.last = None
def prn(self, p):
if p != self.last: # lo 上的 pcap 会捕获两次
self.last = p
p.hide_defaults()
print(repr(p)) # 此行打印数据包,保留或删除它
if scapy.packet.Raw in p.layers():
try:
print(p.load.decode())
except:
print(p.load)
sniff(filter="port 3000", iface="lo", prn=Callback().prn)