你有没有遇到过这种情况:家里装了宽带,路由器也设置了,但某些软件就是连不上网?或者玩游戏时提示“连接失败”,别人却没问题?这时候,可能不是网络坏了,而是“端口”没对上。
端口到底是什么
别被名字吓到,端口其实不是物理上的插口,比如USB口、网线口那种。它是个虚拟的概念,更像是电脑里不同程序通信用的“门牌号”。
想象一下你住的那栋楼,IP地址是整栋楼的地址,比如“朝阳区XX路123号”。而端口就是这栋楼里的具体房间号。快递员(数据包)只知道地址不行,还得知道送到几零几房,对吧?
比如你打开浏览器上网,其实是你的浏览器通过“80号房间”去访问网站服务器;如果你用HTTPS加密访问,那就是走“443号房间”。这些数字,就是端口。
常见的端口有哪些
系统给很多常见服务分配了固定端口号,方便大家统一使用:
- HTTP 网页访问:端口 80
- HTTPS 加密网页:端口 443
- FTP 文件传输:端口 21
- SSH 远程登录:端口 22
- MySQL 数据库:端口 3306
这些就像是公共服务窗口,大家默认都认这个号。当然,你也可以改,比如把网站服务搬到8080,但别人就得主动找8080才能看到你。
为什么有时候要开“端口”
有些场景下,比如你在家里搭了个私有下载机,或者想让朋友连你的游戏服务器,就得在路由器上“开放端口”或做“端口映射”。
这是因为路由器默认会挡住外面来的连接请求,防止坏人乱闯。你想让人从外网访问你内网的服务,就得告诉路由器:“以后有人敲3389这个门,放他进来,送到我这台电脑。”
比如你要远程控制家里的电脑,Windows 的远程桌面功能默认用3389端口。你在路由器设置里把3389映射到自己电脑的IP,外面的人才能连上。
怎么查看自己电脑用了哪些端口
在Windows上,可以打开命令提示符,输入下面这行命令:
netstat -an
你会看到一堆IP和数字组合,像 127.0.0.1:3306 或 0.0.0.0:80,冒号后面的数字就是端口号。状态为LISTENING的,说明这个端口正在等着别人来连。
在Mac或Linux上也是一样,终端里输入netstat -an或者lsof -i :端口号也能查。
端口会被占用吗
会。就像两个住户不能共用一个房间号一样,同一时间一个端口只能被一个程序占用。
比如你已经开了一个Web服务占着80端口,再启动另一个网站程序,它就会报错“端口已被占用”。这时候要么关掉前面的,要么换别的端口,比如8080。
开发软件的时候经常遇到这问题,特别是本地调试多个项目时,得记得检查端口冲突。