首页>文档>网络>Debian 如何查看开启端口 命令

此组别内的文章

需要支持?

如果通过文档没办法解决您的问题,请提交工单获取我们的支持!

Debian 如何查看开启端口 命令

查看系统端口状态

要查看 Debian 系统上端口的开放状态,可以使用以下命令:

  1. 使用 netstat 命令:

sudo netstat -tulnp

输出如下所示:Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:2812 0.0.0.0:* LISTEN 369/monit tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 798/sshd tcp6 0 0 :::80 :::* LISTEN 916/apache2 tcp6 0 0 :::22 :::* LISTEN 798/sshd udp 0 0 0.0.0.0:68 0.0.0.0:* 614/dhclient

这将列出所有已开放的端口和它们所在的进程。输出将显示端口号、协议、IP 地址、进程 ID 和进程名称等信息。

其中:

  • t:表示 TCP 协议;
  • u:表示 UDP 协议;
  • l:表示监听状态;
  • n:表示不解析服务名称;
  • p:显示进程名 / PID
  1. 使用 ss 命令:

sudo ss -tulw

输出如下所示:State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 5 127.0.0.1:2812 *:* LISTEN 0 128 *:22 *:* LISTEN 0 128 :::80 :::* LISTEN 0 128 :::22 :::*

此命令将显示所有 TCP 和 UDP 端口的详细信息,包括端口号、协议、状态、IP 地址、进程 ID 和进程名称等。

其中:

  • t:表示 TCP 协议;
  • u:表示 UDP 协议;
  • l:表示监听状态;
  • w:表示要显示所有套接字(包括正在等待连接的套接字)。

这里提醒大家,这两个命令需要有 root 权限才能运行,才能显示所有进程和端口信息。如果您只想查看特定端口的信息,则可以在命令中指定端口号,如下所示:sudo netstat -tulnp | grep <port_number>

或者:sudo ss -tulw | grep <port_number>

其中 <port_number> 是您要查看的端口号。这将只显示与该端口相关的信息。

查看开放的防火墙端口

如果您需要查看已经开放的防火墙端口,则需要使用防火墙管理工具,例如 iptables。可以使用以下命令来列出所有防火墙规则:sudo iptables -L

输出如下所示:Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT tcp — anywhere anywhere tcp dpt:ssh ACCEPT all — anywhere anywhere ctstate RELATED,ESTABLISHED DROP all — anywhere anywhere Chain FORWARD (policy ACCEPT) target prot opt source destination DROP all — anywhere anywhere Chain OUTPUT (policy ACCEPT) target prot opt source destination

此命令将列出所有规则,包括允许和拒绝的规则。您可以在规则列表中查找要查看的端口的规则。如果该端口被允许,则意味着它是开放的;否则,意味着它是关闭的。

在 Debian 系统上,可以使用以下命令来查看防火墙开放了哪些端口:sudo iptables -L | grep ‘ACCEPT’

此命令将列出所有被允许的规则,即防火墙已经开放的端口。例如:ACCEPT tcp — anywhere anywhere tcp dpt:ssh ACCEPT tcp — anywhere anywhere tcp dpt:http ACCEPT tcp — anywhere anywhere tcp dpt:https

在此示例中,防火墙已经开放了 SSH 端口(22)、HTTP 端口(80)和 HTTPS 端口(443)。如果您只想查看特定协议(例如 TCP 或 UDP)的规则,则可以在命令中指定协议类型,例如:sudo iptables -L -v -n | grep ‘tcp spt:80’

此命令将列出所有源端口为 80 的 TCP 流量规则,包括源地址、目标地址、协议和目标端口等信息。

上述这些命令同样需要使用 root 权限来运行。如果您使用的是防火墙管理工具(例如 ufw),则可以使用类似的命令来列出所有开放的端口。例如,要列出 ufw 已经开放的端口,可以运行以下命令:sudo ufw status verbose

此命令将显示当前防火墙规则及其状态,包括已开放的端口列表。

安装 ufw

Debian 默认情况下没有安装 ufw(Uncomplicated Firewall)。如果您想使用 ufw 来管理防火墙规则,需要先安装它。安装 ufw 命令如下:sudo apt-get update sudo apt-get install ufw

安装完成后,您可以使用以下命令来查看开放的端口状态:sudo ufw status verbose

该命令将列出所有防火墙规则及其状态。例如:Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), deny (routed) New profiles: skip To Action From — —— —- 22/tcp (OpenSSH) ALLOW IN Anywhere 80/tcp (Apache) ALLOW IN Anywhere 443/tcp (Apache Full) ALLOW IN Anywhere 22/tcp (OpenSSH (v6)) ALLOW IN Anywhere (v6) 80/tcp (Apache (v6)) ALLOW IN Anywhere (v6) 443/tcp (Apache Full (v6)) ALLOW IN Anywhere (v6)

此输出显示了开放的端口和对应的服务(例如 OpenSSH、Apache 等),以及它们是否允许传入流量(ALLOW IN)。

如果您想允许或禁止特定的端口,可以使用 ufw 的命令行界面。例如,要允许传入 HTTP 流量,请使用以下命令:sudo ufw allow 80/tcp

这将允许传入 TCP 端口 80 的流量。要禁止特定端口的流量,请使用 deny 选项替换 allow。在更改防火墙规则后,您需要使用以下命令来重新加载规则:sudo ufw reload

更多关于 ufw 的详细信息,请参阅其官方文档。

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索