Linux 开放管理端口,配置与测试-最完整指南

接触过服务器的小伙伴们都知道,在服务器运维的世界里,端口就像一扇扇虚拟的门,操作系统里的这些“门牌号”就是通信连接的落脚点。在Linux操作系统这片天地里,开放或关闭特定的端口就相当于对数据通道或者说网络服务开关的操控。TCP和UDP这两个不同类型的端口,就如同各自的服务标签,分别对应着系统内各类网络服务的不同通讯方式。

对于用户而言,可以通过手动调整这些端口设置,就像给不同的网络服务分配独特的门牌号码一样,让它们各司其职,有序运作。而在Linux系统中,默认情况下就会有一部分端口是预先设定为开放状态的,这就像是房屋交付时已经标注好的公共出入口,它们对应的是常见的如HTTP、FTP等基础服务,确保了这些服务能够被外界访问到,同时也方便了用户根据实际需求灵活定制自己的网络环境。

linux端口

端口号范围从 0 到 1023,前 1024 个端口是为广泛使用的服务保留的常见端口号。它包括端口 22,即 SSH;端口 80,即 HTTP;端口 443,即 HTTPS。高于 1024 的端口号是临时端口。以下是详细的端口:

  • 1024 - 49151 端口号被命名为注册/用户端口
  • 49152 - 65535 端口号被命名为动态端口或专用端口

今天主机博客默念给大家总结了Linux端口聚合:

了解端口和打开它的原因

Linux 中的开放端口就像一个网关,将用户引导到 Linux 系统上的特定房间。用户在 Internet 上所做的一切,或者可能是一系列开放端口,都使用特定端口。

例如,如果您计划运行 Web 服务器,则必须使用 Linux 中的开放端口进行连接。同样的过程也适用于运行您的 Web、FTP 服务器或邮件。端口是跨所有联网设备的网络连接。

如何在 Linux 上打开端口

Linux 中的开放端口涉及防火墙配置机制,以允许通过特定端口的网络流量。请参阅使用 UFW(简单防火墙)工具的基本措施,该工具通常用于基于 Debian 的系统。如果您使用的是其他发行版,则步骤可能会有所不同。

使用 UFW(简单防火墙)

用户在打开端口时应谨慎,尤其是在面向公众的 Web 服务器上。仅打开对应用程序至关重要的端口。您还可以考虑使用严格的防火墙规则和其他安全措施来保护您的系统。

检查 UFW 状态:

首先,确认已安装 UFW 并查看其状态。

sudo apt-get update sudo apt-get install ufw sudo ufw status

开发特定端口:您可以根据端口数和协议使用 allow 命令来开发指定的端口(通常是 TCP 端口或 UDP 端口)。例如,要为 HTTP 流量打开端口 80:

sudo ufw allow 80/tcp

如果要打开一系列端口:

sudo ufw allow 3000:4000/tcp

允许特定应用:您还可以允许特定应用程序的流量。例如,要允许 SSH 流量,请执行以下操作:

sudo ufw allow OpenSSH

检查更新的规则

验证规则以确保已应用更改。

sudo ufw status

重新加载 UFW

进行更改后,可能需要重新加载 UFW 才能使新规则生效。

sudo ufw reload

启用 UFW

如果尚未启用 UFW,可以使用以下方法帮助它:

sudo ufw enable

通过键入“y”来确认操作。

使用 Firewall-cmd(适用于带有 firewalld 的系统)

如果您的 Linux 系统使用 Firewalld 而不是 UFW,您可以使用以下步骤:

检查 Firewall-cmd 状态:

sudo firewall-cmd --state

打开端口:

sudo firewall-cmd --add-port=80/tcp --permanent

重新加载 Firewall-cmd:

sudo firewall-cmd --reload

检查 Linux 中的开放端口:

sudo firewall-cmd --list-ports

 

列出 Linux 中的开放端口

在 Linux 系统上解锁端口号之前,必须检查是否已打开所需的端口。了解 Linux 中开放端口的最易于管理的方法是使用 netstat 命令的命令行来 grep 命令。

netstat -na | grep :[port-number]

overhead 命令行建议 grep 在 netstat 命令传递的端口列表中搜索特殊端口号。例如,要检查系统上是否可获取端口 8080,请输入以下命令:

netstat -na | grep :8080

如果端口关闭,则该命令不会产生任何结果

使用后续的 netstat 命令来描述侦听端口的索引:

netstat -lntu

-l 替代搜索侦听端口

-n 提供数字端口值

-t 和 -u 分别代表 TCP 端口和 UDP 端口。

 

在 Linux 中打开端口

在 Linux 中打开端口的正确过程取决于您使用的防火墙和 Linux 发行版。以下是建议执行这些步骤的常见方案:

  • 基于 RHEL 的发行版和 CentOS 发行版上的防火墙
  • 基于 Ubuntu 的发行版上的 UFW 防火墙
  • 不带防火墙和系统 UFW 的 iptables 实用程序

 

基于 Ubuntu 和 UFW 的系统

UFW,即 Ubuntu 的未完成防火墙,允许您使用单个命令打开端口。命令行为:

sudo ufw allow [port-number]

添加 IPv6 和 IPv4 规则时,将确认输出。或者,您可以在 Linux 中查看指定服务使用的开放端口,而无需输入端口号。命令将是

sudo ufw allow [service-name]

要查看 UFW 是否在您的系统上处于活动状态,您可以通过输入以下命令进行检查:

sudo ufw enable

 

带有防火墙的系统

Fedora、防火墙工具和其他相关发行版允许用户控制其 Linux 上的端口访问。要打开特定端口,请使用后续命令:

sudo firewall-cmd --zone=public --add-port=[port-number]/[protocol] --permanent

--permanent 确保规则在系统重新启动后持久存在。但是,--zone=public 参数对于多区域系统配置很有用。默认情况下,firewalld 将所有接口分配给公有区域。

 

没有 UFW 或 Firewalld Linux 发行版

虽然建议使用成熟的防火墙来支持系统安全,但某些 Linux 发行版使用传统的 iptables 解决方案。要使用 Linux 内核防火墙过滤 IP 数据包,可以通过配置规则来允许 iptables 实用程序。要为开放端口启动 iptables 实用程序规则,请使用以下命令:

sudo iptables -A INPUT -p [protocol] --dport [port] -j ACCEPT

此命令将创建 IPv4 规则。

对于 IPv6 规则,请使用 ip5tables 命令,如下所示:

sudo ip6tables -A INPUT -p [protocol] --dport [port] -j ACCEPT

端口号指定 --dport 选项。但是,-p 标志定义协议(udp 端口或 TCP 端口)。要为 TCP 端口 8080 生成 IPv4 规则,请输入以下命令:

sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT

 

基于 Debian 的系统 iptables 规则

这些规则是使用 iptables 开发的,这些 iptables 在重新启动后不会继续。注意以下步骤,在基于 Debian 的系统上重新启动后修复 iptables 规则:

通过输入以下命令保存您启动的 IPv4 规则:

iptables-save > /etc/iptables/rules.v4

要将任何 IPv6 规则存储在单独的文件中,请输入下面提到的命令:

ip6tables-save > /etc/iptables/rules.v6

要安装 iptables-persistent 软件包,请使用以下命令:

sudo apt install iptables-persistent

当系统重新启动或重新启动时,它将使用 rules.v6 文件自动重新加载 rules.v4 的内容。

iptables 规则在 RHEL 系统上持久存在

iptables 配置由基于 RHEL 的系统存储在不同的位置。

若要保存 IPv4 规则或 IPv6 规则,请标记以下命令:

iptables-save > /etc/sysconfig/iptables

ip6tables-save > /etc/sysconfig/ip6tables

要查看是否已提交 iptables-services 软件包,请使用以下命令

sudo dnf install iptables-services

输入命令以启动或激活设备

sudo systemctl start iptables

通过以下命令允许服务:

sudo systemctl enable iptables

要保护 iptables 规则,请使用以下命令:

sudo service iptables save

若要实现该规则,请通过将命令记录为以下命令来继续服务:

sudo systemctl restart iptables

 

在 Linux 中测试开放端口

通过使用任何一种方式在 Linux 中打开端口,确认该过程已成功完成。要检查系统上的开放端口,请按照以下方法操作。

使用 netstat 命令查看侦听端口:

netstat -lntu

要列出打开的套接字,请使用 ss 命令:

ss =lntu

通过使用 nmap 命令,可以通过指定端口编号来测试端口。例如,使用 nmap 命令:

nmap localhost -p 8080

使用 netcat 实用程序或 netcat 命令测试端口。通过使用 netcat 命令,您可以测试打开的端口。此工具还具有 nc 命令。

使用 echo 命令将输出管道传输到 netcat 命令并确定要侦听的端口

echo "Testing port 8080"| nc -l -p 8080

将命令保留在运行过程中,并打开一个新的终端窗口以查询本地套接字。使用以下命令:

telnet localhost 8080

 

结论

理解并掌握对进入网络的连接进行检测,执行初始端口检查和扫描以识别开放端口,是计算机网络领域不可或缺的基础知识。无论你是搭建 Web 服务器、提供技术支持还是评估实时链接的状态,理解和运用TCP与UDP端口的工作原理都是必不可少的。

开放的TCP端口就像一座等待接纳数据传输的“大门”,而封闭的TCP端口则好比一道紧闭的安全闸门。理解两者间的区别,以及同一端口在信息交互时所扮演的不同角色,恰恰揭示了在网络中确保高效安全传输的复杂性。

通过扫描开放端口的能力,就如同为网络安全安装了一双鹰眼,它能帮助我们全面洞察整个网络状况,让网络管理员如同尽职尽责的守夜人,既能维护系统的完整性和正常运作,又能及时发现并修补潜在的安全漏洞,确保网络环境既畅通又安全。

THE END