列出防火墙规则

在 Red Hat Enterprise Linux 中,可以使用 service 命令列出防火墙规则:

# service iptables status

或者使用 iptables 命令:

# iptables -xvn -L

从外部测试端口

telnet 应用程序可用于测试简单的网络套接字连接,但只能用于 TCP 连接,不能用于 UDP。
例如,如果我想查看系统上的 TCP 端口 80 是否准备好接受连接,我指定 IP 地址和 telnet 端口:

# telnet 192.168.1.55 80
Trying 192.168.1.55...
Connected to example.redhat.com (192.168.1.55).
Escape character is '^]'.

如果服务器没有监听响应是不同的:

# telnet 10.0.0.25 80
Trying 10.0.0.25...
telnet: connect to address 10.0.0.25: Connection refused
telnet: Unable to connect to remote host: Connection refused
  • 这表明连接被主动拒绝。 TCP 子系统收到数据包,检查它,发现它是一个在端口 80 上打开套接字的请求,看到没有进程准备接受连接并以拒绝作为响应。
  • 如果防火墙被配置为阻止或者过滤连接,telnet 将显示与上述非常相似的内容,即使有一个进程准备接受连接。
  • 如果防火墙配置为断开连接,我们将看不到任何响应,而 telnet 将超时:
# telnet 10.0.0.25 80
Trying 10.0.0.25...
telnet: connect to address 10.0.0.25: Connection timed out

1.使用netstat查看监听进程

要查看程序或者进程是否正在侦听端口,准备接受数据包,请使用 netstat 命令。

# netstat -tulnp

下面列出了 netstat 命令的参数:

  • t - 显示 TCP
  • u - 显示 UDP
  • l - 仅显示侦听进程(netstat 可以同时显示侦听和所有已建立的连接,例如:作为客户端)
  • n - 不解析网络 IP 地址名称或者端口号
  • p - 显示正在侦听端口的进程名称

例如 :

# netstat -tulnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      1254/rpcbind
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1484/sshd
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      1355/cupsd
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1562/master
tcp        0      0 0.0.0.0:44349               0.0.0.0:*                   LISTEN      1274/rpc.statd
udp        0      0 0.0.0.0:111                 0.0.0.0:*                               1254/rpcbind
udp        0      0 0.0.0.0:631                 0.0.0.0:*                               1355/cupsd
udp        0      0 0.0.0.0:44165               0.0.0.0:*                               1274/rpc.statd
udp        0      0 0.0.0.0:602                 0.0.0.0:*                               1274/rpc.statd
udp        0      0 0.0.0.0:1001                0.0.0.0:*                               1254/rpcbind
CentOS/RHEL:如何检查网络端口是否打开?

TCP/IP 网络连接可能被阻止、丢弃、打开或者过滤。
这些操作通常由系统使用的 IPtables 防火墙控制,并且独立于可能正在侦听网络端口的任何进程或者程序。
在防火墙之外,程序或者进程(服务器或者守护进程)可能正在侦听端口或者未侦听。
这可以使用 netstat 或者 ss 程序进行检查。
检查端口是否在防火墙处打开、阻止、丢弃或者过滤并不简单。

有两种方法可以做到这一点:

  • 外部测试端口
  • 列出防火墙配置并检查输出

2.使用ss查看监听进程

要查看程序或者进程是否正在侦听端口,准备接受数据包,请使用 ss 程序。

# ss -nutlp

下面列出了 ss 程序的参数:

  • t - 显示 TCP 套接字。
  • u - 显示 UDP 套接字。
  • l - 显示监听套接字
  • n - 现在尝试解析名称
  • p - 使用套接字显示进程

例如 :

# ss -nutlp
Netid State      Recv-Q Send-Q                                                        Local Address:Port                                                          Peer Address:Port
udp   UNCONN     0      0                                                                         *:111                                                                      *:*      users:(("rpcbind",1254,6))
udp   UNCONN     0      0                                                                         *:631                   ...
www. On IT Road .com

3.使用lsof查找开放端口

要列出系统上所有打开的端口,请使用以下命令列出已打开端口的进程名称和编号。

# lsof -i

这是一个示例输出:

# lsof -i
COMMAND    PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
rpcbind   1254     rpc    6u  IPv4  12592      0t0  UDP *:sunrpc
rpcbind   1254     rpc    7u  IPv4  12596      0t0  UDP *:1001
rpcbind   1254     rpc    8u  IPv4  12597      0t0  TCP *:sunrpc (LISTEN)
rpc.statd 1274 rpcuser    5r  IPv4  12784      0t0  UDP *:xmlrpc-beep
...
日期:2020-09-17 00:12:11 来源:oir作者:oir