【问题标题】:Connection refused on Windows XP networkWindows XP 网络上的连接被拒绝
【发布时间】:2009-04-01 19:35:20
【问题描述】:

这只是轻微的编程问题,更多的是网络问题。

我正在尝试让 Django Web 应用程序在我的家庭网络中运行,但我无法让网络上的任何机器访问该网页。我已经在端口 80 和 8000 上运行,但没有运气。错误消息是:“Firefox 无法与位于 192.168.x.x 的服务器建立连接。”

我已经尝试在客户端的 python 中使用套接字:

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect ( ("192.168.x.x", 80) )

我刚刚收到“socket.error (10061, 'Connection denied')”。有趣的是,我可以连接 25 端口。

没有运行 Windows 防火墙。电缆调制解调器前面有一个 NetGear 路由器/防火墙。

我应该看什么来配置这个?


也试过了:

import urllib2
urllib2.urlopen("http://192.168.x.x/")

同样的事情。


回复:“你能从运行它的机器上看到 Django 应用吗?”

是的。它确实在同一台机器上工作。它不能跨网络工作。

我还可以将服务器设置为在我选择的任何端口(80、8000 等)上运行,并且可以在本地访问,而不是通过网络访问。


问。是否支持netstat? A. 是的:

  Proto  Local Address          Foreign Address        State
  ....
  TCP    D3FL2J71:http          localhost:1140         TIME_WAIT
  TCP    D3FL2J71:http          localhost:1147         TIME_WAIT

我的网站在本地的两个浏览器窗口中可见。


使用显式外部端口(不依赖本地主机):

python manage.py runserver 192.168.x.x:8000

冰冰冰!我们有一个赢家!

哇,我很高兴这不是网络问题。


“Django 应用程序是否肯定在 192.168.xx 地址而不只是在环回适配器上做广告?”

看来 Jon 也走在了正确的轨道上,但评论并没有给我指明方向——检查 Django 服务器的设置调用。

【问题讨论】:

    标签: python networking


    【解决方案1】:

    我假设您正在运行 django 开发服务器?如果是这样,请确保启动它,以便它将绑定到其他机器需要用于连接的 IP 地址:

    python manage.py runserver 192.168.x.x:8000
    

    您可以要求服务器绑定到所有地址(我承认自己没有在 Windows 上尝试过):

    python manage.py runserver 0.0.0.0:8000
    

    恐怕正常的 runserver 使用只绑定到 localhost。

    【讨论】:

    • 回复:“正常的 runserver 使用只绑定到 localhost,恐怕。”著名的遗言。
    猜你喜欢
    • 2011-06-24
    • 1970-01-01
    • 2011-06-28
    • 1970-01-01
    • 1970-01-01
    • 2014-10-10
    • 2019-12-18
    • 2016-04-12
    • 1970-01-01
    相关资源
    最近更新 更多