一、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为914
的sshd
进程;80
和443
端口占用了进程ID为1094
的httpd
进程。
二、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只开放了一些常见的端口,如果需要开放所有端口,则需要进行如下操作:
- 修改
/etc/sysctl.conf
文件,添加以下内容: - 执行以下命令使更改生效:
- 添加相应的防火墙规则,开放所有端口:
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
sysctl -p
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。