如何指定 Django 测试服务器应该监听哪个 eth 接口?

Posted

技术标签:

【中文标题】如何指定 Django 测试服务器应该监听哪个 eth 接口?【英文标题】:How to specify which eth interface Django test server should listen on? 【发布时间】:2010-11-14 08:44:13 【问题描述】:

正如标题所说,在具有多个 IP 环境的多个以太网接口中,默认的 Django 测试服务器未连接到我可以从我的 PC 访问的网络。有没有办法指定 Django 测试服务器应该使用的接口?

-- 添加--

网络配置在这里。 我正在通过我的 PC 上的 143.248.x.y 地址连接到机器。 (我的电脑也在 143.248.a.b 网络中。)但是我找不到这个地址。普通的 apache 和在其他端口上运行的其他自定义守护进程一样好用。

配置这台机器的不是我,所以网络的细节我不太了解……

eth0      Link encap:Ethernet  HWaddr 00:15:17:88:97:78
          inet addr:192.168.6.100  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::215:17ff:fe88:9778/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:441917680 errors:0 dropped:0 overruns:0 frame:0
          TX packets:357190979 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:191664873035 (178.5 GB)  TX bytes:324846526526 (302.5 GB)

eth1      Link encap:Ethernet  HWaddr 00:15:17:88:97:79
          inet addr:172.10.1.100  Bcast:172.10.1.255  Mask:255.255.255.0
          inet6 addr: fe80::215:17ff:fe88:9779/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1113794891 errors:0 dropped:97 overruns:0 frame:0
          TX packets:699821135 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:843942929141 (785.9 GB)  TX bytes:838436421169 (780.8 GB)
          Base address:0x2000 Memory:b8800000-b8820000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:1085510396 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1085510396 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:422100792153 (393.1 GB)  TX bytes:422100792153 (393.1 GB)

peth0     Link encap:Ethernet  HWaddr 00:15:17:88:97:78
          inet6 addr: fe80::215:17ff:fe88:9778/64 Scope:Link
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:441918386 errors:0 dropped:742 overruns:0 frame:0
          TX packets:515286699 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:199626686230 (185.9 GB)  TX bytes:337365591758 (314.1 GB)
          Base address:0x2020 Memory:b8820000-b8840000

veth0     Link encap:Ethernet  HWaddr 00:00:00:00:00:00
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

veth1     Link encap:Ethernet  HWaddr 00:00:00:00:00:00
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

veth2     Link encap:Ethernet  HWaddr 00:00:00:00:00:00
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

veth3     Link encap:Ethernet  HWaddr 00:00:00:00:00:00
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

vif0.0    Link encap:Ethernet  HWaddr fe:ff:ff:ff:ff:ff
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

vif0.1    Link encap:Ethernet  HWaddr fe:ff:ff:ff:ff:ff
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

vif0.2    Link encap:Ethernet  HWaddr fe:ff:ff:ff:ff:ff
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

vif0.3    Link encap:Ethernet  HWaddr fe:ff:ff:ff:ff:ff
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

-- 添加(2)--

最后,我使用 w3m(一个在终端上运行的文本模式网络浏览器)从 localhost 进行连接。 :P

【问题讨论】:

【参考方案1】:

我认为OP是指在测试机器上配置多个接口。

您可以指定 Django 将绑定到的 IP 地址,如下所示:

# python manage.py runserver 0.0.0.0:8000

这会将 Django 绑定到端口 8000 上的所有接口。您可以传递任何活动 IP 地址来代替 0.0.0.0,因此只需使用要绑定到的接口的 IP 地址。

希望这会有所帮助。

【讨论】:

我不明白为什么两个基本上重复我的答案得到了投票(而我的没有):/ @sztomi:其他人有具体化抽象点的例子。使用示例是一种很好的方式来阐明并极大地帮助读者。【参考方案2】:

是的,如果你的接口的 IP 是例如 192.168.1.2 并且你想在端口 8080 上运行,像这样启动开发服务器:

./manage.py runserver 192.168.1.2:8080

【讨论】:

【参考方案3】:

没有。这不是它的工作方式。该接口有一个 IP 地址,您有一个与测试服务器和您的 PC 相连的网络。您应该连接到该 IP(可能使用您指定的备用端口),仅此而已。如果网络中只有这两个设备,则很可能它们都应该有静态 IP 地址。 (或者,如果没有相互网络,则无法相互连接)。

【讨论】:

以上是关于如何指定 Django 测试服务器应该监听哪个 eth 接口?的主要内容,如果未能解决你的问题,请参考以下文章

如何知道在 django 中运行单元测试的环境适用于哪个环境

socketIO 客户端默认监听哪个端口?

上传包含密钥的 django 项目时,我应该使用哪个 gitignore 文件? [关闭]

如何指定绘图应该是哪个数字?

如何指定哪个python版本的诗歌应该创建venv?

Tomcat哪个参数配置监听队列的大小