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..gem (%)
Installed the plugin 'vagrant-share (1.1.9)'!

安装成功,这时再查看本地的插件信息,就能够看见该插件了:

userdeMBP:~ user$ vagrant plugin list
vagrant-share (1.1., 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 
  • 最后就会得到一串网址,通过这个网址就可以访问你本地的Web服务了

详细内容可见本博客:

ngrok反向代理学习-1-简介

virtualbox+vagrant学习-3-Vagrant Share-1-简介的更多相关文章

  1. virtualbox+vagrant学习-4-Vagrantfile-3-Minimum Vagrant Version

    Minimum Vagrant Version 可以在Vagrantfile中指定一组vagrant版本需求,以强制人们使用带有Vagrantfile文件的vagrant特定版本.这可以帮助解决使用带 ...

  2. virtualbox+vagrant学习-2(command cli)-26-vagrant share命令

    Share share命令初始化了一个vagrant share会话,允许你与世界上任何一个人共享vagrant环境,允许在几乎任何网络环境中直接在vagrant环境中进行协作. 你可以在本博客的vi ...

  3. virtualbox+vagrant学习-1-环境安装及vagrantfile的简单配置-Mac系统

    在学习docker-machine时,发现需要使用到虚拟化平台,所以选择了使用virtualBox. 然后后面发现需要使用vagrant来在mac系统中作为虚拟机管理软件,所以下面将会简述我自己学习使 ...

  4. virtualbox+vagrant学习-3-Vagrant Share-2-HTTP Sharing

    HTTP Sharing Vagrant Share可以创建一个可公开访问的URL端点来访问在Vagrant环境中运行的HTTP服务器.这被称为“HTTP共享”,在使用Vagrant Share时默认 ...

  5. virtualbox+vagrant学习-3-Vagrant Share-3-SSH Sharing

    SSH Sharing vagrant share通过向vagrant share提供--SSH标志,使远程SSH访问vagrant环境变得非常容易. 如果你想让同事访问你的SSH,以便对ops问题进 ...

  6. virtualbox+vagrant学习-3-Vagrant Share-4-Vagrant Connect

    Vagrant Connect vagrant可以共享到vagrant环境的任何或每个端口,而不仅仅是SSH和HTTP.“vagrant connect”命令为连接人员提供一个静态IP,他们可以使用该 ...

  7. virtualbox+vagrant学习-2(command cli)-7-vagrant login命令

    Login ⚠️该命令已经弃用了,别名为vagrant cloud auth login.看本博客的 格式: vagrant cloud auth login [options] 登录命令用于使用Ha ...

  8. virtualbox+vagrant学习-2(command cli)-2-vagrant cloud命令--有问题

    Cloud https://www.vagrantup.com/docs/cli/cloud.html 命令: vagrant cloud 这是用来管理与vagrant相关的任何东西的命令. 该命令的 ...

  9. [转] vagrant学习笔记 - provision

    [From]  https://blog.csdn.net/54powerman/article/details/50684844 从字面上来看,provision是准备,实现的功能是在原生镜像的基础 ...

  10. vagrant学习笔记

    什么是vagrant简而言之,vagrant就是一个用来管理虚拟机文件的工具为什么要使用vagra如果经常玩虚拟机的话,就会知道,当你需要新建一个虚拟环境的时候,总是要重复的安装操作系统,以及操作系统 ...

随机推荐

  1. dubbo直连代码示例

    我们都知道dubbo是个分布式的RPC工具,等以后有时间能力允许的话,会好好写下dubbo,当在测试环境我们联调或想指定机器执行之时,是不需要ZK这类调度工具的,当然dubbo也提供了配置的解决方案, ...

  2. Yii中文乱码 解决

    需要将config/main.php改成utf-8编码即可

  3. LOJ #2985. 「WC2019」I 君的商店

    传送门 搬题解QwQ 首先最大值一定为 \(1\),直接扫一遍两两比较 \(O(2N)\) 求出最大值 设最大值位置为 \(a\),对于任意两个没有确定的位置 \(x,y\) 询问 \([a,x+y] ...

  4. Vue 2.0 pagination分页组件

    最近写了一个分页组件,效果如下图: f-pagination.js文件 Vue.component('f-pagination',{ template:'<div class="fPa ...

  5. 利用css3制作毛玻璃的效果

    忙里偷闲,最近又在看许多比较酷炫的效果.现在基于jquery的插件比较多,但是很多插件的兼容性不是太好,所以原生的才是王道.在日常当中,毛玻璃已经不常见了,那是一个很久远年代的东西了.诺,下面就是毛玻 ...

  6. druapl7:"Notice: A non well formed numeric value encountered 在 _hierarchical_select_hierarchy_generate() "

    这个是很诡异的一个Notice错误提醒,因为我在Drupal7.54+PHP7.0.1的环境下,并没有报这个错.但是我再Drupal7.59+PHP7.1.7的环境下就报错了.很奇怪,按照报错信息bi ...

  7. 【node】node的核心模块---http模块,http的服务器和客户端

    nodejs事件机制 ##### http服务器和客户端 node.js标准库提供了http模块,其中封装了一个高效的http服务器和一个简易的http客户端 HTTP服务器 1. http.crea ...

  8. Hive安装与应用过程

    1.  参考说明 参考文档: https://cwiki.apache.org/confluence/display/Hive/GettingStarted 2.  安装环境说明 2.1.  环境说明 ...

  9. CSS的设计模式

    什么是设计模式? 曾有人调侃,设计模式是工程师用于跟别人显摆的,显得高大上:也曾有人这么说,不是设计模式没用,是你还没有到能懂它,会用它的时候. 先来看一下比较官方的解释:“设计模式(Design p ...

  10. 更新oracle数据库表如何实现主键自增长

     在数据库中实现主键自动增长有利于我们做数据插入操作,在SQL SERVER上创建表时可以在int类型的字段后加上identity(1,1),该字段就会从1开始,按照+1的方式自增,将这个字段设置 ...