2016-06-12 68 views
1

我在Redhat計算機上運行Django服務器。我可以通過SSH連接遠程連接到電腦,所以我假設沒有防火牆問題。然而,當我執行以下命令(據稱應該使服務器公開可用)Django服務器無法訪問,雖然ssh到電腦工作

python3 manage.py runserver 0.0.0.0:8080 

服務器不是來自任何其它計算機訪問。本地(從Redhat機器本身),我可以看到服務器正在運行。

我是新來的紅帽,所以如果有任何其他信息我應該提供,請讓我知道。

到目前爲止,我發現我可以使用localtunnel使我的服務器可達,但是,由於它改變了網址,我寧願以其他方式解決問題。



更新:這個問題與Django無關。造成混淆的原因是服務器運行沒有問題,並且沒有任何特定原因導致無法訪問。

無論如何,我需要添加一些配置(發現在here)使端口:8080可達。

+0

嘗試'netstat的-tanp | grep LISTEN'來查看端口是否在監聽網絡和iptables -L',以確保沒有禁止它的防火牆規則。 –

+0

嘗試了第一條命令,似乎該端口正在偵聽。我不知道如何解釋第二個命令的輸出,所以我給你提供輸出日誌:https://www.dropbox.com/s/zoul6y8dag04h74/iptables.txt?dl=0 –

+0

嗯,相當複雜的規則,最新的RedHat似乎使用firewalld而不是iptable,所以我不能說太多。在底部有一條規則:'dpt:ssh ctstate NEW',它允許新的ssh連接,並且'接受所有 - 任何地方'在頂部可能是'lo'接口,所以我非常肯定它的阻塞傳入連接到您的Django端口。你可以運行'iptables -vL',它會清除接受所有規則,因爲它會顯示接口。不幸的是,我不確定在firewalld上打開這個端口的最佳方式是什麼。 –

回答

0

打開8080端口與

firewall-cmd --zone=public --add-port=8080/tcp 

要永久添加到系統中,添加--permanent像這樣:

firewall-cmd --zone=public --add-port=8080/tcp --permanent