优秀的编程知识分享平台

网站首页 > 技术文章 正文

IP 和端口之间的关系是什么?_ip地址和端口号合在一起

nanyue 2025-09-09 07:45:27 技术文章 2 ℃

IP地址和端口号共同构成了网络通信中的完整寻址,但你知道为什么有些IP通信可以省略端口号吗?

ip 地址用来标定主机,端口号用来标定进程,只有主机+进程,才是一次完整的寻址,适用于所有的 ip 通信。

tcp/ip 协议栈的某项协议,具体在主机上的时候是以进程的形式来运行,比如某些 Linux 支持多个 rdp 服务端,每一个 rdp 服务端都是一个单独的进程,所以有可能使用 3389、3390、3391 这样的端口号来进行标定不同的实例。

那位要说了,你说所有,那为什么有些 ip 通信就不用带端口号呢?

这是因为,有一部分协议使用了默认的端口号,客户端和服务端都遵循这样的原则,那就不用带端口号了,比如 HTTP 默认使用 80 端口,HTTPS 默认使用 443 端口,类似的还有 ftp、ssh、smb、dns、smtp、pop3 等等等等,还是挺多的。

但是你只要改变了某个协议的默认端口号,那在访问的时候,就必须带上端口号才行。比如很多 nas 的 web 管理界面,都是 5000 端口,那么你在浏览器访问的时候,就需要使用 HTTP://your-nas.com:5000 才可以访问,或者再使用反向代理,把 5000 端口反向到 80 上,那么又可以使用 HTTP://your-nas.com 来进行访问了。

主动权在服务端,也就是说,某个协议在服务端更改了默认的端口号,那么客户端访问的时候,就必须要使用服务端规定的端口号,才能进行访问。

端口号的范围是 0-65535,但是系统自带的服务,那些无论什么操作系统都支持的服务,一般都在 0-1023 之间,比如 ftp 的 21、ssh 的 22、dns 的 53、HTTP 的 80、HTTPS 的 443。而那些具体厂家的产品,端口号就要大一些,行业通行的规则是注册端口范围在 1024-49151 之间,比如 rdp 的 3389、MySQL 的 3306。而自建的服务,一般建议使用 49152-65535 之间。当然了规定是规定,实际使用的时候您随便用,只要和其他的进程不冲突就行了。

而 ip 地址的范围和端口号的范围,之间没有任何的关系,ipv4 和 ipv6 都有自己的规定,比如 ipv4 一般使用十进制表达,分为 4 段,每一段就是在 0-255 之间。而 ipv6 使用 16 进制表达,分为 8 段,每段从 0000-FFFF。

最近发表
标签列表