计算机网络端口详细介绍

发布于 2020-02-05  223 次阅读


计算机网络端口详细介绍

端口概念

在网络技术中,端口(port)大致有两种意思:
一是物理上的端口,比如 ADSL、Modem、集线器、交换机、路由器用于连接其他网络设备的接口,如 RJ-45 端口、SC 端口等等。
二是逻辑意义上的端口,一般是指 TCP/IP 协议中的端口,端口号的范围从 0 到 65535,比如用于浏览网页服务的 80 端口,用于 FTP 服务的 21 端口等等。
这里要说的是逻辑意义上的端口。

什么是端口

在 Internet 上,各主机间通过 TCP/TP 协议发送和接收数据报,各个数据报根据其目的主机的 IP 地址来进行互联网络中的路由选择。可见,把数据报顺利的传送到目的主机是没有问题的。我们知道大多数操作系统都支持多程序(进程)同时运行,那么目的主机应该把接收到的数据报传送给众多同时运行的进程中的哪一个?显然这个问题有待解决,端口机制便由此被引入了进来。

本地操作系统会给那些有需求的进程分配协议端口(protocal port,即我们常说的端口),每个协议端口由一个正整数标识,如:80,139 等等。当目的主机接收到数据报后,将根据报文首部的目的端口号,把数据发送到相应端口,而与此端口相对应的那个进程将会领取数据并等待下一组数据的到来。

端口其实就是队,操作系统为各个进程分配了不同的队,数据报按照目的端口被推入相应的队中,等待被进程取用,在极特殊的情况下,这个队也是有可能溢出的,不过操作系统允许各进程指定和调整自己的队的大小。不光接受数据报的进程需要开启它自己的端口,发送数据报的进程也需要开启端口,这样,数据报中将会标识有源端口,以便接受方能顺利的回传数据报到这个端口。

端口的作用

我们知道,一台拥有 IP 地址的主机可以提供许多服务,比如 Web 服务,FTP 服务、SMTP 服务等,这些服务完全可以通过 1 个 IP 地址来实现。那么,主机是怎样区分不同的网络服务呢?显然不能只靠 IP 地址,因为 IP 地址与网络服务的关系是一对多的关系。实际上是通过 "IP 地址 + 端口号" 来区分不同的服务的。
客户端通常对它所使用的端口号并不关心,只需保证该端口号在本机上是唯一的就可以了。客户端端口号又称作临时端口号(即存在时间很短)。这是因为它通常只是在用户运行该客户程序时才存在,而服务器则只要主机开着,其服务就运行。

查看端口

可以使用 Netstat 命令:开始 -> 运行,键入 "cmd" 并回车,打开命令提示符窗口。在命令提示符状态下键入 "netstat -a -n",按下回车键后就可以看到以数字形式显示的 TCP 和 UDP 连接的端口号及状态。

image.png

关闭 / 开启端口

默认的情况下,有很多不安全的或者没有什么用的端口是开启的,比如 Telent 服务的 23 端口、FTP 服务的 21 端口、SMTP 服务的 25 端口、RPC 服务的 135 端口等。为了保证系统的安全性,我们可以通过下面的方法来关闭 / 开启端口。

关闭端口

比如关闭 Apache2.4 服务端口,可以这样做:开始 -> 运行 -> 服务 -> 在服务窗口找到 Apache2.4 并双击 -> 单击 "停止" 按钮来停止该服务 -> 然后在 "启动类型" 中选择 "禁用"-> 最后单击 "确定" 按钮即可。关闭了 Apache2.4 服务就相当于关闭了对应的端口。

image.png

开启端口

如果要开启该端口只要先在 "启动类型" 选择 "自动",单击 "确定" 按钮,再打开该服务,在 "服务状态中单击" 启动 "按钮即可启用该端口,最后,单击" 确定 " 按钮即可。

端口分类

逻辑意义上的端口有多种分类标准,下面是两种常见的分类:

1. 按端口号分布划分
(1)知名端口(Well-Known Ports)

知名端口即众所周知的端口号,范围从 0 到 1023,这些端口号一般固定分配给一些服务。比如 25 端口分配给 SMTP(简单邮件传输协议)服务,80 端口分配给 HTTP 服务,135 端口分配给 RPC(远程过程调用)服务等等。

(2)动态端口(Dynamic Ports)

动态端口的范围从 1024 到 65535,这些端口号一般不固定分配给某个服务,也就是说许多服务都可以使用这些端口。只要运行的程序向系统提出访问网络的申请,那么系统就可以从这些端口号中分配一个供该程序使用。比如 1024 端口就是分配给第一个向系统发出申请的程序。在关闭程序进程后,就会释放所占用的端口号。
不过动态端口也常常被病毒木马程序所利用,如冰河默认连接端口是 7626、WAY 2.4 是 8011、Netspy 3.0 是 7306、YAI 病毒是 1024 等等。

2. 按协议类型划分

按协议类型划分,可以分为 TCP、UDP、IP 和 ICMP(Internet 控制消息协议)等端口。

(1)TCP 端口

TCP 端口,即传输控制协议端口,需要在客户端和服务器之间建立连接,这样可以提供可靠的数据传输。常见的包括 FTP 服务的 21 端口,Telent 服务的 23 端口,SMTP 服务的 25 端口,以及 HTTP 服务的 80 端口等。

(2)UDP 端口

UDP 端口,即用户数据包协议端口,无需在客户端和服务器之间建立连接,安全性得不到保障。常见的有 DNS 服务的 53 端口,SNMP(简单网络管理协议)服务的 161 端口,QQ 使用的 8000 和 4000 端口等等。

端口在入侵中的作用

有人曾经把服务器比作房子,而把端口比作通向不同房间(服务)的门。入侵者要占领这间房子,势必要破门而入(物理入侵另说),那么对于入侵者来说,了解房子开了几扇门,都是什么样的门,门后面有什么东西就显得至关重要。
入侵者通常会用扫描器对目标主机的端口进行扫描,以确定哪些端口是开放的,从开放的端口,入侵者可以知道目标主机大致提供了哪些服务,进而猜测可能存在的漏洞,因此对端口的扫描可以帮助我们更好的了解目标主机,而对于管理员,扫描本机的开放端口也是做好安全防范的第一步。

常见端口表汇总

1 tcpmux TCP Port Service Multiplexer 传输控制协议端口服务多路开关选择器
2 compressnet Management Utility     compressnet 管理实用程序
3 compressnet Compression Process    压缩进程
5 rje Remote Job Entry          远程作业登录
7 echo Echo               回显
9 discard Discard            丢弃
11 systat Active Users          在线用户
13 daytime Daytime            时间
17 qotd Quote of the Day         每日引用
18 msp Message Send Protocol       消息发送协议
19 chargen Character Generator      字符发生器
20 ftp-data File Transfer [Default Data] 文件传输协议 (默认数据口) 
21 ftp File Transfer [Control]      文件传输协议 (控制)
22 ssh SSH Remote Login Protocol     SSH 远程登录协议
23 telnet Telnet             终端仿真协议
24 ? any private mail system       预留给个人用邮件系统
25 smtp Simple Mail Transfer       简单邮件发送协议
27 nsw-fe NSW User System FE       NSW 用户系统现场工程师
29 msg-icp MSG ICP            MSG ICP
31 msg-auth MSG Authentication      MSG 验证
33 dsp Display Support Protocol     显示支持协议
35 ? any private printer server     预留给个人打印机服务
37 time Time               时间
38 rap Route Access Protocol       路由访问协议
39 rlp Resource Location Protocol    资源定位协议
41 graphics Graphics           图形
42 nameserver WINS Host Name Server   WINS 主机名服务
43 nicname Who Is            "绰号" who is 服务
44 mpm-flags MPM FLAGS Protocol     MPM(消息处理模块) 标志协议
45 mpm Message Processing Module [recv] 消息处理模块 
46 mpm-snd MPM [default send]      消息处理模块 (默认发送口)
47 ni-ftp NI FTP             NI FTP
48 auditd Digital Audit Daemon      数码音频后台服务 
49 tacacs Login Host Protocol (TACACS)  TACACS 登录主机协议
50 re-mail-ck Remote Mail Checking Protocol 远程邮件检查协议
51 la-maint IMP Logical Address Maintenance IMP(接口信息处理机) 逻辑地址维

52 xns-time XNS Time Protocol      施乐网络服务系统时间协议  
53 domain Domain Name Server       域名服务器
54 xns-ch XNS Clearinghouse       施乐网络服务系统票据交换
55 isi-gl ISI Graphics Language     ISI 图形语言
56 xns-auth XNS Authentication      施乐网络服务系统验证
57 ? any private terminal access     预留个人用终端访问
58 xns-mail XNS Mail           施乐网络服务系统邮件
59 ? any private file service      预留个人文件服务
60 ? Unassigned             未定义
61 ni-mail NI MAIL            NI 邮件?
62 acas ACA Services           异步通讯适配器服务
63 whois+ whois+              WHOIS+
64 covia Communications Integrator (CI) 通讯接口 
65 tacacs-ds TACACS-Database Service   TACACS 数据库服务
66 sql_net Oracle SQL_NET        Oracle SQL*NET
67 bootps Bootstrap Protocol Server   引导程序协议服务端
68 bootpc Bootstrap Protocol Client   引导程序协议客户端
69 tftp Trivial File Transfer      小型文件传输协议
70 gopher Gopher             信息检索协议
71 netrjs-1 Remote Job Service      远程作业服务
72 netrjs-2 Remote Job Service      远程作业服务
73 netrjs-3 Remote Job Service      远程作业服务
74 netrjs-4 Remote Job Service      远程作业服务
75 ? any private dial out service    预留给个人拨出服务
76 deos Distributed External Object Store 分布式外部对象存储 
77 ? any private RJE service      预留给个人远程作业输入服务
78 vettcp vettcp             修正 TCP?
79 finger Finger             FINGER(查询远程主机在线用户等信
息)
80 http World Wide Web HTTP       全球信息网超文本传输协议
81 hosts2-ns HOSTS2 Name Server     HOST2 名称服务
82 xfer XFER Utility           传输实用程序
83 mit-ml-dev MIT ML Device       模块化智能终端 ML 设备
84 ctf Common Trace Facility       公用追踪设备
85 mit-ml-dev MIT ML Device       模块化智能终端 ML 设备
86 mfcobol Micro Focus Cobol       Micro Focus Cobol 编程语言
87 ? any private terminal link      预留给个人终端连接
88 kerberos Kerberos           Kerberros 安全认证系统
89 su-mit-tg SU/MIT Telnet Gateway    SU/MIT 终端仿真网关
90 dnsix DNSIX Securit Attribute Token Map DNSIX 安全属性标记图 
91 mit-dov MIT Dover Spooler       MIT Dover 假脱机
92 npp Network Printing Protocol     网络打印协议
93 dcp Device Control Protocol      设备控制协议
94 objcall Tivoli Object Dispatcher   Tivoli 对象调度
95 supdup SUPDUP            
96 dixie DIXIE Protocol Specification  DIXIE 协议规范
97 swift-rvf Swift Remote Virtural File Protocol 快速远程虚拟文件协议 
98 tacnews TAC News           TAC(东京大学自动计算机?) 新闻协议


或许明日太阳西下倦鸟已归时