Windows 上 Vagrant 端口转发问题

注:该问题只出现在 Windows 系统中,Mac OSX 系统不会出现该问题。

问题描述:Vagrant 中的 web 服务,无法端口转发到主机

比如 Django 的 runserver

$ python manage.py runserver

或者 jupyter notebook

$ jupyter notebook

在 Windows 系统中的 vagrant 虚拟机中,针对 127.0.0.1 的 web 服务,在主机中是无法接收的。

解决方法:虚拟机中 web 服务设置为 0.0.0.0

对于 Django 的 runserver,在虚拟机中设置为 0.0.0.0:8080 ,在主机中浏览器中输入 http://127.0.0.1:8080 ,就可以用浏览器使用虚拟机中的 django web 服务。

$ python manage.py runserver 0.0.0.0:8080

而对于 jupyter notebook ,需要加上参数--ip=0.0.0.0。Jupyter 会把服务设置在 8888 或者 8889 端口,如果这两个端口已经在 vagrant 中设置为虚拟机转发到主机,则可以使用 http://127.0.0.1:8888 进行接收。

$ jupyter notebook --ip=0.0.0.0

Vagrantfile 的端口转发设置

设置虚拟机 8888 和 8889 转发到主机对应的端口。可以在 Vagrantfile 中设置。

  config.vm.network "forwarded_port", host_ip: "127.0.0.1", guest: 8888, host: 8888
  config.vm.network "forwarded_port", host_ip: "127.0.0.1", guest: 8889, host: 8889

参考:

https://gist.github.com/davemkirk/90140b1edde8d18c8b83
http://pythondata.com/jupyter-vagrant/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容