主流Linux发行版端口管理方法汇总

使用云服务器的时候经常遇到的几个问题,端口被占用,端口打不开。在这里汇总一下一些主流的Linux发行版管理端口的指令

检查Linux端口使用情况

为了保护服务器的安全,确认哪些端口正在侦听服务器的网络接口很重要。平时我们排查程序运行问题,也可以从端口占用方面出发,最常见的就是当你服务器装了Apache的情况下会启动不了Nginx,因为两个应用默认都会占用80端口。
nginx无法启动
这时候我们可以想办法查找到占用端口的程序并使用kill关闭

kill -9 processID

那么这里我会提供了使用netstat,nmap和lsof命令检查正在使用的端口并查看正在使用该端口的应用程序的步骤

sudo lsof -i -P -n | grep LISTEN
sudo netstat -tulpn | grep LISTEN
sudo lsof -i:22 ## see a specific port such as 22 ##
sudo nmap -sTU -O IP-address-Here

lsof

sudo lsof -i -P -n | grep LISTEN

在这里插入图片描述
如若Ubuntu提示未找到此命令请使用 apt-get install下载,其余系统同理
如果想使用别的筛选信息请参考grep语法

参照第一行

systemd-r   581 systemd-resolve   13u  IPv4   17594      0t0  TCP 127.0.0.53:53 (LISTEN)
  • systemd-r是应用程序名
  • 127.0.0.53 是应用程序绑定的IP地址
  • 53 是绑定的本地端口号
  • 17594 是systemd-r进程的进程ID(关闭进程时使用)

netstat

netstat -tulpn | grep LISTEN

在这里插入图片描述

ss

一些Linux发行版认为nestat命令已被弃用,因此应逐步淘汰它,以便使用更现代的替代方法,例如ss命令。语法为:

sudo ss -tulw
sudo ss -tulwn
  • -t :仅在Linux上显示TCP套接字
  • -u :仅在Linux上显示UDP套接字
  • -l:显示监听套接字。例如,SSHD服务器打开TCP端口22。
  • -p :列出打开套接字的进程名称
  • -n :不解析服务名称,即不使用DNS
    在这里插入图片描述

nmap

sudo nmap -sT -O localhost 

在这里插入图片描述查看在localhost上运行的软件

防火墙打开端口

有时候我们明明在云服务器上运行了某个程序,但是并不能通过公网IP访问(这里再次以搭建网站为例),我们明明已经运行了Nginx,但是为什么访问不了了?这时候要考虑两方面,一是云服务器商那里设置安全组,另一个就是打开让系统本身的防火墙放行,这里将简单介绍关于Centos,Ubuntu,Debin系统的防火墙管理

CentOS 7.x

列出当前打开的端口
firewall-cmd --list-ports
打开80端口进行tcp通信
firewall-cmd --add-port 1191/tcp
永久允许80端口进行tcp通信
firewall-cmd --permanent --add-port 80tcp
打开一定范围的端口
firewall-cmd --permanent --add-port 60000-61000/tcp
停止和启动防火墙
systemctl stop firewalld Copiar
systemctl start firewalld

Ubuntu和Debian

打开端口80进行TCP通信
sudo ufw allow 80/tcp
打开一系列端口
sudo ufw allow 60000:61000/tcp
停止和启动防火墙(UFW)
sudo ufw disable Copiar
sudo ufw enable
原创文章 5 获赞 5 访问量 4076

猜你喜欢

转载自blog.csdn.net/qq_40732093/article/details/106155758