如何查服务器IP地址与端口?

查看服务器IP地址常用命令:ifconfig(旧系统)或ip addr(Linux);ipconfig(Windows),查看端口信息:netstat -tulnss -tuln(Linux);netstat -ano(Windows),公网IP可用curl ifconfig.me

准确获取服务器的IP地址和正在监听的端口信息,是服务器管理、网络调试和安全审计的基础操作,不同操作系统使用的命令不同,以下是Linux/Unix系统和Windows系统的详细方法:

查看服务器IP地址

  • Linux/Unix 系统 (包括 CentOS, Ubuntu, Debian, macOS 终端等):

    1. ifconfig (传统命令,部分新系统可能需安装 net-tools):
      ifconfig
      • 在输出结果中,找到你正在使用的网络接口(如 eth0, ens33, enp0s3, wlan0 等)。
      • 对应的 inetinet addr 后面的地址就是该接口的IPv4地址(168.1.100)。
      • inet6 后面的地址是IPv6地址。
    2. ip (现代推荐命令):
      ip addr show
      # 或简写
      ip a
      • 同样查找对应的网络接口。
      • inet 后面是IPv4地址,inet6 后面是IPv6地址,此命令输出更清晰,信息更全。
    3. hostname (查看主机名和IP):
      hostname -I  # 显示所有非回环(loopback)网络接口的IP地址 (通常只显示IPv4)
  • Windows 系统:

    1. ipconfig (最常用):
      打开命令提示符 (cmd) 或 PowerShell,输入:

      ipconfig
      • 在输出结果中,找到你正在使用的网络适配器(如 “以太网适配器 以太网”, “无线局域网适配器 WLAN”)。
      • IPv4 地址 后面的值就是该适配器的IPv4地址(168.1.101)。
      • 如需查看所有详细信息,可使用:
        ipconfig /all

查看服务器端口监听和连接状态

  • Linux/Unix 系统:

    1. netstat (传统命令,功能强大,部分新系统可能需安装 net-tools):
      • 查看所有监听端口:
        netstat -tuln
        • -t: 显示 TCP 端口。
        • -u: 显示 UDP 端口。
        • -l: 仅显示监听 (LISTEN) 状态的套接字(服务端口)。
        • -n: 以数字形式显示地址和端口号(不解析主机名和服务名),速度更快。
      • 查看所有连接 (包括监听、已建立连接等):
        netstat -tunap
        • -a: 显示所有连接和监听端口。
        • -p: 显示进程标识符 (PID)进程名称(需要管理员/root权限才能查看所有进程信息)
      • 输出解读:
        • Proto: 协议 (tcp, udp)。
        • Recv-Q, Send-Q: 接收和发送队列。
        • Local Address: 本地地址和端口 (格式 IP:Port)。0.0.0 或 表示监听所有可用IP。
        • Foreign Address: 远程地址和端口 (对端)。
        • State: 连接状态 (如 LISTEN, ESTABLISHED, TIME_WAIT 等)。
        • PID/Program name: 使用该端口的进程ID和名称。
    2. ss (Socket Statistics, 现代推荐命令,netstat 的替代品,更快更高效):
      • 查看所有监听端口:
        ss -tuln

        (参数含义同 netstat -tuln)

      • 查看所有连接:
        ss -tunap

        (参数含义同 netstat -tunap)

      • 输出格式与 netstat 类似,但更简洁高效。
    3. lsof (List Open Files, 功能强大,可查看进程打开的文件/端口):
      • 查看所有监听在TCP端口80的进程:
        lsof -i TCP:80
      • 查看所有网络连接:
        lsof -i
      • 查看特定进程(如PID 1234)打开的网络连接:
        lsof -p 1234 -i
      • 输出包含:命令(COMMAND)、PID、用户(USER)、文件描述符(FD)、类型(TYPE)、设备(DEVICE)、大小/偏移(SIZE/OFF)、节点(NODE)、名称(NAME – 包含IP:Port信息)。
  • Windows 系统:

    1. netstat (主要命令):
      • 查看所有监听端口:
        netstat -ano | findstr /i "listening"
        • -a: 显示所有连接和监听端口。
        • -n: 以数字形式显示地址和端口号。
        • -o: 显示进程标识符 (PID)
        • | findstr /i "listening": 管道符过滤,只显示包含 “LISTENING” (不区分大小写 /i) 的行。
      • 查看所有连接 (包括监听、已建立连接等):
        netstat -ano
      • 输出解读:
        • Proto: 协议 (TCP, UDP)。
        • Local Address: 本地地址和端口 (格式 IP:Port)。0.0.0[::] 表示监听所有IP。
        • Foreign Address: 远程地址和端口 (对端)。
        • State: 连接状态 (如 LISTENING, ESTABLISHED, TIME_WAIT, CLOSE_WAIT 等)。
        • PID: 使用该端口的进程标识符 (PID)
      • 根据PID查找进程名:
        1. 打开任务管理器 (Ctrl+Shift+Esc)。
        2. 切换到 “详细信息” 选项卡。
        3. 找到对应PID的进程,查看 “名称” 列,或者使用命令:
          tasklist | findstr "PID号"  # tasklist | findstr "1234"
    2. Get-NetTCPConnection (PowerShell 命令,更现代):
      在 PowerShell 中运行:

      Get-NetTCPConnection | Select-Object LocalAddress, LocalPort, RemoteAddress, RemotePort, State, OwningProcess | Format-Table -AutoSize

      输出包含本地地址/端口、远程地址/端口、状态和进程PID,格式更规整。

重要提示与专业建议

  1. 权限要求: 查看其他用户进程或系统进程的端口信息(特别是 -p 参数或 -o 参数显示PID时),通常需要管理员权限 (sudo / root 在 Linux, 以管理员身份运行 在 Windows)。
  2. netstat vs ss / lsof: 在 Linux 上,sslsof 是更现代、更高效的工具,netstat 已被标记为过时(obsolete),但在许多系统上仍可用,新脚本建议优先使用 sslsof
  3. 端口状态解读:
    • LISTEN / LISTENING: 服务正在该端口上等待连接请求,这是你通常需要关注的服务器端口状态。
    • ESTABLISHED: 一个活动的网络连接已成功建立。
    • TIME_WAIT / CLOSE_WAIT: 连接正在关闭过程中。
  4. 防火墙影响: 即使服务在监听某个端口,防火墙规则也可能阻止外部访问,检查防火墙配置 (iptables, nftables, firewalld 在 Linux; Windows Defender 防火墙在 Windows) 是必要的。
  5. 端口冲突: 如果两个程序试图监听同一个IP地址的同一个端口,后启动的程序通常会失败,使用上述命令可快速定位哪个进程占用了特定端口。
  6. 安全审计: 定期检查服务器监听的端口是安全最佳实践,关闭不必要的服务和端口能有效减少攻击面,对于不熟悉的监听端口,务必调查其来源和用途。
  7. 外部IP: 上述命令查看的是服务器的本地/内网IP,要查看服务器在互联网上的公网IP,通常需要从外部访问特定服务(如访问 ipinfo.io/ipifconfig.me 等网站),或在云服务商的控制台查看分配给实例的公网IP,本地命令无法直接获取公网IP(除非服务器直接配置了公网IP且是主接口)。

掌握这些命令是服务器管理和网络故障排查的核心技能,务必在理解其输出含义的基础上进行操作,并注意权限和安全风险。


引用与参考来源说明

  • Linux ip 命令文档: man ip (终端) 或 https://man7.org/linux/man-pages/man8/ip.8.html
  • Linux ss 命令文档: man ss (终端) 或 https://man7.org/linux/man-pages/man8/ss.8.html
  • Linux netstat 命令文档 (过时但参考): man netstat (终端) 或 https://man7.org/linux/man-pages/man8/netstat.8.html
  • Linux lsof 命令文档: man lsof (终端) 或 https://linux.die.net/man/8/lsof
  • Windows ipconfig 命令文档: https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/ipconfig
  • Windows netstat 命令文档: https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/netstat
  • Windows Get-NetTCPConnection 文档: https://docs.microsoft.com/en-us/powershell/module/nettcpip/get-nettcpconnection
  • IANA 端口分配列表: https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml (用于查询知名端口用途)
  • TCP 状态图 (理解状态含义): RFC 793 或网络教材 (如 https://en.wikipedia.org/wiki/Transmission_Control_Protocol#/media/File:Tcp_state_diagram_fixed.svg)

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/4555.html

(0)
酷番叔酷番叔
上一篇 2025年6月15日 09:29
下一篇 2025年6月15日 10:16

相关推荐

  • asp连接access数据库字符串函数的写法与使用技巧有哪些?

    在ASP(Active Server Pages)开发中,连接Access数据库是最常见的操作之一,而连接字符串是实现连接的核心配置,它包含了数据库的位置、访问权限、驱动程序等信息,ASP通过解析连接字符串中的参数,建立与Access数据库的通信通道,本文将详细解析ASP连接Access数据库的字符串函数、核心……

    2025年10月18日
    3500
  • ASP与PHP,选哪个更合适?

    在Web开发领域,ASP和PHP是两种历史悠久且应用广泛的服务器端脚本语言,它们各自拥有独特的特性和优势,适用于不同的开发场景和技术栈,本文将从语言特性、性能表现、开发环境、应用场景及社区生态等多个维度,对ASP和PHP进行详细对比分析,帮助开发者更好地理解两者的差异与适用性,语言特性与语法差异ASP(Acti……

    2025年11月29日
    1200
  • GHO文件能用DOS命令管理吗

    GHO文件是Ghost软件创建的磁盘镜像文件,用于系统备份或恢复,DOS命令是早期磁盘操作系统的命令行指令,常用于系统维护或执行底层操作。

    2025年7月15日
    8400
  • asp进度条上传

    ASP进度条上传是通过客户端与服务器端实时交互,动态展示文件上传进度的一种技术方案,能有效提升用户体验,避免因上传时间过长导致的操作中断困惑,其核心原理是在文件上传过程中,客户端通过定时请求服务器获取已上传字节数与总字节数的比例,再将该比例映射到进度条控件上实现可视化展示,本文将从实现原理、环境准备、代码实现及……

    2025年11月4日
    2300
  • ASP轮询为何会成为性能瓶颈?

    在Web开发领域,实现数据的实时更新是一个常见且重要的需求,由于HTTP协议的无状态特性,服务器无法主动向客户端推送信息,这就催生了多种模拟实时通信的技术,ASP轮询作为一种基础且广泛应用的解决方案,为开发者提供了一条相对简单的路径来构建动态、准实时的Web应用程序,本文将深入探讨ASP轮询的原理、实现方式、优……

    2025年11月20日
    1700

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信