我正在尝试设置我认为相当常见的Django开发服务器配置,但我遇到了客户操作系统和主机操作系统之间的端口转发问题。
我正在跑步:
我正在使用NAT连接到VirtualBox并使用内置的VirtualBox端口转发功能(来自访客的设置 - &gt;网络 - &gt;端口转发菜单),以便我的.vbox XML包含以下部分:< / p>
<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时,我收到“连接已重置。”
答案 0 :(得分:21)
我不完全确定端口转发是如何工作的,但通常要将runserver暴露给外部网络,你需要将它绑定到localhost之外的其他东西 - 即运行python manage.py runserver 0.0.0.0:8080
。看看是否有效。