我正在尝试设置我认为是相当常见的Django开发服务器配置,但我遇到了客户操作系统和主机操作系统之间的端口转发问题 .
我在跑:
-
Win7主机
-
VirtualBox 4.1.2
-
Ubuntu Server 11.04访客 .
我正在使用NAT连接到VirtualBox并使用内置的VirtualBox端口转发功能(来自访客的设置 - >网络 - >端口转发菜单),以便我的.vbox XML包含以下部分:
<NAT>
<DNS pass-domain="true" use-proxy="false" use-host-resolver="false"/>
<Alias logging="false" proxy-only="false" use-same-ports="false"/>
<Forwarding name="guestdjango" proto="1" hostip="127.0.0.2" hostport="9080" guestport="8080"/>
<Forwarding name="guesthttp" proto="1" hostip="127.0.0.2" hostport="8080" guestport="80"/>
<Forwarding name="guestssh" proto="1" hostip="127.0.0.2" hostport="2222" guestport="22"/>
</NAT>
从主机,我可以SSH / SFTP到2222端口的guest,我可以看到nginx“欢迎来到nginx!”在127.0.0.2:8080 .
在验证这些之后,我设置了Django并运行Django runsever:
python manage.py runserver 127.0.0.1:8080
来自嘉宾的Lynx,我在127.0.0.1:8080获得了“祝贺”Django页面 .
但是,当我从主机导航到127.0.0.2:9080时,我得到"The connection was reset."
1 回答
我不完全确定它如何与端口转发一起工作,但通常将runserver暴露给外部网络,你需要将它绑定到localhost之外的其他东西 - 即运行
python manage.py runserver 0.0.0.0:8080
. 看看是否有效 .