【问题标题】:Django server is not reachable although ssh to the computer works尽管计算机的 ssh 工作正常,但 Django 服务器无法访问
【发布时间】:2016-10-13 03:46:32
【问题描述】:

我在 Redhat 计算机上运行 Django 服务器。我可以通过 ssh 连接远程连接到计算机,所以我假设没有防火墙问题。但是,当我执行以下命令时(据说应该使服务器公开可用)

python3 manage.py runserver 0.0.0.0:8080

无法从任何其他计算机访问服务器。在本地(从 redhat 机器本身)我可以看到服务器正在运行。

我是 redhat 的新手,所以如果我需要提供任何其他信息,请告诉我。

到目前为止,我发现我可以使用localtunnel 使我的服务器可访问,但是,由于它更改了 url,我更喜欢以其他方式解决问题。



更新:问题与 Django 无关。令人困惑的是服务器运行没有问题,并且没有特定原因变得无法访问。

无论如何,我需要添加一些配置(在here 中找到)以使端口:8080 可达。

【问题讨论】:

  • 尝试netstat -tanp | grep LISTEN查看端口是否正在监听网络,并尝试iptables -L确保没有防火墙规则禁止它。
  • 尝试了第一个命令,似乎端口正在监听。我不确定如何解释第二个命令的输出,所以我为您提供输出日志:dropbox.com/s/zoul6y8dag04h74/iptables.txt?dl=0
  • 嗯,相当复杂的规则,最新的RedHat似乎使用firewalld而不是iptable,所以我不能说太多。底部有一条规则 dpt:ssh ctstate NEW 允许新的 ssh 连接,顶部的 ACCEPT all -- anywhere anywhere 可能是 lo 接口,所以我很确定它阻止了到您的 Django 端口的传入连接。你能运行iptables -vL吗,它会清除ACCEPT all规则,因为它会显示界面。不幸的是,我不确定在 firewalld 上打开端口的最佳方法是什么。
  • firewall-cmd --zone=public --add-port=8080/tcp 我认为是这样的,但请谨慎对待。我不是 RH 系统管理员。

标签: redhat


【解决方案1】:

打开8080端口

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

要将其永久添加到系统中,请像这样添加 --permanent:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-29
    • 1970-01-01
    • 1970-01-01
    • 2014-12-18
    • 2015-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多