如何查服务器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调用平台接口实现功能对接?

    ASP(Active Server Pages)作为一种经典的服务器端脚本技术,自1996年微软推出以来,便在Web开发领域占据了一席之地,尽管如今.NET、Java等现代技术栈更为流行,但在许多企业级遗留系统、内部管理平台及中小型项目中,ASP凭借其简单易学、开发快速的特点,仍被广泛应用,而“ASP调用平台……

    2025年11月15日
    7500
  • ASP应用程序代码究竟是通过什么服务器环境和解释机制来实现执行的呢?

    ASP(Active Server Pages)是微软早期开发的服务器端脚本环境,主要用于动态网页开发,要理解ASP的运行机制,需从其核心运行环境、处理流程、技术支撑及注意事项等多维度展开,以下将详细解析ASP通过什么运行及其背后的技术原理,ASP运行的核心环境:IIS与脚本引擎ASP的运行离不开两大核心组件……

    2025年11月18日
    7500
  • ASP如何精准获取上周日期范围?

    在ASP开发中,获取上周的时间范围是一个常见的需求,尤其在数据统计、日志分析等场景中,本文将详细介绍如何使用ASP(VBScript)实现这一功能,包括核心逻辑、代码实现及注意事项,核心逻辑概述获取上周时间范围的关键在于确定当前日期所在的周,并推算出上周的起始和结束日期,在VBScript中,可以使用Date……

    2025年12月15日
    5000
  • ASP读文件时如何高效操作?常见问题解析?

    在ASP(Active Server Pages)开发中,读取文件是一项基础且常用的操作,无论是读取配置文件、日志文件、文本数据,还是动态加载页面内容,都离不开文件读取功能,ASP主要通过FileSystemObject(FSO)对象来实现文件操作,该对象提供了丰富的属性和方法,支持对文本文件的读取、写入、删除……

    2025年11月2日
    10100
  • asp如何实现随机数字生成?方法与技巧解析

    在ASP(Active Server Pages)开发中,随机数生成是一个常见需求,例如验证码、随机抽奖、测试数据生成等场景,ASP主要通过内置的Randomize语句和Rnd函数实现随机数生成,但需注意其随机性并非绝对随机(伪随机),且需结合特定逻辑满足不同场景需求,本文将详细讲解ASP随机生成数字的方法、场……

    2025年11月5日
    9500

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信