• Vagrant 手册之网络


    原文地址

    Vagrantfile 配置文件中端口转发的网络标识符:forwarded_port,例如:

    config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"

    Vagrant 端口转发可以将对宿主机端口的访问数据转发到虚拟机中,支持 TCP 和 UDP。

    例如:如果虚拟机中的 80 端口上运行着 web 服务,可以通过端口转发映射到宿主机的 8080 端口,在宿主机的浏览器中访问 localhost:8080 时,所有的网络流量会被发送到虚拟机。

    1. 定义端口转发

    端口转发的配置需要两个参数,宿主机和虚拟机的端口。例如:

    Vagrant.configure("2") do |config|
      config.vm.network "forwarded_port", guest: 80, host: 8080
    end

    这个配置使得虚拟机的 80 端口可以通过宿主机的 8080 端口访问到。

    对于大多数 provider,端口转发默认绑定到所有接口。这意味着网络上的其他设备可以访问转发的端口。如果想限制访问,请参阅下面的 guest_iphost_ip 设置。

    2. 选项手册

    这里列出了端口转发可用的全部选项。只有 guest 和 host 选项是必须的。下一部分有详细的使用示例。

    • auto_correct (boolean):如果为 true,当宿主机的端口因为被占用而发生冲突时会自动更换端口。默认是 false。
    • guest (int):要暴露给宿主机的虚拟机的端口。可以是任何端口。
    • guest_ip (string):要绑定到端口转发的虚拟机的 IP。如果没有设置这个选项,端口会使用所有的 IP 接口。默认是空。
    • host (int):用于访问虚拟机的宿主机的端口。必须大于 1024,除非 vagrant 以 root 身份运行(不建议)。
    • host_ip (string):要绑定到端口转发的宿主机的 IP。如果没有指定,会绑定到所有的 IP。默认是空。
    • protocol (string):“udp”或“tcp”之一。指定端口转发允许的协议。默认是“tcp”。
    • id (string):规则名称,VirtualBox 中可见。默认是“protocol”“guest”(例如:“tcp123”)。

    3. 端口转发的协议

    默认情况下,所有定义的端口都只转发 TCP 协议。可以通过指定 protocol: 'udp' 来处理 UDP 流量。如果给定的端口需要同时监听两种协议,则必须将端口定义两次:

    Vagrant.configure("2") do |config|
      config.vm.network "forwarded_port", guest: 2003, host: 12003, protocol: "tcp"
      config.vm.network "forwarded_port", guest: 2003, host: 12003, protocol: "udp"
    end

    4. 端口冲突和纠正

    运行多个 Vagrant 机器以在不知情的情况下创建相互冲突的端口转发定义(例如,将两个独立的 Vagrant 项目转发到端口 8080)是很常见的。Vagrant 包含内置机制来自动检测并更正它。

    端口冲突检测始终进行。Vagrant 不允许使用主机上正在接受流量或连接的端口进行端口转发。

    每个端口转发的端口冲突自动纠正功能必须手动开启,因为它发生时通常会令人惊讶,并可能导致 Vagrant 用户认为端口未正确转发。启用自动纠正很简单:

    Vagrant.configure("2") do |config|
      config.vm.network "forwarded_port", guest: 80, host: 8080,
        auto_correct: true
    end

    auto_correct: true 告诉 Vagrant 自动纠正任何端口冲突。在 vagrant upvagrant reload 期间,Vagrant 会输出关于端口冲突检测的信息,并自动纠正,留意这些信息并根据提示进行下一步(使用端口纠正后分配的新端口)。

  • 相关阅读:
    【转】Flask安装
    【转】Mac OS X 中 Zsh 下 PATH 环境变量的正确设置
    【转】谁说Vim不是IDE?(二)
    【转】谁说Vim不是IDE?(三)
    【转】谁说Vim不是IDE?(一)
    【转】终极 Shell
    【转】开始使用Mac OS X——写给Mac新人
    【转】如何实现一个malloc
    《神经网络和深度学习》系列文章十六:反向传播算法代码
    Vue.js之生命周期
  • 原文地址:https://www.cnblogs.com/kika/p/10851661.html
Copyright © 2020-2023  润新知