端口
端口是计算机和外部交互的出入口,可以分为物理端口和虚拟端口。
- 物理端口:USB、HDMI、DP、VGA、RJ45等。
- 虚拟端口:操作系统和外部交互的出入口。
端口的分类
Linux系统是一个超大号小区,可以支持0到65535个端口,这6万多个端口分为3类进行使用。
- 公认端口:1~1023,通常用于一些系统内置或知名程序的预留使用,如SSH服务的22端口,HTTPS服务的443端口,非特殊需要,不要占用这个范围的端口。
- 注册端口:1024~49151,通常可以随意使用,用于松散的绑定一些程序、服务。
- 动态端口:49152~65535,通常不会固定绑定程序,而是当程序对外进行网络链接时,用于临时使用。
IP与端口的关系
IP地址和端口号一起用于标识和寻址网络中的设备和应用程序。
在网络通信中,每个设备都有一个唯一的IP地址,用于在网络中定位设备。
而每个应用程序都可以通过不同的端口号与网络进行通信。
总之,IP只能确定计算机,通过端口才能锁定要交互的程序。
扫描端口命令
nmap命令
是一款开源的网络探测和安全审核的工具,它的设计目标是快速地扫描大型网络。
- 安装nmap:yum install nmap -y
语法:nmaap [选项] 目标
扫描选项
-
常用参数
-
-v:显示扫描过程。
-
-p:指定端口。
-
-A:全面系统检测,启用脚本检测,扫描等。
-
-sT:基本 TCP 扫描方式。这方式会在目标主机的日志中会记录大批的连接请求以及错误信息。
-
-sS:半开扫描 (half-open)。很少有系统能够把这记入系统日志。需要 root 权限。
-
-sF,-sX,-sN:秘密 FIN 数据包扫描、圣诞树 (Xmas Tree)、空 (Null) 扫描模式。
-
-O:启用远程操作系统检测,存在误报(-osscan-guess猜测最接近目标匹配操作系统类型)。
-
-iL:读取主机列表。
-
-sU:UDP 扫描,想知道在某台主机上提供哪些 UDP(用户数据报协议,RFC768) 服务,可用此选项。
-
-sA:ACK 扫描,这项高级的扫描方法通常可以用来穿过防火墙规则集。
-
-Pn:扫描之前不需要用ping命令,有些防火墙禁止ping命令,可以使用此选项。
-
-oN,-oX,-oG:将报告写入文件,分别是正常,XML,grepable三种格式。
-
-
Ping扫描
-
-sP:ping 扫描,用 ping 方式检查网络上哪些主机正在运行。
-
-PB:这是默认的 ping 扫描选项。它使用 ACK(-PT) 和 ICMP(-PI) 两种扫描类型并行扫描。如果防火墙能够过滤其中一种包,使用这种方法,你就能够穿过防火墙。
-
-P0:在扫描之前,不 ping 主机。
-
-PT:扫描之前,使用 TCP ping 确定哪些主机正在运行。
-
示例
-
简单扫描(只能扫描工具规定的一些常见端口)
netstat命令
用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
- 安装netstat:yum install net-tools -y
语法:netstat [-rgsM...]
命令选项
- -r:显示路由表信息。
- -g:显示多重广播功能群组组员名单。
- -s:按照每个协议来分类进行统计。默认的显示IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP和UDPv6 的统计信息。
- -M:显示网络内存的集群池统计信息。
- -v:命令显示每个运行中的基于公共数据链路接口的设备驱动程序的统计信息。
- -W:不截断IP地址。
- -n:进制使用域名解析功能。链接以数字形式展示(IP地址),而不是通过主机名或域名形式展示。
- -N:解析硬件名称。
- -e:显示额外信息。
- -p:与链接相关程序名和进程的PID。
- -t:所有的 tcp 协议的端口。
- -x:所有的 unix 协议的端口。
- -u:所有的 udp 协议的端口。
- -o:显示计时器。
- -c:每隔一个固定时间,执行netstat命令。
- -l:显示所有监听的端口。
- -a:显示所有链接和监听端口。
- -F:显示转发信息库(默认)。
- -C:显示路由缓存而不是FIB。
- -Z:显示套接字的SELinux安全上下文。
示例
-
输入 netstat 命令后
状态分为
- LISTENING:FTP服务启动后首先处于监听状态。
- ESTABLISHED:建立连接,表示两台机器正在通信。
- CLOSE_WAIT:对方主动关闭连接或者网络异常导致连接中断,此时我方要调用close()来使得连接正确关闭。
- TIME_WAIT:我方主动调用close()断开连接。
- SYN_SENT:请求连接,此时状态为SYN_SENT,如果连接成功了就变为ESTABLISHED。
-
netstat -anp:显示系统端口使用情况
-
netstat -nupl:UDP类型的端口
-
netstat -ntpl:TCP类型的端口
-
netstat -l:只显示所有监听端口
-
netstat -lt:只显示所有监听tcp端口