4

我正在尝试设置我认为是相当常见的 Django 开发服务器配置,但我遇到了来宾操作系统和主机操作系统之间的端口转发问题。

我在跑:

  • Win7主机
  • 虚拟盒子 4.1.2
  • Ubuntu 服务器 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 上访问来宾,我可以看到 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 时,我得到“连接已重置”。

4

1 回答 1

20

我不完全确定它如何与端口转发一起工作,但通常要将 runserver 暴露给外部网络,您需要将它绑定到 localhost 以外的其他东西 - 即 run python manage.py runserver 0.0.0.0:8080。看看这是否有效。

于 2011-09-10T21:58:16.803 回答