要查看服务器的端口和IP,最直接的办法是登录服务器后输入 ip addr 看IP,再用 netstat -tulnp 或 ss -tulnp 看端口监听状态。 下面我把常用查询方法、命令细节和排错思路拆开讲,保证你能照着操作。
查看服务器IP地址的常用方法
IP地址分内网和公网,查看方法略有区别,别嫌基础,实际工作中很多人把内网IP和公网IP搞混,导致配置出错。
用ip addr命令查看内网IP
Linux系统首先推荐 ip addr,在终端输入:
ip addr show
输出结果里会看到 inet 开头的行,inet 192.168.1.100/24,这就是当前网卡的内网IP,如果有多张网卡,每张都会显示,想看某个网卡,直接加名字:
ip addr show eth0
老习惯用 ifconfig 也行,但很多最小化安装的Linux没有预装,还要额外装包,用 ip 命令基本不会遇到这种情况。
用hostname -I快速列出本机所有IP
如果你只关心IP数字,不想看一堆网卡信息,hostname 命令更省事:
hostname -I
这条命令会返回当前机器上所有IP,空格分隔,适合写脚本或快速确认,注意它不会区分内网和公网,需要自己结合网络结构判断。
用curl命令获取公网IP
要是想知道这台服务器对外的公网IP,最简单的办法是访问第三方服务:
curl ifconfig.me
curl ip.sb
curl cip.cc
三条任选其一,返回的纯文本就是当前出口公网IP,注意:公网IP不等于服务器网卡上配置的IP,可能在NAT或负载均衡后面,用这个方式能看到真正对外访问的地址,业内专家指出,很多运维事故都是因为混淆了内网IP和公网IP,导致服务明明在跑,外部却怎么都连不上。
对比表:不同命令查看IP的场景
| 场景 | 推荐命令 | 备注 |
|---|---|---|
| 看内网IP | ip addr | 最通用,无额外依赖 |
| 看公网IP | curl ifconfig.me | 需要出网权限 |
| 批量获取IP | hostname -I | 适合脚本自动化 |
| Windows服务器 | ipconfig | 同时看IPv4和IPv6 |
服务器端口查看与监听状态检查
端口是服务的大门,要判断服务是否正常启动,就得看端口有没有在监听,下面几个命令是排查端口问题的基石。
linux查看服务器端口命令:netstat vs ss
netstat 是老牌工具,但系统资源占用略高。ss 是新一代工具,速度和信息量都更好,两个命令可以相互替换,我建议优先学 ss。
查看所有监听端口:
ss -tulnp
参数解释:
-t:TCP端口-u:UDP端口-l:仅显示监听中的端口-n:显示数字地址和端口,不做域名解析-p:显示占用进程
输出中 Local Address:Port 就是IP和端口。0.0.0:80 表示监听所有IP的80端口,0.0.1:3306 表示只允许本机访问数据库。
用 netstat 同理:
netstat -tulnp
如果你的Linux版本比较旧,或者习惯了 netstat,就用它,行业共识认为,新部署的环境直接使用 ss 更合理。
lsof查看进程占用的端口
有时候你想知道某个端口被谁占了,用 lsof 最直接:
lsof -i:8080
输出会列出PID、进程名和用户,这对解决“端口被占用”特别有用,找不到 lsof 就先安装:yum install lsof 或 apt install lsof。
一条命令同时看端口和进程
如果你只想确认某个服务有没有正常监听,可以配合 grep:
ss -tulnp | grep 8080
或者直接看服务的进程状态:
ps aux | grep nginx
两者结合,能快速定位“明明进程在跑,端口却连不上”的问题。
常见端口和服务对照速查
- 22:SSH远程管理
- 80/443:HTTP/HTTPS网站
- 3306:MySQL数据库
- 6379:Redis缓存
- 8080:常见Java或代理服务端口
记住这份表,看到端口数字就能大致猜到跑的是什么。
实战:排查端口连通性
看到IP和端口之后,下一步通常是测试外部能不能访问,这时候需要用到专门的连通性工具。
用telnet测试TCP端口是否开放
telnet 是最简单的端口检测方式,例如测试某服务器提供商的端口是否通:
telnet 192.168.1.100 22
如果端口开放,会进入空界面或显示SSH版本信息,如果连接超时或拒绝,说明端口没开或被防火墙挡了,注意:云服务器商的安全组规则也要检查,本地netstat能看到监听,但安全组不透传就白搭。
用nc做更深度的端口扫描
nc 比 telnet 更灵活,适合在本地批量测试:
nc -zv 192.168.1.100 22-25
这条命令会扫描22到25号端口,返回 open 或 closed,做异地端口是不是通的时候,这个工具比登录服务器更直观。
防火墙规则和端口IP绑定的常见误区
很多人遇到“端口不通”就直接怀疑软件配置,其实相当一部分问题出在防火墙,查看当前防火墙规则:
iptables -L -n
如果有 firewalld,用:
firewall-cmd --list-all
看清允许的IP和端口,另一个常见误区是绑定地址错误,比如服务监听在 0.0.1 而你在外部访问,自然连不上,这种坑我踩过不止一次。
怎么看服务器端口ip的常见问题
问:用 ss -tulnp 看不到服务端口,但进程明明在运行,怎么回事?
先检查服务是否真的监听了,可能用了Unix socket或只监听IPv6,用 ss -lntup 并把 -l 去掉看所有状态,有时服务还在TIME_WAIT未释放,更常见的是你跑命令时权限不够,看不到进程信息,加上 sudo 试试。
问:服务器端口能ping通,但访问网站却超时,怎么判断问题?
端口检测用 telnet 或 nc,不要用ping,ping走ICMP协议,跟TCP端口没关系,你先在服务器本地 curl 127.0.0.1:端口,通就是服务正常,剩下检查安全组、防火墙、云厂商封禁策略。
问:买服务器时为什么经常看到“端口IP”的说法?
这通常指服务器对外服务需要的IP和端口组合,例如搭建网站需要公网IP加80/443端口,云服务器厂商的控制台会展示基础网络配置,你登录后用第一条命令查看实际绑定地址即可,不同厂商的管理界面描述细节有差别,但底层原理相同。
最后说一句
把IP看懂,把端口查清,服务器的大多数网络问题已经解决了一半,别被一堆命令吓到,常备 ip addr 和 ss -tulnp 这两个就够了,其他工具都是在这两条基础上查漏补缺。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/694058.html





