Ubuntu
埠正在偵聽,但無法從遠端連接
我有一個在 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。您還應該確保您的本地防火牆沒有阻止與埠的連接。