端口,是设备与外界通讯交流的出入口。端口可以分为:物理端口和虚拟端口两类。
物理端口:又可称之为接口,是可见的端口,如USB接口,RJ45网口,HDMI端口等。
虚拟端口:是指计算机内部的端口,是不可见的,是用来操作系统和外部进行交互使用的。
计算机程序之间的通讯,通过IP只能锁定计算机,但是无法锁定具体的程序。
通过端口可以锁定计算机上具体的程序,确保程序之间进行沟通。
IP地址相当于小区地址,在小区内可以有许多住户(程序),而门牌号(端口)就是各个住户(程
序)的联系地址。
Linux系统是一个超大号小区,可以支持65535个端口,这6万多个端口分为3类进行使用:
公认端口:1~1023,通常用于一些系统内置或知名程序的预留使用,如SSH服务的22端口,
HTTPS服务的443端口,非特殊需要,不要占用这个范围的端口。
注册端口:1024~49151,通常可以随意使用,用于松散的绑定一些程序\服务。
动态端口:49152~65535,通常不会固定绑定程序,而是当程序对外进行网络链接时,用于临时
使用。
如图中,计算机A的微信连接计算机B的微信,A使用的50001即动态端口,临时找一个端口作为出
口,计算机B的微信使用端口5678,即注册端口,长期绑定此端口等待别人连接。
可以通过nmap命令去查看端口的占用情况:
使用nmap命令,安装nmap:yum -y install nmap;
语法:nmap 被查看的IP地址
[root@localhost ~]# nmap 127.0.0.1
Starting Nmap 6.40 ( http://nmap.org) at 2023-06-10 15:36 CST Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000030s latency).
Not shown: 995 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
111/tcp open rpcbind
631/tcp open ipp
6000/tcp open X11
Nmap done: 1 IP address (1 host up) scanned in 0.03 seconds
22端口,一般是SSH服务使用,即FinalShell远程连接Linux所使用的端口.
也可以通过netstat命令,查看指定端口的占用情况:
语法:netstat -anp | grep 端口号,安装netstat:yum -y install net-tools
[root@localhost ~]# netstat -anp | grep 6000
tcp 0 0 0.0.0.0:6000 0.0.0.0:* LISTEN 7174/X
tcp6 0 0 : : : 6000 : : : * LISTEN 7174/X
0.0.0.0:6000,表示端口绑定在0.0.0.0这个IP地址上,表示允许外部访问.
可以通过ps命令查看Linux系统中的进程信息:
语法: ps [选项]
选项包括:
-f,以完全格式化的形式展示信息(展示全部信息)
ps 命令的部分选项不能加入"-",比如命令"ps aux",其中"aux"是选项,但是前面不能带“-”。
一般来说,固定用法就是: ps -ef 列出全部进程的全部信息
[shaonian@localhost ~]$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 11:56 ? 00:00:01 /usr/lib/syste
root 2 0 0 11:56 ? 00:00:00 [kthreadd]
root 3 2 0 11:56 ? 00:00:03 [ksoftirqd/0]
root 5 2 0 11:56 ? 00:00:00 [kworker/0:0H]
也可以使用管道符配合grep来进行过滤,如:
ps -ef | grep tail,即可准确的找到tail命令的信息
过滤不仅仅过滤名称,进程号,用户ID等等,都可以被grep过滤,如:
ps -ef | grep 30001,过滤带有30001关键字的进程信息(一般指代过滤30001进程号)
在Windows系统中,可以通过任务管理器选择进程后,点击结束进程从而关闭它。
同样,在Linux中,可以通过kill命令关闭进程。
语法:kill [选项/信号] 进程ID
信号包括:
选项:-9,表示强制关闭进程。不使用此选项会向进程发送信号要求其关闭,但是否关闭看进程自
身的处理机制。
[shaonian@localhost ~]# ps -ef | grep tail
shaonian 2339 8021 0 19:00 pts/0 00:00:00 tail
shaonian 2659 46758 0 19:00 pts/2 00:00:00 grep --color=auto tail [shaonian@localhost ~]# kill -9 2339
在FinalShell中,执行命令:tail,可以看到,此命令一直阻塞在那里.