端口相关操作

文章介绍了端口的概念,包括其作为设备通信出口的作用,端口的类型如硬件端口和网络端口,以及端口号的三种划分。此外,还详细阐述了端口操作,如查询端口进程、开放或关闭端口的命令,以及如何解决端口冲突。重点讨论了端口在服务识别和网络通信中的重要性。
摘要由CSDN通过智能技术生成


一、端口

1、什么是端口

端口(port),可以认为是设备与外界通讯交流的出口。端口可分为虚拟端口和物理端口,其中虚拟端口指计算机内部或交换机路由器内的端口,不可见。

端口是指接口电路中的一些寄存器,这些寄存器分别用来存放数据信息、控制信息和状态信息,相应的端口分别称为数据端口、控制端口和状态端口。

电脑运行的系统程序,其实就像一个闭合的圆圈,但是电脑是为人服务的,他需要接受一些指令,并且要按照指令调整系统功能来工作,于是系统程序设计者,就把这个圆圈截成好多段,这些线段接口就叫端口(通俗讲是断口,就是中断),系统运行到这些端口时,一看端口是否打开或关闭,如果关闭,就是绳子接通了,系统往下运行,如果端口是打开的,系统就得到命令,有外部数据输入,接受外部数据并执行。

2、为什么需要端口

那为什么一定要端口这个东西呢? 它到底起了什么作用, 想必大家都想了解, 下面就来说说为什么。

你在浏览器地址栏输入某个网站的域名, 然后回车, 就生成了一次请求, 然后服务器响应你的请求, 浏览器再把结果渲染出来, 你就能最终看到到一个网页.我们可以通过ping域名得到ip地址。有了ip地址自然可以找到主机,但是还有一个问题,主机上运行着很多进程。如果请求只有ip地址这一信息,操作系统将不知道把这个请求交给哪个进城去处理。
那么,所谓的端口,其实可以简单地视作为进程ID,但是为什么区分端口号和进程ID呢?有以下原因,首先作为客户端无法知道服务端对应的进程ID,其次服务端对应的进程ID重启后会改变,并且每个网站的进程ID都不同。

在没有引入端口之前,客户端要与服务端通讯, 就要知道服务端对应进程的 ID, 也即是客户端是依赖于服务端的,显然这种模式是不合适的,而引入端口作为间接层,服务端与客户端的依赖关系反转,客户端把请求发送到对应端口,要求服务端来适应,变成了一种反向依赖。

二、端口类型

1、硬件端口

CPU通过接口寄存器或特定电路与外设进行数据传送,这些寄存器或特定电路称之为端口。其中硬件领域的端口又称接口,如:并行端口、串行端口等。

2、网络端口

在网络技术中,端口有好几种意思,集线器、交换机、路由器的端口指的是连接其他网络设备的接口,如RJ-45端口、Serial端口等。我这里所指的端口不是指物理意义上的端口,而是特指TCP/IP协议中的端口,是逻辑意义上的端口。

三、端口号划分

1、周知端口(Well Know Ports)

周知端口是众所周知的端口号,范围从0到1023,它们紧密绑定于一些服务,通常这些端口的通讯明确表明了某种服务的协议。
例如:80端口实际上总是HTTP通讯。

2、注册端口(Registered Ports)

从1024到49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。
例如:mysql的3306、redis的6379、tomcat的8080、mongo的27017等等。

3、动态/私有端口(Dynamicand or PrivatePorts)

动态端口的范围是从49152到65535。之所以称为动态端口,是因为它一般不固定分配某种服务,而是动态分配或者是由开发者自行配置。

系统管理员可以"重定向"端口:一种常见的技术是把一个端口重定向到另一个地址。实现重定向是为了隐藏公认的默认端口,降低受破坏率。

四、端口操作

1、查询端口进程

首先安装依赖程序:yum -y install net-tools

netstat -anp                   (查看哪些端口被打开)
netstat -ntlp.                 (查看哪些tcp端口被打开)
netstat -ntulp |grep xxxx       (查看指定端口使用情况)

在这里插入图片描述
查询内容:Local、Address、Foreign、State、Program name
Local:访问端口的方式
Address:端口号
Foregin Address:对外开放,一般使用0.0.0.0:*
State:端口状态LISTEN(监听)、ESTABLISHED(建立连接)、CLOSE_WAIT(对方主动关闭连接)、TIME_WAIT(我方通过调用close()关闭连接)。
Program name:此端口是哪个程序在使用,程序挂载此端口

lsof -i:端口号 用于查看某一端口的占用情况

在这里插入图片描述
查寻内容:Command、PID、User、FD、Type、Device、Size、Node、Name
Command:进程的名称
PID:进程标识符
USER:进程所有者
FD:文件描述符,应用程序通过文件描述符识别文件。如txt等。
TYPE:文件类型。
DEVICE:指定磁盘的名称。
SIZE:文件的大小。
NODE:索引节点(文件在磁盘上的标示)
NAME:打开文件的确切名称。

2、开放关闭端口

# 永久的开放需要的端口
firewall-cmd --zone=public --add-port=端口号/tcp --permanent
firewall-cmd --reload

# 永久关闭某端口
firewall-cmd --remove-port=端口号/tcp --permanent

3、防火墙相关命令

1:查看防火状态
systemctl status firewalld
service  iptables status

2:暂时关闭防火墙
systemctl stop firewalld
service  iptables stop

3:永久关闭防火墙
systemctl disable firewalld
chkconfig iptables off

4:重启防火墙
systemctl enable firewalld
service iptables restart  

5:永久关闭后重启
chkconfig iptables on

4、解决端口冲突

netstat -ano|findstr xxxx(冲突端口号)

在这里插入图片描述

 tasklist|findstr "10744"

在这里插入图片描述

 taskkill /f /t /im node.exe

在这里插入图片描述


文章参考:https://zhuanlan.zhihu.com/p/225777212

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值