在Windows系统下同时按下Win+R键输入cmd回车,再输入ipconfig查看IP地址,输入netstat -ano查看端口占用,这就是电脑开服务器最核心的端口和IP查看方法。
内网IP是服务器能被局域网内设备访问的地址,外网IP才是互联网用户找到你的关键。很多新手搭好了服务却死活连不上,十有八九是搞混了这两个概念,这篇文章把每一步操作掰开揉碎讲清楚,照着敲命令就能搞定。
怎么看本机IP地址:区分内网IP和外网IP
开服务器之前,先得知道你电脑在网络里的“门牌号”,这里要分两层看:内网IP由路由器分配,外网IP由运营商分配。
Windows系统查看内网IP
- 按下Win + R键,输入
cmd回车打开命令提示符 - 输入
ipconfig回车 - 找到“以太网适配器”或“无线局域网适配器 WLAN”下的IPv4 地址,格式一般是
168.x.x或x.x.x
这就是你电脑在当前局域网中的IP,如果家里有多个路由器,这个地址可能是二级路由分配的,需要在对应路由器的管理页面确认网段。
查看外网IP的方法
外网IP有两种情况:动态IP(隔一段时间变一次)和静态IP(固定不变),家用宽带绝大多数是动态IP。
查看方法很简单:
- 浏览器访问
ip.sb或ip.cn这类查询站点,页面显示的IP就是你的公网出口地址 - 在命令行输入
curl ifconfig.me(Linux/macOS)或nslookup myip.opendns.com resolver1.opendns.com(Windows)也能拿到
注意:这个外网IP是运营商分配给你的,可能是真正的公网IP,也可能是个大局域网IP(运营商内网地址)。 区分方法:在路由器管理页面看WAN口IP,如果和查询站点显示的一致,就是真公网IP,否则说明你在运营商的内网里,需要打电话申请公网IP或使用内网穿透。
怎么看端口占用和监听状态
端口相当于服务器的“门”,门开错了或者被堵住,服务就访问不了,这里用Windows自带的netstat命令就能搞定。
查看所有监听的端口
在命令提示符里输入:
netstat -ano | findstr LISTENING
这条命令列出所有正在监听(等待连接)的端口,输出内容里:
- 本地地址列显示
0.0.0:8080,冒号后面就是端口号 - PID列显示进程编号,配合任务管理器能查到是哪个程序占用了端口
查看某个特定端口是否被占用
想知道8080端口有没有被占用,输入:
netstat -ano | findstr 8080
没有任何输出就代表没有程序监听这个端口,有输出的话,最后一列的数字就是占用该端口的进程ID。
通过PID反查是哪个程序
拿到PID后,在命令行输入:
tasklist | findstr 1234
(把1234替换成你查到的PID),就能看到对应的程序名,如果是系统进程或者不认识的程序占用了端口,可以输入taskkill /PID 1234 /F强制结束进程。
路由器端口映射:把服务暴露到公网
服务器在本地跑起来了,IP和端口都查到了,但外网用户还是进不来。原因在于路由器默认拒绝了所有来自外部的主动连接请求,你需要手动设置端口映射(也叫虚拟服务器)。
登录路由器管理页面
- 在浏览器输入
168.1.1或168.0.1(具体看路由器背面标签) - 输入管理员密码登录
- 找到“转发规则”“虚拟服务器”或“端口映射”选项,不同品牌位置不同
华为、TP-Link、小米等主流路由器的界面路径稍有差异,但核心配置项是一致的。
配置端口映射的四个关键字段
- 外部端口:公网用户访问时使用的端口,可以改成一个不常用的数值,比如
8080 - 内部端口:你电脑上服务实际监听的端口,比如Web服务是
80,Node.js常见是3000 - 内部IP地址:填你电脑的内网IP(就是第一步ipconfig查到的那个)
- 协议类型:一般选
TCP,不确定就选ALL
配置完成后,在路由器WAN口IP的对应端口(公网IP + 外部端口)访问,就能穿透到内网服务器。 建议为服务器电脑设置静态内网IP,避免路由器重启后DHCP分配的IP变动导致映射失效。
检测端口是否开放:从外网视角验证
配置完端口映射,怎么确认真的通了?这就需要一个外部视角的检测工具。
在命令行用telnet测试
Windows自带的telnet客户端默认未启用,先启用一下(控制面板→程序→启用或关闭Windows功能→勾选Telnet客户端),然后输入:
telnet 你的公网IP 8080
连接成功会进入空白界面或显示欢迎信息,失败则提示“无法打开到主机的连接”。
在线端口扫描工具
有相当一部分站长使用tool.chinaz.com/port或www.yougetsignal.com/tools/open-ports这类工具检测,输入公网IP和端口,几秒钟就能判断端口是否对外开放。
注意:检测前先确认服务器的防火墙没有拦截外部连接。 Windows防火墙默认会拦截所有未明确放行的入站连接,这是新手最容易忽略的坑。
放行Windows防火墙端口
- 打开控制面板→Windows Defender防火墙→高级设置
- 点击左侧“入站规则”→“新建规则”
- 选择“端口”→“TCP”→填写端口号
- 选择“允许连接”→“配置文件全选”→“名称随意填写”
规则生效后,外部请求才能到达你的服务。
如果这台服务器是用来搭建网站、游戏服务器或远程桌面服务的,建议在路由器中设置端口转发后,再通过手机流量(不连Wi-Fi)访问公网IP验证,双重确认链路通畅。
解决常见问题:端口和IP排查实操
开服务器总会遇到各种连不上的情况,下面这些场景基本覆盖了大多数问题。
路由器端口映射设置了还是不通
- 检查WAN口IP是否真的是公网IP,很多小区宽带用的是CGNAT(运营商级NAT),你拿到的192.168.x.x或100.64.x.x是运营商内网地址,端口映射做得再对也白搭
- 确认没有多个路由器叠加,光猫拨号+路由器拨号的双层NAT结构,需要在光猫上也做端口映射,或者把光猫改成桥接模式
- 有些路由器自带“安全防护”功能会拦截端口映射,暂时关闭测试一下
服务器端口被占用怎么解决
如果用netstat查到端口已经被其他进程占用,有两个办法:
- 换一个端口启动服务,比如把Web服务的8080改成8090
- 找到占用进程并结束它(用前面提到的PID反查命令),再重启服务
端口已经对外开放,但访问速度奇慢
- 检查路由器是否开启了QoS限速或带宽控制
- 用网线直连测试,排除Wi-Fi信号干扰因素
- 查看服务器CPU和内存占用,可能是服务本身处理能力到了瓶颈
和IP、端口相关的日常运维建议
服务器跑起来之后,日常维护也得跟上,行业共识认为,服务器安全防护的重心应该放在端口管理上。
定期检查端口开放状态
建议每两周执行一次netstat -ano,重点检查有没有陌生端口处于LISTENING状态,多数情况下,异常开放端口是恶意程序的入侵信号。
不用的端口及时关闭
在防火墙上删除不再使用的入站规则,或者在路由器里删除对应的端口映射,开放端口越多,被扫描攻击的面就越大。
改用非默认端口提升安全性
MySQL的3306、远程桌面的3389、SSH的22,这些端口是扫描器最钟爱的目标,把服务端口改成高位随机端口(比如53000以上),能过滤掉相当一部分暴力破解尝试。
常见问题解答
电脑开服务器时,内网IP和外网IP有什么区别?
内网IP是路由器分配给你的局域网地址(比如192.168.1.100),同一网络内的设备可以访问,外网IP是运营商分配给你的公网地址,所有互联网用户都能通过它找到你的服务器,如果你的路由器设置了端口映射,外部用户就可以通过外网IP加映射端口访问你的内网服务。
为什么设置了端口映射,外网还是访问不了?
最常见的原因是运营商没有分配真正的公网IP,少数情况下是光猫拨号导致的双层NAT没有处理,或者路由器防火墙未放行对应端口,建议先登录路由器查看WAN口IP,如果IP段是192.168.x.x或10.x.x.x,说明是运营商内网,需要联系客服申请公网IP,或者改用frp、ngrok这类内网穿透方案,未开启路由器的UPnP功能,某些需要动态端口映射的服务也会失效。
端口查询显示被占用,但不知道是什么程序占用的?
用netstat -ano查出占用端口的PID,然后打开任务管理器(Ctrl+Shift+Esc),在“详细信息”标签页里按PID排序查找,如果你熟悉命令行,可以用tasklist /FI "PID eq 你的PID"精确定位,对于系统关键进程(System、svchost.exe等)占用的端口,不建议强制结束,优先更换业务端口。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/786501.html

