服务器的IP地址和端口,本质上就是服务器在网络中的门牌号和房间号:IP地址告诉数据包去哪台机器,端口告诉它该进哪个程序,两者缺一不可,组合成“IP:端口”的形式才算一个完整的网络通信入口。
很多朋友买了服务器或者租了云主机,在配置环境、部署网站、连接数据库时,总会卡在填IP和端口这一步,明明密码对了、服务也启动了,偏偏就是连不上,问题多半出在IP类型选错,或者是端口没放行,下面按场景把这事儿彻底捋清楚。
怎么查看服务器的IP和端口
先搞清楚手里这台服务器到底有什么,不同场景下,IP和端口的获取方式差异挺大,但核心思路是一致的:IP看控制台,端口看服务配置。
云服务器控制台查询IP地址
无论是简米云、酷番云还是华为云,登录管理控制台后,在“云服务器ECS”或“轻量应用服务器”实例列表里,能看到两串关键信息:公网IP 和 内网IP,公网IP用于互联网访问,内网IP用于同区域云产品间的内部通信,如果你搭建网站对外提供服务,填的是公网IP;如果是数据库备份或者内网互通,填内网IP就行。
本地服务器通过命令行查IP
自建机房或家里有物理服务器的话,Windows系统打开命令提示符输入 ipconfig,Linux系统输入 ip addr 或 ifconfig,显示结果里,Ethernet adapter 或 ens33 这类网卡下的 IPv4 地址就是当前局域网IP,但注意,这是私网IP,要对外提供服务,还得在路由器上做端口映射,把公网IP的某端口转发到这台机器的私网IP和对应端口上。
端口号看服务本身而非IP
端口不是服务器自动分配的,而是由你运行的程序决定的。 比如你在Linux上装了Nginx,默认监听80端口;装了MySQL,默认监听3306端口;跑了Tomcat,通常监听8080端口,要查当前服务器哪些端口在监听,Linux执行 netstat -tlnp 或 ss -tlnp,Windows执行 netstat -ano,看到 LISTENING 状态的行,冒号后面的数字就是端口号。
服务器端口选错或填错怎么排查
端口填错是新手高频踩坑点,证书部署好了、域名解析也对了,浏览器就是打不开页面,多半是端口访问不通。
检查服务是否真正在运行
很多时候程序没起来,端口自然不存在,用

ps aux | grep nginx 看进程,或者直接尝试本地访问 curl http://127.0.0.1:8080,如果通了说明服务本身没问题,问题出在外部访问链路。
确认云平台安全组放行
云服务器的防火墙有两层:操作系统自带的和云平台安全组,安全组是云服务商提供的虚拟防火墙,默认只放行少数端口。在控制台找到“安全组”或“防火墙”配置,添加入方向规则,协议选TCP,端口填你需要的值(比如8080),来源设为0.0.0.0/0(表示所有IP可访问)或限定特定IP更安全,安全组放行后,还要确认系统内部防火墙没拦截,CentOS用 systemctl stop firewalld 或放行端口,Ubuntu用 ufw allow 8080,否则照样连不上。
使用telnet测试端口连通性
在本地电脑打开命令行,执行 telnet 服务器IP 端口号,如果回车后黑屏光标闪烁,说明连通成功;如果提示 Could not open connection to the host,则说明端口不可达,需要特别注意,酷番云轻量应用服务器的防火墙和简米云安全组入口位置不同,找的时候留意控制台侧边栏的“防火墙”字样。
业内专家指出,端口问题的排查顺序永远是:进程监听状态 → 本机回环测试 → 防火墙/安全组 → 外部telnet验证,别跳过中间步骤直接钻牛角尖。
检查端口冲突或被占用
用 lsof -i:8080 或 netstat -tlnp | grep 8080 查看某端口被哪个进程占用,如果两个程序抢同一个端口,后启动的会报错,改配置文件里的 listen 或 port 参数就行,改完记得重启服务。
MySQL和远程桌面的常见端口细节
数据库远程连接和服务器远程管理是最常用端口的典型场景,这里单独拎出来说清楚。
MySQL的3306与远程访问权限
MySQL默认监听3306,但仅限本机连接,要允许外部访问,除了MySQL配置文件里的 bind-address 要改成 0.0.0,还要执行授权SQL:
GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION; FLUSH PRIVILEGES;
同时必须在云平台安全组放行3306端口,放行后,本地的Navicat或DBeaver连接时,主机填公网IP,端口填3306,即可连通,如果公网连接失败但局域网内能连,重点检查云平台的安全组规则是不是限制了对公网源IP的访问。

Windows远程桌面3389端口
远程桌面服务默认端口是3389,修改该端口可以在注册表编辑器里操作,路径为 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWdsrdpwdTdstcp 和 WinStationsRDP-Tcp,把 PortNumber 的十进制值改为新端口(比如3390),改完后重启系统,还要在防火墙里放行新端口,修改时建议先确认远程管理渠道是否还有其他途径,避免把自己锁在门外。
配置公网服务时常用的端口选择策略
搭建网站、部署API、运行游戏服务器,都面临端口选择,没有绝对最优,只有适不适合场景。
区分默认端口与自定义端口
网站服务用80或443,用户访问时无需手动输端口;如果用8080或8000,访问地址必须写成 http://IP:8080,自定义端口的好处是避开扫描器的常规探测,坏处是不方便记忆。对外提供Web服务时,80和443仍是推荐选择,因为搜索引擎和用户习惯都基于默认端口。 非Web服务,如游戏联机或API接口,用8000-9999范围内的高位端口可以减少冲突概率。
端口表参考
| 服务类型 | 默认端口 | 常见替代端口 |
|---|---|---|
| HTTP网站 | 80 | 8080、8000 |
| HTTPS网站 | 443 | 8443 |
| SSH远程连接 | 22 | 2222、22026 |
| Windows远程桌面 | 3389 | 3390、33889 |
| MySQL数据库 | 3306 | 3307、13306 |
| Redis缓存 | 6379 | 6380 |
| FTP文件传输 | 21 | 2121 |
一处配置保住整体安全
端口开放越多,暴露面越大,行业共识认为,按需开放、入方向规则尽量限定来源IP,比隐藏端口更实际,比如公司办公网出口IP固定,那么安全组里只放行这个IP访问22端口,其他IP一律拒绝,即便有人扫描到22端口开着,也进不来,国内服务器和海外服务器在端口配置上没有本质差异,但国内地域的服务器做网站服务需要完成备案,否则80和443端口会被机房拦截,这属于地域性政策限制,买服务器前先确认这一点。
服务器连接地址由IP和端口组成
买服务器时,服务商给的“公网IP”和“端口号”并非完全绑定,IP是资源,端口是服务入口,强行记忆“IP:端口”容易出错,建议把连接信息整理到一个文档里,分类记录:

- 每台服务器的公网IP、内网IP
- 已部署的服务名与对应端口号
- 安全组已放行的端口列表
- SSH或远程桌面的备用端口
把服务器看成一套房,公网IP是大门地址,端口是客厅、卧室、厨房各自的门,你可以决定哪扇门对外打开,哪扇门只留给自己走,修改端口能提升一点安全性,但前提是你清楚改动了哪些依赖它的配置,包括数据库连接串、反向代理设置、防火墙规则等,改完后逐个验证,是避免“改坏还不知情”的最佳做法。
服务器IP和端口的配合关系,直接决定你的服务能不能被外部稳定访问,开局那句话说得很清楚:IP对机器,端口对程序,排查问题时按“服务是否监听 → 本机能否访问 → 防火墙是否放行 → 公网能否telnet”的顺序一步步来,绝大多数连不上的问题都能在十分钟内定位。
Q&A:服务器IP端口相关常见问题
买服务器的时候送的那个IP和端口在哪看?
服务商控制台的实例详情页就是入口,IP直接显示在实例基本信息里,端口不会在购买时直接给你,因为端口是由你后续安装的软件决定的,比如装Nginx后默认80端口,装MySQL后默认3306端口,控制台里的“安全组”或“防火墙”板块,则是你要去检查或修改端口放行策略的地方。
为什么公网IP能ping通但端口连不上?
ping走的是ICMP协议,跟TCP端口没有关系,端口连不上先去服务器本机执行 curl 127.0.0.1:端口,通的话说明服务正常;不通说明服务没起来,本机正常再检查云平台安全组是否放行了该端口,其次是系统防火墙,telnet公网IP加端口,返回连接成功就是通了,拒绝或超时就是链路某处拦截了。
服务器端口怎么修改?
修改端口没有统一命令,每个软件的配置文件里都有对应参数,Nginx改 nginx.conf 里的 listen 行,MySQL改 my.cnf 里的 port 参数,SSH改 sshd_config 里的 Port 字段,改完重启对应服务,再用 netstat -tlnp 确认新端口已在监听,最后记得更新云平台安全组的放行规则,否则新端口照样连不上。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/902710.html

