Ubuntu

埠正在偵聽,但無法從遠端連接

  • December 3, 2015

我有一個在 VM 上執行的催化劑伺服器。

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

並在 VM 內連接

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 問題還是催化劑問題。我確實嘗試過執行 python 伺服器,但也無法連接到該伺服器。非常感謝所有建議。謝謝

編輯 - 我看過類似的文章,一般的解決方案沒有監聽埠或防火牆。我認為這兩個都不適用。

您正在嘗試使用localhost遠端地址訪問 vagrant box 上偵聽埠 3009 的應用程序。為此,您需要按照 vagrant 文件中的說明正確設置埠轉發:https ://docs.vagrantup.com/v2/getting-started/networking.html

檢查並確保它設置正確,並且請求http://localhost:3009被轉發到 vagrant box。您還應該確保您的本地防火牆沒有阻止與埠的連接。

引用自:https://serverfault.com/questions/740654