在 Linux 中打开端口的 3 种方法

您所在的位置:网站首页 linux怎么开启远程端口 在 Linux 中打开端口的 3 种方法

在 Linux 中打开端口的 3 种方法

2024-07-09 11:59| 来源: 网络整理| 查看: 265

在 Linux 中打开端口的 3 种方法

“本教程解释了如何使用不同的技术在大多数 Linux 发行版中打开端口。

阅读本教程后,您将能够在特定的 Linux 发行版中轻松打开端口,以及在所有发行版中打开端口的通用方法。

本文档中描述的防火墙包括 Nftables、UFW (Debian/Ubuntu) 和 Iptables。

本文中解释的每个步骤都包含屏幕截图,使每个 Linux 用户都可以轻松实现它们。

注意:确保开放端口的服务处于活动状态。 ”

如何使用 Nftables 打开端口

Nftables 是 Iptables 的替代品。如今,Nftables 变得比已停止使用的 Iptables 防火墙更加重要。

像 Debian 这样的新发行版本已经带来了 Nftables。

您仍然可以使用 Iptables 及其前端 UFW(简单防火墙),这简化了所有任务。在本教程专门介绍 Nftables 的部分之后,也对这两者进行了解释。

首先,确保 Nftables 和所有依赖项均已安装。在基于 Debian 的 Linux 发行版上,运行下面屏幕截图中显示的命令。

sudo apt install nftables

在安装过程中,系统会要求您确认是否重新启动某些程序和服务。按ENTER。

如果它们针对您的 glib 库进行了更新,请在要求升级时按是。

当询问是否再次重新启动服务时,请按ENTER。

安装 Nftables 后,您就可以开始编写防火墙并定义端口以保持开放。

sudo nftablesrules.txt

下面您可以看到一个带有限制性策略的简单 Nftables 防火墙,它会丢弃除定义的开放端口 80、443、53 和 22 之外的所有流量。所有可执行行均在注释中进行了说明。

#The first two executable lines define the local network (LinuxHintNet) and #some ports (80,443,22) to enable traffic through them in the rules below. define LinuxHintNet = 192.168.0.0/16 define AllowPorts   = {80,443,53,22} #I declare a new table containing chains and rules. I named this table #"Restrictive"; the name is arbitrary. The "inet" applies rules to both #IPv4 and IPv6. For IPv6 only use "ip6" or use “ip” IPv4. add table inet Restrictive # Once the table was defined below, I added three chains, Incoming, Redirect and Outgoing. Their names are also arbitrary. All of them drop incoming, outgoing and forwarding traffic as the default policy. add chain inet Restrictive Incoming  { type filter hook input priority 0; policy drop; } add chain inet Restrictive Redirect  { type filter hook forward priority 0; policy drop; } add chain inet Restrictive Outgoing  { type filter hook output priority 0; policy drop; } # Below, added two rules allowing loopback traffic. add rule inet Restrictive Incoming iifname lo counter accept add rule inet Restrictive Incoming oifname lo counter accept # I also added rules to allowing traffic through the ports I defined in the #AllowPorts variable. add rule inet Restrictive Incoming tcp sport $AllowPorts counter accept add rule inet Restrictive Outgoing tcp dport $AllowPorts counter accept add rule inet Restrictive Incoming udp sport $AllowPorts counter accept add rule inet Restrictive Outgoing udp dport $AllowPorts counter accept

下面您可以看到防火墙的屏幕截图。

保存文件后,使用以下命令执行防火墙,其中“nftablesrules.txt”必须替换为您创建的文件名。

sudo nft -f nftablesrules.txt

要查看运行的活动防火墙规则:

sudo nft list ruleset

如果您想刷新防火墙规则,请运行下面所示的命令。

sudo nft flush ruleset

现在,让我们探索 UFW 最简单的选择。

如何使用 UFW(简单防火墙)打开端口

本节介绍如何使用 UFW(简单防火墙)在基于 Debian 的 Linux 发行版(例如 Ubuntu)中打开端口,顾名思义,UFW 是一个易于使用的 Iptables 前端,用于创建防火墙规则,包括我们需要打开的端口在 Debian/Ubuntu Linux 中。

注意:要打开端口,除了防火墙规则之外,还要确保您要启用的服务处于活动状态。

如果您的系统中未安装 UFW,您可以通过运行以下命令使用 apt 软件包管理器获取它。

sudo apt install ufw

安装UFW后,您需要通过执行如下截图所示来启用它。

sudo ufw enable

安装UFW后,您可以通过指定端口来打开端口,如下所示。

sudo UFW allow

例如,要打开端口 22,请运行以下命令。

sudo ufw allow 22

您还可以通过指定服务或协议而不是端口号来打开端口,如下图所示。

sudo UFW allow ssh

添加与上一条类似的规则时,您可以通过运行以下命令来检查端口是否已成功打开。

sudo ufw status

但即使防火墙允许流量,您也必须检查所需的服务是否正在运行以及端口是否打开;您可以执行如下所示的命令。

sudo netstat -tulpn | grep LISTEN

如上图所示,端口正在侦听。

使用 UFW(以及所有防火墙),您可以指定允许特定端口上的流量通过的协议。只需在端口号或服务名称后添加斜杠,后跟协议即可。在下面的示例中,端口 80 采用 TCP 协议。

sudo ufw allow 80/tcp

以下示例允许 UDP 流量通过端口 1025。

sudo ufw allow 1025/udp

要允许来自特定 IP 地址的流量通过端口,请使用以下语法,其中 IP 地址和端口号必须替换为您所需的 IP/端口。

sudo ufw allow from 172.64.175.28 to any port 21

注意:要使用 UFW 关闭端口,请将“allow”替换为“deny”,如下所示。

sudo ufw deny

要关闭端口 22,请运行:

sudo ufw deny 22

或者

sudo ufw deny ssh

注意:要关闭端口 22,请确保通过运行以下命令禁用 ssh 服务。

sudo systemctl stop 22

我再次通过运行 UFW 和 status 选项来检查我的规则是否已正确添加。

sudo ufw status

这是在 Linux 中打开端口的最简单方法。

在所有 Linux 发行版中打开端口 (Iptables)

本节展示如何使用 Iptables 打开端口,Iptables 是前面解释的 UFW 前端后面的防火墙。

以下规则允许通过端口 22 传入 (INPUT) TCP 流量。将“22”替换为您需要打开的端口号。

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

sudo iptables -S 命令允许您查看活动的防火墙规则。正如您在上面看到的,添加的线路处于活动状态。

以下行允许通过端口 22 传出 (OUTPUT) 流量。

sudo iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT

您可以通过在起始端口和结束端口之间使用冒号来定义要打开的端口范围,如下所示。

sudo  iptables -A INPUT -p tcp --destination-port 21:25 -j ACCEPT

要保存规则,请执行下图所示的命令。

sudo iptables-save

要刷新 Iptables 规则,请执行 iptables,后跟 -F(刷新)标志。

sudo iptables -F


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3