所以这个古老的服务器在我们办公室的某处运行MySQL。 我可以通过以下方式远程连
# mysql -u someuser -p -h ancientserver.domain.com
我看到我期望的表格。 但是,当我通过SSH连接到服务器,如下所示:
# ssh [email protected]
然后运行一个:
# ps -ef | grep mysql
我没有看到一个MySQL服务器进程。 其他的探索证实mysql服务器没有安装ancientserver.domain.com。
是否有可能这个ancientserver.domain.com正在使用代理 – 只是将MySQL请求传递给另一台服务器? 如果是这样,我怎么能确定安装MySQL服务器的实际服务器的IP?
在连接的时候,我运行了一个:
mysql> @@hostname
而主机名与ancientserver.domain.com确实不同。
我会试图在你的客户端运行tcpdump,看看你的客户端是否正在联系ancientserver.domain.com 。 如果是,连接到,然后再tcpdump。 看看你是否有某种端口转发或隧道正在进行。 数据包捕获可能应该给你一个想法。
tcpdump -qni any port 3306 # watch for port 3306 traffic on any interface.
如果您和主机之间有防火墙或路由器,请检查这些防火墙或路由器,以确定您的数据包是否在到达指定目的地之前被redirect。 如果发生这种情况,则在指定目标上的tcpdump应该是空的。
检查你的iptables规则iptables -nL -t nat 。 寻找任何看起来像它可能是一个简单的TCP代理。 netstat命令@knowhy应该这样做。
你可以使用netstat -tulpn | grep 3306 netstat -tulpn | grep 3306来识别使用mysql端口3306的进程。
有一个MySQL代理,但我的猜测是,MySQL进程运行在不同的名称,这就是为什么你不能通过psfind它。