美文网首页
Windows 上 Vagrant 端口转发问题

Windows 上 Vagrant 端口转发问题

作者: Tim_Lee | 来源:发表于2017-07-05 08:29 被阅读0次

    注:该问题只出现在 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/

    相关文章

      网友评论

          本文标题:Windows 上 Vagrant 端口转发问题

          本文链接:https://www.haomeiwen.com/subject/hwpfhxtx.html