2016-06-12 41 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 
相关问题