我想看看我的PostgreSQL数据库服务器(postgres
)正在发送什么来响应我的客户端(一个使用pg gem的Ruby应用程序服务器)。服务器和客户端都在本地运行,并且它们的连接未加密。
答案 0 :(得分:2)
使用tcpdump显示客户端和服务器之间发送的数据包。
如何?在macOS的终端中输入以下命令:
sudo tcpdump -A -i any port 5432
然后,触发您的应用程序服务器(例如,通过从另一个终端窗口发送一个curl请求),以向postgres
发送命令。
最后,查看tcpdump的输出。
注意:tcpdump不显示在psql
和postgres
之间发送的数据包,因为它们是通过Unix域套接字通信的。参见:Can I monitor a local unix domain socket like tcpdump?
答案 1 :(得分:0)
由于已经提到tcpdump
,所以我想列出另一个可用于此目的的工具,其输出不太冗长:ngrep
用法:
ngrep -d lo port 5432
lo
是要收听的网络接口。可以使用ifconfig
找到。 port 5432
是pcap filter。
如果目的是捕获应用程序提交的SQL语句,则也可以用于搜索特定的SQL语句。有关详细说明,请参见here。