如何指定 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 中运行单元测试的环境适用于哪个环境