如何在 Ubuntu 服务器上永久保持端口 80 开放

如何在 Ubuntu 服务器上永久保持端口 80 开放

我刚刚安装了 Ubuntu Web Server,在安装结束时,它告诉我可以转到 IP 地址。我照做了,结果出现了“无法连接”的提示。我估计端口 80 没有打开。所以我找到了这个并运行了“sudo phython3 -m http.server 80,然后我得到了服务器的目录列表。但在我运行它之后,它似乎冻结了,我该如何摆脱它?下一个问题:然后我运行了 sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT,然后运行了 sudo apt-get install iptables-persistent,然后重新启动,然后我再次输入 IP 地址,那个该死的标志又出现了“抱歉,无法连接”。那么我做错了什么,它怎么能永远存在呢?谢谢。

答案1

UFW 是标准 Ubuntu 20.04 安装的一部分,应该存在于您的系统中。如果由于某种原因未安装,您可以通过键入以下内容来安装该软件包:

$ sudo apt update
$ sudo apt install ufw

您可以通过输入以下命令列出服务器上可用的所有应用程序配置文件:

$ sudo ufw app list

根据系统上安装的软件包,输出将类似于以下内容:

输出

Available applications:
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSHCopy

要查找有关特定配置文件和包含的规则的更多信息,请使用以下命令:

$ sudo ufw app info 'Nginx Full'

输出显示“Nginx Full”配置文件打开端口 80 和 443。

Profile: Nginx Full
Title: Web Server (Nginx, HTTP + HTTPS)
Description: Small, but very powerful and efficient web server

Ports:
  80,443/tcp

如果您从远程位置连接到 Ubuntu,则在启用 UFW 防火墙之前,您必须明确允许传入的 SSH 连接。否则,您将无法再连接到该机器。

要配置您的 UFW 防火墙以允许传入的 SSH 连接,请输入以下命令:

$ sudo ufw allow ssh

现在防火墙已配置为允许传入的 SSH 连接,您可以通过键入以下命令来启用它:

$ sudo ufw enable

Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

系统将警告您启用防火墙可能会中断现有的 ssh 连接,只需输入 y 并按 Enter 键。

根据系统上运行的应用程序,您可能还需要打开其他端口。打开端口的一般语法如下:

$ ufw allow port_number/protocol

以下是一些允许 HTTP 连接的方法。

第一个选项是使用服务名称。UFW 检查 /etc/services 文件中指定服务的端口和协议:

$ sudo ufw allow http

您还可以指定端口号和协议:

$ sudo ufw allow 80/tcp

当没有给出协议时,UFW 会为 tcp 和 udp 创建规则。

另一个选择是使用应用程序配置文件;在本例中为“Nginx HTTP”:

$ sudo ufw allow 'Nginx HTTP'

UFW 还支持使用 proto 关键字指定协议的另一种语法:

$ sudo ufw allow proto tcp to any port 80

相关内容