打印
[应用相关]

Linux端口状态查看、启用和关闭

[复制链接]
292|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
两只袜子|  楼主 | 2022-12-9 09:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

最近的项目中用到server端和client端通信交互,当我在server端绑定80端口后运行时,提示"Address already in use"而直接退出服务了,后来查到是该80端口已经默认被HTTP服务占用了,我的程序无法复用导致出错。折腾了两天后发现关掉HTTP服务后果断运行成功。关于端口复用的知识还在学习中,现在把Linux系统中查看和管理服务端口做一个简单的小结,就当是一次积累。


查阅了相关资料,发现Linux下面貌似没有什么直接开启或者关闭端口的命令,若仅仅只是开启了端口而不把它与进程相联系,则端口的开启与关闭毫无意义(开了端口却没有程序处理进来的数据)。系统服务中,端口不是独立存在的,它是依附于进程的。某个进程开启,那么它对应的端口就开启了,进程关闭,则该端口也就关闭了。下次若某个进程再次开启,则相应的端口也再次开启。所以,不要纯粹的认为你要去关闭掉某个端口了。但是,禁用某个端口是可行的。因为,Linux里面端口的活动与进程是紧密相连的,如果想要关闭某个端口,那么只要kill掉与它对应的进程就可以了。

1.     可以通过"netstat -anp" 来查看哪些端口被打开。

说明:

# -a显示所有活动的TCP连接,以及正在监听的TCP和UDP端口

# -n以数字形式表示地址和端口号,不试图去解析其名称(number),参数'-n'会将应用程序转为端口显示,即数字格式的地址,如:nfs->2049,ftp->21

# -p列出与端口监听或连接相关的进程(有个地方需要注意,下面会提到)(pid)

注意:

“-p”选项存在权限问题,如果在普通用户登录的shell里面执行netstat命令,那么只能列出拥有该普通用户权限的相关进程,如果想要看到所有的端口情况,最好还是切到root用户进行操作。

然后可以通过"lsof-i:$PORT"查看应用该端口的程序($PORT指对应的端口号)。或者你也可以查看文件/etc/services,从里面可以找出端口所对应的服务(可通过"chkconfig"查看系统服务的开启状态)。

2.     (注:有些端口通过netstat查不出来,更可靠的方法是"sudo nmap -sT -O localhost")

3.     若要关闭某个端口,则有以下两种方法:

1)通过iptables工具将该端口禁掉,如:

"sudo iptables -A INPUT -p tcp --dport $PORT -j DROP"

"sudo iptables -A OUTPUT -p tcp --dport $PORT -j DROP"

2)关掉对应的应用程序,则端口就自然关闭了,命令如下如:

"kill -9 PID" (PID:进程号)

如:通过"netstat -anp | grep ssh"

有显示: tcp 0 127.0.0.1:2121 0.0.0.0:*LISTEN 7546/ssh

则: "kill -9 7546"退出进程ssh.

例如要关闭22号端口:

$ netstat -anp | grep :22

tcp 0  0 0.0.0.0:22    0.0.0.0:*  LISTEN  988/sshd

如此,知道了22号端口对应的进程ID 988,只要kill掉该进程即可关闭该端口:

$ kill 988

4.     Netstat常用选项介绍:

netstat –tn——列出所有TCP协议的连接状态

# -t只显示与TCP协议相关的连接和端口监听状态,注意和-a有区别(tcp)

netstat –tuln ——列出所有inet地址类的端口监听状态

netstat –s ——本选项能够按照各个协议分别显示其统计数据。如果你的应用程序(如Web浏览器)运行速度比较慢,或者不能显示Web页之类的数据,那么你就可以用本选项来查看一下所显示的信息。你需要仔细查看统计数据的各行,找到出错的关键字,进而确定问题所在。

netstat –e ——本选项用于显示关于以太网的统计数据。它列出的项目包括传送的数据报的总字节数、错误数、删除数、数据报的数量和广播的数量。这些统计数据既有发送的数据报数量,也有接收的数据报数量。这个选项可以用来统计一些基本的网络流量。

netstat –r ——本选项可以显示关于路由表的信息,类似于后面所讲使用route print命令时看到的信息。除了显示有效路由外,还显示当前有效的连接。

netstat –a——本选项显示一个所有的有效连接信息列表,包括已建立的连接(ESTABLISHED),也包括监听连接请求(LISTENING)的那些连接,断开连接(CLOSE_WAIT)或者处于联机等待状态的(TIME_WAIT)等

netstat –n ——显示所有已建立的有效连接。


使用特权

评论回复
沙发
Pulitzer| | 2024-11-1 07:14 | 只看该作者

减小检测部分与电压误差或电流放大器敏感的输入端之间的连接而引入的噪声

使用特权

评论回复
板凳
童雨竹| | 2024-11-1 09:10 | 只看该作者

引线越长,它能接收和传送的干扰信号频率就越低

使用特权

评论回复
地板
Wordsworth| | 2024-11-1 10:13 | 只看该作者

输入电压端上测得的值比它实际

使用特权

评论回复
5
公羊子丹| | 2024-11-1 12:09 | 只看该作者

引线的长和宽影响它的电阻和电感量

使用特权

评论回复
6
万图| | 2024-11-1 13:12 | 只看该作者

它们的放置要尽可能靠近

使用特权

评论回复
7
Uriah| | 2024-11-1 14:15 | 只看该作者

大地的地会通过散热器(用绝缘体与漏极隔开)从这些节点获取能量

使用特权

评论回复
8
帛灿灿| | 2024-11-1 16:11 | 只看该作者

输入电源电流环路

使用特权

评论回复
9
Bblythe| | 2024-11-1 17:14 | 只看该作者

交流节点会引起特有的问题

使用特权

评论回复
10
周半梅| | 2024-11-1 19:10 | 只看该作者

输入和输出电流环路连接的位置只能是相应的输入 输出电容的接线端

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2038

主题

7366

帖子

10

粉丝