在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 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?

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

您可以使用

 sudo python -m SimpleHTTPServer 80 

如果你想要一个完整的Web服务器,启动一个简单的Web服务器监听端口80,或安装类似Apache(包apache2 )的东西。

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

但是,端口后面没有任何实际的监听。 要curl端口,应该有一个应用程序将发送回复。 这通常称为服务器。 正如@Florian所指出的,你可以使用PythonSimpleHTTPServer来测试它。

那对我有用的是使用iptable

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

使用:

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

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

 sudo apt-get install iptables-persistent 

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