前言
本文主要讲述Linux的端口管理,讲述的内容有:端口查看、端口开放以及端口关闭等。
一、端口查看
查看端口是否占用,是我们日常使用比较常见的操作,目前我所知道的有两种方式,一是使用lsof
命令,二是使用netstat
命令。
lsof
lsof
全称list open files
,即查看打开的文件(在Linux中,一切皆文件)
# 查看使用 -i 参数,后面接端口
$ lsof -i:33306
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
com.docker 582 yangan 14u IPv6 0xef9b768a7c1a1df1 0t0 TCP *:33306 (LISTEN)
COMMAND:进程的名称
PID:进程标识符
PPID:父进程标识符(需要指定-R参数)
USER:进程所有者
PGID:进程所属组
FD:文件描述符,应用程序通过文件描述符识别该文件。
TYPE:文件类型,如DIR、REG
DEVICE:指定磁盘的名称
SIZE:文件的大小
NODE:索引节点(文件在磁盘上的标识)
NAME:打开文件的确切名称
netstat
1.安装:
apt install net-tools
2.常用参数
-t : 指明显示TCP端口
-u : 指明显示UDP端口
-l : 仅显示监听套接字(LISTEN状态的套接字)
-p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序
-n : 不进行DNS解析
-a : 显示所有连接的端口
3.查看端口
$ netstat -an | grep 33306
tcp46 0 0 *.33306 *.* LISTEN
$ netstat -ant | grep 33306
tcp46 0 0 *.33306 *.* LISTEN
二、端口状态
在Linux中,端口都是有状态的,最常见的是LISTEN
状态,如上,其他的状态有:CLOSED、ESTABLISHED等,详情可以参考这篇文章
三、端口开放与关闭
每个应用程序运行时需要占用一个端口,同样的,外部访问时如果该端口不开放,我们是无法访问该应用的,开启端口由两种常见方式,一是使用ufw
,二是使用firewalld
。
firewalld
1.开放33306端口
$ sudo firewall-cmd --zone=public --add-port=33306/tcp --permanent
success
# 命令含义:
--zone # 作用域
--add-port=80/tcp # 添加端口,格式为:端口/通讯协议
--permanent # 永久生效,没有此参数重启后失效
2.刷新防火墙配置(开放端口需刷新配置才能生效)
$ sudo firewall-cmd --reload
Error: COMMAND_FAILED: '/usr/sbin/iptables-restore -w -n' failed: iptables-restore v1.8.2 (nf_tables):
line 4: RULE_REPLACE failed (No such file or directory): rule in chain INPUT
line 4: RULE_REPLACE failed (No such file or directory): rule in chain OUTPUT
# 上述报错的意思是“规则未能应用,这可能意味着您的配置中有无效规则”,可以通过设置 IndividualCalls=yes 解决
$ sudo vim /etc/firewalld/firewalld.conf
# 设置完需要重启
$ sudo systemctl restart firewalld
3.查看开放的端口
$ firewall-cmd --list-ports
33306/tcp
4.关闭特定的端口
$ firewall-cmd --zone=public --remove-port=33306/tcp --permanent
ufw
关于ufw的使用,可以查看此文章
写在最后
各位老板,创作不易,更需不断地磨练和总结,欢迎关注我,我是言淦,为你分享各种实用的编程知识与编程技巧,你们的点赞与关注是我前进和创作的最大动力!!
今天的文章No.14 Linux端口管理分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/18364.html