如何指定Django测试服务器监听哪个eth接口?
正如标题所说,在有多个以太网接口和多个IP地址的环境中,默认的Django测试服务器并没有连接到我可以从我的电脑访问的网络。有没有办法指定Django测试服务器应该使用哪个接口呢?
-- 补充 --
这里是网络配置。我是通过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(一个在终端上运行的文本模式网页浏览器)从本地连接。:P
3 个回答
1
不,这样不行。接口有一个IP地址,你的网络里有测试服务器和你的电脑。你应该连接到那个IP地址(可能还需要用你指定的其他端口),就这样。如果网络里只有这两台设备,它们很可能都需要有固定的IP地址。(或者,如果没有互相连接的网络,你们就无法互相连接)。
3
当然可以,如果你的网络接口的IP地址是192.168.1.2,而你想在8080端口上运行,那么可以这样启动开发服务器:
./manage.py runserver 192.168.1.2:8080
46
我觉得提问者是指在测试机器上配置了多个网络接口。
你可以这样指定Django要绑定的IP地址:
# python manage.py runserver 0.0.0.0:8000
这样做会让Django绑定到所有网络接口的8000端口。你可以把0.0.0.0替换成任何一个活跃的IP地址,所以只需要使用你想要绑定的那个接口的IP地址就可以了。
希望这对你有帮助。