Linux中常见的网络端口和常用端口号
简介
在使用计算机或智能手机时,我们使用各种硬件端口,如用于音频、HDMI、Type-c 等的 3.5mm 端口,其用于与硬件外围设备通信。
同样,网络端口可以让我们在一台计算机上访问各种网络服务来达到通信的目的。因此,端口被认为是计算机网络中最基本、最基础的概念。
本文我们将介绍一些网络端口的基础知识、端口的范围以及一些最常见的端口。
什么是网络端口(Network Port)
在以前人们习惯用写信的方式交流的时候,如果想要收到别人发给你的信件,首先你需要有一个收信地址,这是一个必要条件。
在现在,信件可以被视为你需要接收的应用程序数据,而收信地址就是应用程序的端口号。这就是端口号的一个基本功能。
那么,我们的计算机应该不会只使用一个应用程序服务,在计算机后台会同时运行多个服务,因此我们需要使用多个端口号。现实中,端口号的范围是从 0 到 65535。
这些端口号,根据用途可分为三个类别(范围):
- 系统端口(0 - 1023):这些端口是众所周知的端口,由IANA(互联网数字分配机构,Internet Assigned Numbers Authority)分配给特定服务;
- 注册端口(1023 - 49151):这些端口被称为用户端口,可用于注册IANA。注册是为了避免端口冲突;
- 动态端口(49152-65535):动态端口可以分配给服务一段时间,主要由客户端程序使用。
普通端口
默认非安全端口列表,建议尽量避免以下端口:
port的取值范围是 0 - 65535(即2的16次方),0到1024是众所周知的端口,linux临时端口号范围是(32768,61000),
1.显示当前临时端口的范围:
一般情形下:linux临时端口号范围是(32768,61000)
sysctl net.ipv4.ip_local_port_range
或 cat /proc/sys/net/ipv4/ip_local_port_range
1 2 3 4 5 | [root@lhr ~]# cat /proc/sys/net/ipv4/ip_local_port_range 32768 60999 [root@lhr ~]# sysctl net.ipv4.ip_local_port_range net.ipv4.ip_local_port_range = 32768 60999 [root@lhr ~]# |
2.暂时性修改临时端口的范围:
1 | echo 1024 65535 > /proc/sys/net/ipv4/ip_local_port_range |
注意以上命令是在root用户时执行的!!
或者 sudo sysctl -w net.ipv4.ip_local_port_range="1024 64000"
3.永久性修改
修改文件 /etc/sysctl.conf
键入如下语句:
net.ipv4.ip_local_port_range = 1024 65535
传输协议
传输协议,最基本的理解是,它负责建立连接,并确保数据传输无误。
通常,我们使用两种类型的协议:TCP 和 UDP
TCP
它代表传输控制协议,是面向连接的协议,这意味着一旦使用它建立了连接,数据就可以实现双向传输。
TCP有一个内置机制,可以保证无错误地传递数据。这使得它非常适合发送图像、数据、网页、视频等。
UDP
它代表用户数据报协议,与TCP相比更简单,不包括错误检查和恢复服务。
它比TCP更快,不适合发送图像、视频等数据,是广播式传输,主要用于视频会议、流媒体、DNS、VoIP等。
常用网络端口
下面我们列一下在默认情况下,最常用的几个端口。
FTP - 21
端口 21 用于FTP(文件传输协议),其主要用途是在客户端和服务器之间交换文件。