virtualbox+vagrant学习-3-Vagrant Share-1-简介
Vagrant Share
通过 ngrok 内网穿透功能实现让全世界人可以访问虚拟机的服务
Vagrant Share允许你与世界上的任何人共享您的Vagrant环境,几乎支持你在任何网络环境中使用一个简单命令vagrant share来在你的vagrant环境中直接实现协作。
Vagrant Share主要有三种模式或特征。这些特性并不是相互排斥的,这意味着它们的任何组合在任何给定的时间都会处于活动状态:
- HTTP sharing :HTTP共享将创建一个你可以传给任何人的URL。这个URL将直接路由到您的Vagrant环境。使用这个URL的人不需要安装Vagrant,因此它可以与任何人共享。这对于测试webhook或者向客户、团队成员、经理等展示您的工作非常有用。
- SSH sharing:SSH共享将允许任何人通过在远程端运行Vagrant connect—SSH立即访问你的Vagrant环境。这对于结队编程、调试运维问题等非常有用。
- General sharing:通过在远程端运行Vagrant连接,任何人都可以访问Vagrant环境的任何公开端口。如果远程端希望像访问局域网上的计算机一样访问你的Vagrant环境,这是非常有用的。
Installation
Vagrant Share是必须安装的Vagrant插件。它不包括在Vagrant系统包中。
首先查看本地的插件信息:
userdeMBP:~ user$ vagrant plugin list
No plugins installed.
可见本地并没有安装插件
然后运行vagrant share,返回的是帮助信息,说明没有安装vagrant share:
userdeMBP:~ user$ vagrant share Usage: vagrant [options] <command> [<args>] -v, --version Print the version and exit. -h, --help Print this help. Common commands: ......
要安装Vagrant Share插件,运行以下命令:
userdeMBP:~ user$ vagrant plugin install vagrant-share Installing the 'vagrant-share' plugin. This can take a few minutes... Fetching: vagrant-share-1.1.9.gem (100%) Installed the plugin 'vagrant-share (1.1.9)'!
安装成功,这时再查看本地的插件信息,就能够看见该插件了:
userdeMBP:~ user$ vagrant plugin list vagrant-share (1.1.9, global)
然后运行vagrant share也可以成功运行起来了:
userdeMBP:~ user$ vagrant share Vagrant Share now defaults to using the `ngrok` driver. The `classic` driver has been deprecated. For more information about the `ngrok` driver, please refer to the documentation: https://www.vagrantup.com/docs/share/ ==> default: Detecting network information for machine... The Vagrant environment you're attempting to share appears to not be running. Please verify that it is running and try again.
上面因为没有将虚拟机运行起来,也还没有配置端口等,所以没能成功,之后继续
⚠️Vagrant Share需要使用ngrok
ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放
为什么要使用ngrok:
因为有时候需要临时地将一个本地的Web网站部署到外网,以供他人体验评价或协助调试,那么我们就需要:
- 在一台能够运行与外网的服务器上部署网站所需要的环境
- 将网站部署到该服务器上
- 调试成功后,将网站从服务器上删除
但是当你使用了ngrok后,就能够直接在本机上运行你的Web网站来让它们调试,即:
- 注册下载ngrok,得到一串授权码
- 运行命令:
ngrok -authtoken 授权码 指定端口,如80
80是你本地Web服务的端口,之后ngrok就会记住你的授权码
- 接下来再直接运行:
ngrok 80
- 最后就会得到一串网址,通过这个网址就可以访问你本地的Web服务了
详细内容可见本博客: