在Ubuntu服务器上打开端口80


18

我刚开始使用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进行传入连接?

Answers:


12

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

您可以使用

sudo python -m SimpleHTTPServer 80

启动一个侦听端口80的简单Web服务器,或者apache2如果您想要一个功能强大的Web服务器,则安装类似Apache(package )的东西。


8

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

但是,端口后面实际上没有监听的内容。到curl该端口,应该有一个将发送回复的应用程序。这通常称为服务器。作为@Florian指出,你可以使用Python中SimpleHTTPServer测试它。


这是永久的吗?
Marcelo Filho


5

采用:

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

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

sudo apt-get install iptables-persistent

3
这本来是日期为4/2016 的答案的出色编辑
Charles Green

2

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


0

这适用于我iptables只允许80

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.