在 Linux 操作系统中,端口是用于通过网络发送或接收数据的通信端点。网络端口由数字标识,每个端口号与特定类型的网络服务相关联。例如,端口 80 用于 HTTP 流量,端口 21 用于 FTP,端口 25 用于电子邮件。
为了建立网络连接,您需要在 Linux 系统上打开一个端口。有多种方法可以执行此操作,包括使用内置防火墙程序防火墙D, UFW, and iptables。这些方法中的每一种都有其各自的优点和缺点,在本文中,我们将讨论如何使用每种方法在 Linux 中打开端口。
检查系统上的监听端口
您可以使用`ss` or `netstat`命令行实用程序列出本地系统上侦听的所有端口。
ss -tuln
此命令将列出您计算机上侦听的所有端口以及连接到该端口的套接字。您可以使用以下命令过滤监听端口。
ss -tuln | grep "LISTEN"
您将看到如下输出:
Output
tcp LISTEN 0 5 127.0.0.1:631 0.0.0.0:*
tcp LISTEN 0 100 0.0.0.0:25 0.0.0.0:*
tcp LISTEN 0 100 0.0.0.0:143 0.0.0.0:*
tcp LISTEN 0 4096 0.0.0.0:111 0.0.0.0:*
tcp LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:*
tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
tcp LISTEN 0 5 [::1]:631 [::]:*
tcp LISTEN 0 100 [::]:25 [::]:*
tcp LISTEN 0 511 *:443 *:*
tcp LISTEN 0 70 *:33060 *:*
tcp LISTEN 0 151 *:3306 *:*
tcp LISTEN 0 511 *:80 *:*
tcp LISTEN 0 128 [::]:22 [::]:*
使用 FirewallD 打开端口:
FirewallD 是一个防火墙管理工具,包含在许多流行的 Linux 发行版中,包括 CentOS、Fedora 和 Red Hat Enterprise Linux。它提供了一个简单易用的界面来配置系统上的防火墙规则。
-
列出服务:要使用 FirewallD 打开端口,您首先需要检查您要允许的服务是否在预定义服务列表中列出。您可以通过运行以下命令来执行此操作:
firewall-cmd --get-services
这将显示 FirewallD 支持的所有预定义服务的列表。
-
Open Port by Service Name: If the service you want to allow is listed, you can open the port by running the following command:
|
# Syntax
firewall-cmd --永恒的 --add-service=服务名称
|
将“service_name”替换为您要允许的服务的名称。例如,要打开 HTTP 流量的端口 80,您可以运行以下命令:
firewall-cmd --permanent --add-service=http
-
Open Port by Number: If the service you want to allow is not listed in the predefined service list, you can open a specific port by running the following command:
|
# Syntax
firewall-cmd --永恒的 --add-port=端口号/protocol
|
Replace “端口号”以及您要打开的端口号,以及“协议”与服务使用的协议(“tcp”或“udp”)。例如,要使用 TCP 协议为 HTTP 流量打开端口 8080,您可以运行以下命令:
firewall-cmd --permanent --add-port=8080/tcp
保存防火墙规则:添加必要的防火墙规则后,您需要重新加载防火墙以应用更改。您可以通过运行以下命令来执行此操作:
firewall-cmd --reload
使用 UFW 打开端口:
UFW(Uncomplicated Firewall)是一种防火墙管理工具,包含在许多流行的 Linux 发行版中,包括 Ubuntu 和 Linux Mint。它提供了一个简单易用的界面来配置系统上的防火墙规则。
-
列出服务:要使用 UFW 打开端口,您首先需要检查您要允许的服务是否在预定义服务列表中列出。您可以通过运行以下命令来执行此操作:
ufw app list
这将显示 UFW 支持的所有预定义服务的列表。
-
Open Port by Service name: If the service you want to allow is listed, you can open the port by running the following command:
Replace “服务名称”以及您想要允许的服务的名称。例如,要打开 HTTP 流量的端口 80,您可以运行以下命令:
ufw allow http
-
Open port by number: If the service you want to allow is not listed in the predefined service list, you can open a specific port by running the following command:
|
# Syntax
ufw allow 端口号/protocol
|
Replace “端口号”以及您要打开的端口号,以及“协议”与服务使用的协议(“tcp”或“udp”)。例如,打开端口8080 for HTTP交通使用TCP协议,您将运行以下命令:
ufw allow 8080/tcp
-
检查防火墙状态:添加必要的防火墙规则后,您可以通过运行以下命令检查 UFW 防火墙的状态:
ufw status
这将显示所有活动防火墙规则的列表及其状态(或者“已启用” or “残疾人”).
您还可以使用 UFW 命令行界面启用或禁用特定规则,或将其完全删除。
使用 iptables 打开端口:
Iptables是大多数 Linux 发行版中都包含的功能强大的防火墙管理工具。它提供了多种用于在系统上配置防火墙规则的选项,但使用起来可能比 FirewallD 和 UFW 更复杂。
-
按号码打开端口:要使用 iptables 打开端口,您需要使用“iptables”命令后跟适当的选项和参数。例如,要使用 TCP 协议为 HTTP 流量打开端口 80,您可以运行以下命令:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
此命令添加一条新的防火墙规则,允许使用 TCP 协议在端口 80 上传入流量。 “-A”选项指定规则应附加到 INPUT 链的末尾,“-j”选项指定要采取的操作(在本例中为 ACCEPT)。
-
开放端口范围:如果你想打开一系列端口,你可以使用“-m 多端口”模块并指定以逗号分隔的端口范围。例如,打开端口80 to 90对于使用 TCP 协议的 HTTP 流量,您将运行以下命令:
iptables -A INPUT -p tcp -m multiport --dports 80:90 -j ACCEPT
-
保存防火墙规则:添加必要的防火墙规则后,您可以通过运行以下命令保存 iptables 配置:
service iptables save
这会将当前的防火墙配置保存到适当的配置文件中,以便每次重新启动系统时应用规则。
结论
在本文中,我们探讨了可用于在 Linux 中打开端口的三种不同工具:FirewallD、UFW 和 iptables。 FirewallD是一个防火墙管理工具,为iptables提供前端接口。它是一个用户友好的工具,可让您轻松管理防火墙规则。 UFW 是另一个用户友好的防火墙工具,可让您轻松打开和关闭端口。最后,我们研究了 iptables,这是一种更高级的工具,可以让您更好地控制防火墙。所有这三个工具都可用于在 Linux 中打开端口并允许网络流量流向特定的程序或服务。总之,选择使用哪种工具取决于您对 Linux 防火墙的熟悉程度以及您的个人喜好。