您的位置:

CentOS7查看端口情况详解

一、CentOS7查看端口占用情况

CentOS7系统中,我们可以使用以下命令查看端口占用情况:

netstat -anp | grep LISTEN | grep -E "(tcp|udp)"

该命令的含义为:利用netstat命令显示所有网络连接情况,grep过滤出监听(LISTEN)状态的端口,并显示其进程ID(PID)和进程名。

例如:

$ netstat -anp | grep LISTEN | grep -E "(tcp|udp)"
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      914/sshd        
tcp6       0      0 :::22                   :::*                    LISTEN      914/sshd        
tcp6       0      0 :::80                   :::*                    LISTEN      1094/httpd      
tcp6       0      0 :::443                  :::*                    LISTEN      1094/httpd      
udp        0      0 0.0.0.0:68              0.0.0.0:*                           771/dhclient

上述输出结果的意思是:22端口(SSH)占用了进程ID为914sshd进程;80443端口占用了进程ID为1094httpd进程。

二、CentOS7查看端口状态

通过netstat命令,我们可以查看端口的监听状态,主要有以下几种:

  • LISTEN:正在等待传入连接请求;
  • ESTABLISHED:正常数据传输状态;
  • TIME_WAIT:连接成功关闭,等待套接字关闭的时间。

我们可以使用以下命令查看指定端口的状态:

netstat -anp | grep 端口号

例如,查看端口80的状态:

$ netstat -anp | grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      1094/httpd

上述输出结果中,LISTEN状态表示端口正在等待传入连接请求。

三、CentOS7查看端口号命令

我们可以使用以下命令查看已打开的端口号:

sudo firewall-cmd --list-ports     

例如:

$ sudo firewall-cmd --list-ports     
80/tcp

上述输出结果表示80端口已经打开。

四、CentOS7查看端口

除了使用netstat命令和firewall-cmd命令来查看端口,还可以使用nmap命令进行扫描。

使用以下命令进行扫描,查看目标服务器的端口情况:

nmap -sT -O localhost

上述命令中,-sT参数表示使用TCP进行扫描,-O参数表示识别目标操作系统。

例如,查看本地服务器的端口情况:

$ nmap -sT -O localhost
Starting Nmap 6.40 ( http://nmap.org ) at 2021-05-13 18:39 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000076s latency).
Not shown: 992 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
25/tcp   open  smtp
80/tcp   open  http
111/tcp  open  rpcbind
631/tcp  open  ipp
3306/tcp open  mysql
6081/tcp open  nqs
8000/tcp open  http-alt

Nmap done: 1 IP address (1 host up) scanned in 0.08 seconds

上述输出结果中,open状态表示相应的端口已经打开。

五、CentOS7怎么开启所有端口

默认情况下,CentOS7只开放了一些常见的端口,如果需要开放所有端口,则需要进行如下操作:

  1. 修改/etc/sysctl.conf文件,添加以下内容:
  2. net.ipv4.ip_local_port_range = 1024 65535
    net.ipv4.tcp_fin_timeout=30
    net.ipv4.tcp_keepalive_time=1200
    net.ipv4.tcp_syncookies=1
  3. 执行以下命令使更改生效:
  4. sysctl -p
    
  5. 添加相应的防火墙规则,开放所有端口:
  6. sudo firewall-cmd --zone=public --add-port=0-65535/tcp --permanent
    sudo firewall-cmd --reload
    

六、CentOS7打开防火墙

为了提高服务器的安全性,CentOS7系统默认启用了防火墙,如果需要打开防火墙,则可以使用以下命令:

sudo systemctl start firewalld

如果需要防火墙永久生效,则可以使用以下命令进行配置:

sudo systemctl enable firewalld

在防火墙开启的情况下,我们需要添加相应的端口规则才能访问对应的服务。

七、CentOS7查看端口进程

我们可以使用lsof命令查看指定端口的进程信息。

使用以下命令查看80端口的进程信息:

lsof -i :80

例如:

$ lsof -i :80
COMMAND  PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
httpd   1094   root    4u  IPv6  13791      0t0  TCP *:http (LISTEN)
httpd   1096 apache    4u  IPv6  13791      0t0  TCP *:http (LISTEN)
httpd   1097 apache    4u  IPv6  13791      0t0  TCP *:http (LISTEN)
httpd   1098 apache    4u  IPv6  13791      0t0  TCP *:http (LISTEN)
httpd   1099 apache    4u  IPv6  13791      0t0  TCP *:http (LISTEN)
httpd   1100 apache    4u  IPv6  13791      0t0  TCP *:http (LISTEN)

上述输出结果中,第二列为进程ID(PID),第三列为用户,第七列为端口信息。

八、CentOS7查看端口流量

我们可以使用iftop命令查看指定端口的流量情况。

使用以下命令查看80端口的流量情况:

sudo iftop -f "port 80"

例如:

$ sudo iftop -f "port 80"
interface: ens33
IP address: 192.168.38.128/24
MAC address: 00:0c:29:43:93:25 (VMware, Inc.)
Started at 2021-May-13 18:36:13 CST (0.0 s)
[...]
---------------------------------------------------------------------------------------------
 192.168.38.128        => 173.194.38.137         8.74Mb  10.3Mb  11.0Mb
                           <=                           0b      0b      0b
---------------------------------------------------------------------------------------------
   1 host(s) displayed.

上述输出结果中,第一列为源IP地址,第三列为目的IP地址,第四列为上传流量,第五列为下载流量。

九、CentOS7查看端口占用

我们还可以使用fuser命令查看指定端口的进程占用情况。

使用以下命令查看80端口的进程占用情况:

sudo fuser 80/tcp

例如:

$ sudo fuser 80/tcp
80/tcp: 1094

上述输出结果中,1094为进程ID。