在 Ubuntu 服务器上打开端口 80

在 Ubuntu 服务器上打开端口 80

我刚刚开始使用 Ubuntu/Linux,在打开端口 80 进行传入连接时遇到了一些问题。

我运行了该sudo ufw allow 80/tcp命令,运行sudo ufw status结果如下:

Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
22 (v6)                    ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)

但是,当我尝试使用 cURL 连接到端口时仍然收到此错误。

无法连接到 MY_IP_ADDRESS 端口 80:连接被拒绝

当我运行此命令netstat -ntlp | grep LISTEN来查看哪些端口是打开的时,我得到了以下结果:

(No info could be read for "-p": geteuid()=1000 but you should be root.)
tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN      -               
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -               
tcp6       0      0 :::22                   :::*                    LISTEN      -         

这看上去不太有希望。

如何打开端口 80 以接收传入连接?

答案1

没有程序监听端口 80,因此该端口已关闭,您无法连接到它。

您可以使用

sudo python -m SimpleHTTPServer 80

对于 Python-3:

sudo python3 -m http.server 80

启动一个在端口 80 上监听的简单 Web 服务器,或者apache2如果您想要一个功能齐全的 Web 服务器,可以安装 Apache(包)之类的东西。

答案2

联邦水务局是个简单的防火墙。它管理计算机上哪些端口可以打开以供应用程序监听。sudo ufw allow 80/tcp表示允许TCP连接到端口 80

但是,端口后面实际上没有任何内容在监听。curl应该有一个应用程序向端口发送回复。这通常称为服务器。正如@Florian 指出的那样,您可以使用PythonSimpleHTTPServer测试一下。

答案3

使用:

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

然后,为了防止它在重新启动时丢失 iptables 配置,请使用:

sudo apt-get install iptables-persistent

答案4

您可以使用sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT它在配置端口时接受端口,以防止丢失此终端代码行,您可以使用sudo apt-get install iptables-persistent sudo 在命令开头的原因是让它以超级用户身份运行,持久性使用它作为与所提供端口的持久连接。您还可以使用 PythonSimpleHTTPServer来测试它!这是一个很好的问题!谢谢!

相关内容