一步步教你如何在 Linux 中打开端口

Open-Port-in-Linux-750x375-1

Linux 中打开端口并使用 Linux 网络工具列出和验证打开的端口是网络通信管理的关键职责。计算机网络中的端口号是一个虚拟概念,它将网络标识分配给特定的服务或应用程序。

在本文中,我们将了解打开端口的过程,并展示如何利用几种 Linux 网络工具来检查和测试 Linux 中打开的端口。

前 1024 个端口(从 0 到 1023)被称为众所周知的端口号,因为它们是为最常用的服务保留的。例如 SSH(端口 22)、HTTP(端口 80)和 HTTPS(端口 443)。大于 1024 的端口号称为临时端口。

  • 注册/用户端口范围从 1024 到 49151。
  • 动态/专用端口的编号为 49152 至 65535。

先决条件

  • 访问系统(sudoroot访问)。

初始设置

首先将服务器软件包更新到可用的最新版本。

在 Linux 系统上,启动终端或命令行界面。

sudo apt update

列出所有可用端口

如何安装netstat?

“ sudo”命令以管理权限执行以下命令,允许您进行系统级别的更改。

然后,最常见的Linux发行版提供该netstat命令作为net-tools包的一部分。netstat您列出的用于在各种发行版上安装的命令都是正确的。

以下是在所有主要发行版中安装的安装指南net-tools

对于 Fedora/CentOS/RHEL 8: 

sudo dnf install net-tools 

对于 CentOS/RHEL 7:

sudo yum install net-tools 

对于 Debian/Ubuntu:

sudo apt install net-tools 

对于Arch:

sudo pacman -S netstat-nat 

对于 OpenSuse:

sudo zypper install net-tools 

TCP 和 UDP 协议

netstat程序可用于列出Linux中所有开放的端口,包括TCP和UDP协议。以下是您可以如何使用它:

执行以下命令:

netstat -lntu

让我们看一下该命令的选项:

  • -l:仅显示监听套接字/端口。
  • -n:显示端口号而不是将其解析为服务名称。
  • -t:显示 TCP 端口列表。
  • -u:显示 UDP 端口列表。

当您运行命令 netstat 时-lntu,您将得到如下内容:

网络统计
cloudbooklet@ubuntu:~$ netstat -lntu
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN
udp        0      0 127.0.0.1:323           0.0.0.0:*
udp        0      0 127.0.0.53:53           0.0.0.0:*
udp        0      0 10.128.0.11:68          0.0.0.0:*
udp6       0      0 ::1:323                 :::*
cloudbooklet@ubuntu:~$

注意:如果您的发行版不包含netstat,您可以通过使用该命令查找侦听套接字来显示打开的端口ss

在 Linux 上,使用该ss命令检查一致的输出并列出具有开放端口的侦听套接字。该ss命令取代了早期的 netstat 命令,提供了更详细和最新的统计信息。以下是如何使用它:

在 Linux 系统上,启动终端或命令行界面。

ss -lntu

这些-ltn选项用于过滤和显示特定信息:

  • -l:仅显示监听套接字/端口。
  • -t:显示 TCP 端口列表。
  • -n:显示端口号而不是将其解析为服务名称。

然后,该ss命令将提供打开的侦听套接字的列表及其相应的本地地址和端口号。输出如下:

SS
cloudbooklet@ubuntu:~$ ss -lntu
Netid      State       Recv-Q      Send-Q              Local Address:Port           Peer Address:Port      Process
udp        UNCONN      0           0                       127.0.0.1:323                 0.0.0.0:*
udp        UNCONN      0           0                   127.0.0.53%lo:53                  0.0.0.0:*
udp        UNCONN      0           0                10.128.0.11%ens4:68                  0.0.0.0:*
udp        UNCONN      0           0                           [::1]:323                    [::]:*
tcp        LISTEN      0           128                       0.0.0.0:22                  0.0.0.0:*
tcp        LISTEN      0           511                       0.0.0.0:80                  0.0.0.0:*
tcp        LISTEN      0           511                       0.0.0.0:443                 0.0.0.0:*
tcp        LISTEN      0           4096                127.0.0.53%lo:53                  0.0.0.0:*
tcp        LISTEN      0           128                          [::]:22                     [::]:*
cloudbooklet@ubuntu:~$

在此示例中,端口 22 (SSH) 和 80 (HTTP) 均已打开并主动侦听。

检查活动连接

您可以使用 netstat 命令检查端口 4000 上是否有任何活动连接或侦听套接字,以确保它当前未被使用。具体方法如下:

在 Linux 系统上,启动终端或命令行界面。

netstat -na | grep :4000

或者,使用 ss 命令:

ss -na | grep :4000

如果未提供任何输出或结果,则表明端口 4000 当前未在使用且可供打开。

对于基于 Ubuntu 和 Debian 的系统

如果您没有安装 UFW,可以使用以下命令安装它。

sudo apt install ufw

在此处查看有关使用 UFW 的更多详细信息

你的命令看起来有点像这样:

sudo ufw allow 4000

对于 CentOS 和基于防火墙的系统

使用firewall-cmd,防火墙守护进程的命令行客户端。

你的命令看起来有点像这样:

firewall-cmd --add-port=4000/tcp

不使用 UFW 或防火墙的 Linux 发行版

研究一些 Linux 系统使用的用于配置 IP 数据包过滤的传统 iptables 方法。了解如何安装和使用 iptables 创建强大的防火墙规则,以提高系统安全性和网络流量控制。

使用 更改系统 IPv4 数据包过滤规则iptables

iptables -A INPUT -p tcp --dport 4000 -j ACCEPT

有关详细信息,请参阅如何为您的发行版安装 Iptables。

测试 TCP 连接的开放端口

您可以使用 nmap 命令通过指定端口号以及目标 IP 地址或主机名来测试特定端口。您可以使用以下命令:

要安装nmap命令,应使用以下命令

sudo apt-get install nmap
nmap localhost -p 4000
code-netcat

使用 Netcat 实用程序进行测试

netcat要使用该实用程序(通常缩写为)测试 Linux 中的开放端口nc,请执行以下操作:

要侦听指定端口(例如端口 4000)并显示任何收到的数据,请打开终端窗口并运行以下命令:

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

打开另一个终端窗口时保持命令运行。

在该终端窗口中,键入 telnet 以连接到本地套接字。

telnet localhost 4000

此命令连接到端口 4000 上的本地主机 (localhost)。

open-port-result

telnet如果端口打开并且连接成功,您可以在运行的终端窗口中键入消息。

另请阅读:您可能还会发现我们关于如何在 Ubuntu 中升级 Linux 内核的指南很有用

结论

最后,在 Linux 中打开端口的方法有很多种。最适合您的方法将取决于您的发行版和防火墙设置。但是,典型的过程是显示所有打开的端口,检查所需的端口是否已打开,然后使用正确的命令打开该端口。打开端口后,您可以对其进行测试以确保其正常运行。

请随时在下面的评论部分分享您的想法和反馈。

原创文章,作者:主机说,如若转载,请注明出处:https://www.hostingtalk.cn/how-to-open-port-in-linux/

error: 内容保护