当前位置:首页 > 问答 > 正文

Redis怎么查远程端口号啊,查询端口信息的方法和技巧分享

要查一个远程Redis服务器的端口号,其实方法有很多种,而且很多方法并不需要你直接登录到那台服务器上,下面我就把这些方法和技巧详细说一下,你可以根据你手头有的条件来选择。

最直接的方法:问管理员或看配置文件

这个方法听起来像是废话,但往往是最快最准的,如果你能联系到管理这台Redis服务器的人,直接问他是最简单的,如果他给了你服务器的访问权限,你可以登录上去,找到Redis的配置文件,通常文件名是 redis.conf,你用文本编辑器打开这个文件,然后找一行叫 port 的,这一行后面跟着的数字,port 6379,就是Redis正在监听的那个端口号,6379是Redis默认的端口,但很多时候为了安全,管理员会把它改成别的。

Redis怎么查远程端口号啊,查询端口信息的方法和技巧分享

常用的网络工具扫描和探测

很多时候你没法联系管理员,或者你没有服务器的登录权限,这时候就需要用一些外部工具来“侦察”了。

  1. 使用 telnet 或 nc (netcat) 试试看 这是最轻量级的探测方法,你可以在你自己的电脑上打开命令行(比如Windows的CMD或PowerShell,Mac和Linux的终端),然后输入:telnet 目标服务器IP地址 端口号,比如你先试试默认端口:telnet 192.168.1.100 6379

    Redis怎么查远程端口号啊,查询端口信息的方法和技巧分享

    • 如果连上了:命令行窗口可能会变黑或者显示一些字符,这基本就能确定这个端口是开放的,而且很可能就是Redis服务,你甚至可以输入一个Redis命令,PING,如果服务器返回 PONG,那就百分之百是Redis了。
    • 如果连不上:会显示连接失败或者超时,这并不一定代表端口不对,也可能是因为网络防火墙挡住了。

    这个方法的好处是简单,几乎所有电脑系统都自带这两个工具,缺点是你得一个一个端口去试,如果端口不是默认的,那就像大海捞针。

  2. 使用专业的端口扫描工具:Nmap 当你不确定端口号,或者想看看那台服务器上还开了哪些其他服务时,Nmap是专业人士最爱用的工具,功能非常强大。 基本的使用命令是:nmap 目标服务器IP地址,这个命令会扫描那台服务器最常用的一千个端口,如果Redis用的是默认端口6379,它很快就能扫出来,并且会在一旁标注“redis”字样。 如果默认端口没开,你可以进行更全面的扫描:nmap -p 1-65535 目标服务器IP地址,这个命令会扫描所有六万多个端口,速度会慢一些,但只要能扫出来,结果就很可靠,Nmap有个智能识别服务版本的功能,命令是 -sVnmap -sV -p 6379 192.168.1.100,它会主动去探测6379端口,并尽最大努力告诉你这个端口上跑的就是Redis服务。

通过已建立的连接反推端口

Redis怎么查远程端口号啊,查询端口信息的方法和技巧分享

如果你已经在某个地方连接着这个Redis服务器,你可以利用这个连接来反推它用的是哪个端口。

  1. 在客户端工具里看 比如你用的是Redis Desktop Manager这类图形化工具,在连接配置信息里,通常都会明确写着端口号是多少,你直接去看连接设置就行了。

  2. 在连接方的机器上用命令查 假设你的应用服务器(比如一台Web服务器)已经连上了Redis,你可以登录到这台应用服务器上,用系统命令查看它到Redis的连接。 在Linux或Mac上,可以用 netstatss 命令,输入 netstat -an | grep 目标Redis服务器的IP地址,或者 ss -an | grep 目标Redis服务器的IP地址,在显示的结果里,你会看到一条记录,本地IP地址后面跟着一个端口号(这是你应用服务器自己的随机端口),而远程地址那一列,就是Redis服务器的IP地址后面跟着它的端口号,这个端口号就是你想要的。 在Windows上,可以打开命令提示符,输入 netstat -an | findstr 目标Redis服务器的IP地址,效果是一样的。

一些额外的技巧和注意事项

  • 安全考虑:未经授权扫描他人的服务器端口可能是不被允许的,甚至可能是违法的,请确保你是在扫描你自己有权限管理的服务器,或者已经获得了明确的授权。
  • 防火墙是最大的变数:所有从外部探测的方法都有一个前提,就是你和Redis服务器之间的网络是通的,而且中间没有防火墙拦截你的探测请求,有时候你扫不到端口,不是因为服务没开,而是被防火墙挡住了,这时候,还是得靠和管理员沟通。
  • 端口不一定是数字:在极少数非常古老的Unix系统上,Redis还可能被配置为使用Unix Socket文件(一个特殊的文件)而不是网络端口进行通信,这种情况下,你从网络上是根本探测不到端口号的,不过现在99%的情况都是网络端口连接。
  • 利用Redis协议的特性:Redis有自己的通信协议,即使端口号被改掉了,你向这个端口发送一个Redis格式的命令(*1\r\n$4\r\nPING\r\n),如果对方是Redis,它可能会给你回应,这也可以作为一种验证手段,但通常需要自己写点小脚本,不如用现成工具方便。

查远程Redis端口号,优先选择问人和查配置;如果不行,就用telnet快速试常用端口,或者用Nmap进行系统性的扫描;如果已经有客户端连着了,就在客户端机器上用netstat或ss命令反查,希望这些方法能帮到你。