我刚刚开始使用 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 指出的那样,您可以使用Python来SimpleHTTPServer
测试一下。
答案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
来测试它!这是一个很好的问题!谢谢!