端口正在监听但无法从远程连接

端口正在监听但无法从远程连接

我有一个在虚拟机上运行的催化剂服务器。

[info] Hello powered by Catalyst 5.90103                                                                                                                                             
HTTP::Server::PSGI: Accepting connections at http://0:3009/

并在虚拟机内进行连接

vagrant@precise32:/var/log/apache2$ curl 'http://localhost:3009'
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
etc ...

该端口似乎正在监听

vagrant@precise32:/var/log/apache2$ netstat -an | grep "LISTEN "
tcp        0      0 0.0.0.0:36300           0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:3009            0.0.0.0:*               LISTEN     

远程连接时我可以看到端口 80,但看不到 3009

curl 'http://localhost:80'
curl: (52) Empty reply from server
curl 'http://localhost:3009'
curl: (7) Failed to connect to localhost port 3009: Connection refused

我看过类似的帖子,但没什么帮助。这是 iptables

vagrant@precise32:/var/log/apache2$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

防火墙已关闭

vagrant@precise32:/var/log/apache2$ sudo ufw status  
Status: inactive

我对 VM 还很陌生,我不确定这是主机问题、apache 问题还是 cataylst 问题。我试过运行 python 服务器,但也无法连接到它。非常感谢大家的建议。谢谢

编辑 - 我看过类似的帖子,那里的一般解决方案不是监听端口或防火墙。我认为两者都不适用于这里。

答案1

您正在尝试使用localhost远程地址访问在端口 3009 上监听的 vagrant box 上的应用程序。要使其正常工作,您需要正确设置端口转发,如 vagrant 文档中所述:https://docs.vagrantup.com/v2/getting-started/networking.html

检查并确保它已正确设置,并且请求http://localhost:3009已转发到 vagrant box。您还应确保本地防火墙未阻止与端口的连接。

相关内容