如何查服务器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

相关推荐

  • CentOS下Vim如何退出命令模式?

    从命令模式切换到其他模式进入插入模式(编辑文本)按 i 键:在光标前插入文本按 a 键:在光标后插入文本按 o 键:在下一行新建一行并插入效果:底部状态栏显示 — INSERT –,表示已进入插入模式,进入可视模式(选择文本)按 v 键:进入字符选择模式按 Ctrl + v 键:进入块选择模式效果:底部状态……

    2025年7月12日
    2800
  • 如何快速进入Unix命令行?

    通过图形界面进入命令行大多数现代Unix系统(如Ubuntu、macOS)提供图形化桌面环境,可通过以下方式启动终端:快捷键启动同时按下 Ctrl + Alt + T(Linux常用)或 Command + Space 后搜索 “Terminal”(macOS),菜单查找 在应用程序菜单中搜索 “Termina……

    2025年6月24日
    3600
  • MAC地址是啥?

    MAC地址是网络设备的唯一物理标识符,由制造商烧录在网卡中,它用于在局域网内识别设备并确保数据准确传输到目标硬件,工作在数据链路层。

    2025年6月28日
    3500
  • 为什么你离不开时间显示?

    在计算机网络诊断中,ping命令是最基础且实用的工具之一,用于测试设备之间的连通性和延迟,默认情况下,ping命令会显示每个数据包的往返时间(单位:毫秒),但不会显示具体的发送/接收时间戳,若需在结果中显示时间信息(如发送时刻),需通过特定参数实现,以下是详细操作方法及原理说明:延迟波动分析:网络延迟可能随时间……

    2025年7月13日
    2600
  • 如何让自动化管理更安全高效?

    掌握Activato命令设置,精确配置自动化任务流程,通过安全策略规避风险,优化执行路径提升效率,实现智能化、可靠的任务管理。

    2025年6月17日
    3500

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信