文档章节

vagrant折腾记,ssh无法登陆?虚拟机添加独立ip无法ping通?

吾爱
 吾爱
发布于 2016/08/17 11:55
字数 522
阅读 475
收藏 1

环境概述

  1. vagrant1.8.4
  2. virtualbox 4.3
  3. 宿主机系统:centos7.2
  4. 虚拟机box: centos/7

初始化

vagrant box add centos/7
mkdir vm1
cd vm1
vagrant init centos/7

启动

vagrant up

ok成功报错:"Warning: Authentication failure. Retrying... "

原因:ssh公钥密钥不匹配,修改 Vagrantfile ,添加

config.ssh.insert_key = false

然后浏览器打开 https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant 复制所有字符串到 $VAGRANT_HOME/insecure_private_key 里面原来的内容都删掉,其中 $VAGRANT_HOME 是环境变量,默认安装的话就改成 ~/.vagrant.d/insecure_private_key

这样以后再执行 vagrant reload 或者 vagrant ssh 应该就可以登陆进虚拟机了。

添加独立ip

首先,修改 Vagrantfile ,找到这行

#config.vm.network "public_network"

修改为

config.vm.network "public_network", ip: "xxx.xxx.xxx.xxx", :bridge => "em1"

说明:xxx.xxx.xxx.xxx 是ip地址,根据自己情况替换, :bridge 是桥接网卡名称,你可以根据 ip addr 命令结果找到,一般就是宿主机ip对应的那个网卡。

保存Vagrantfile, 执行 vagrant reload ,进虚拟机可以通过 ip addr 查看ip是否已经绑定。

测试ip是否有效,先从 宿主机 ping xxx.xxx.xxx.xxx ,如果能ping通 说明有效。

再从 外部网络,比如我自己电脑,只要跟服务器不在一个局域网内,再ping 一下,发现ping不通,何解?

原因是 vagrant 会创建一个默认网卡 eth0 ,绑定的是内网地址 10.0.xx.xx ,默认网关也是通过 10.0.xx.xx 这种内网地址,导致外部请求无法进来。

解决办法: 首先,在宿主机上执行 ip route ,可以看到第一行有一个

default via xxx.xxx.xxx.xxx dev em1

这个 xxx.xxx.xxx.xxx 就是公网网关地址,复制它。

修改 Vagrantfile , 添加一行:

config.vm.provision "shell",inline: "ip route add default via xxx.xxx.xxx.xxx"

保存,执行命令 vagrant reload --provision ,执行成功后,可以登陆虚拟机执行 ip route ,发现第一行多了 default via xxx.xxx.xxx.xxx ,再从外部网络 ping 虚拟机,也就可以了。

此时虚拟机就相当于一台服务器了,我们可以直接通过ssh远程管理,随便怎么折腾吧。

© 著作权归作者所有

共有 人打赏支持
吾爱
粉丝 143
博文 270
码字总数 91230
作品 0
后端工程师
私信 提问
如何通过vagrant(Virtualbox)修改VM adapter 下promiscuous mode?

我使用vagrant(virtualbox)环境,一台VM添加public network,Vagantfile如下所示: vagrant ssh登录VM,发现已通过DHCP获取到IP,但是外部网络(同网段)却无法与VM该IP互ping通,去Virtu...

yiranshaqiu
2015/07/10
526
0
Openstack Dashboard 操作指南

Openstack Dashboard 操作指南 这里我大概把我们能用到的基本操作做一个说明。 使用admin账户登陆进去之后,看到的页面应该是这样。这里如果是非admin账户的话,左边就只有projet标签页,而没...

CdTech
2014/04/30
0
0
vagrant+virtualbox使用小记

virtualbox是类似vmware workstation的虚拟机软件,而且是开源的,支持多平台,在win10上也能顺畅运行。win10上安装vagrant能在终端xshell上像linux一样命令行操作,也便于开发环境的切换,很...

hiwill
2018/09/16
0
0
VirtualBox的四种网络接入模式

VirtualBox虚拟机网络设置 1、NAT 网络地址转换模式(Network Address Translation) 2、Bridged Adapter 桥接模式 3、Internal 内部网络模式 4、Host-only Adapter 主机模式 一、原理 1、网络...

pengloo53
2013/10/18
0
0
openstack kilo版本,虚拟机无法ping通外网

一、简介 第二次搭建Openstack环境,此次并非在自己的VM虚拟机上搭建,环境搭建过程中,出现各种错误,此处只为记录下: 二、测试环境 硬件:两台X86的服务器,6块网卡 系统:Centos7.2的系统...

哓竹
2016/05/18
151
0

没有更多内容

加载失败,请刷新页面

加载更多

Coding and Paper Letter(六十四)

资源整理。 1 Coding: 1.交互式瓦片编辑器。 tile playground 2.R语言包autokeras,autokeras的R接口。autokeras是一个开源的自动机器学习的软件。 autokeras 3.斯坦福网络分析平台,用于网络...

胖胖雕
37分钟前
0
0
最简单的cd命令是个大坑!

BASH Shell 是大多 Linux 发行版的默认 shell,BASH 有一些自己的内置命令,cd 就是其中的一个。 在centos6里面,系统中不存在 cd 的二进制文件。但是你仍然可以运行该命令,这是因为 cd 是 ...

gaolongquan
48分钟前
1
0
spring获取bean的几种方式

使用jdk:1.8、maven:3.3.3 spring获取Bean的方式 pom.xml文件内容: <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="......

Vincent-Duan
55分钟前
2
0
一段话系列-Linux中IO的同步、异步、阻塞、非阻塞

首先我们框定一下背景,我们探讨的是Linux系统下的IO模型。 同步和异步是针对内核操作数据而言的,同步是指内核串行顺序操作数据,异步是指内核并行(或并发)操作数据,然后通过回调的方式通...

EasyProgramming
59分钟前
5
0
好程序员web前端分享主流CSS image比较

好程序员web前端分享主流CSS image比较在还原设计图的时候,难免会碰到一些样式图片的引用。如何来对这些图片做优化呢?本文简单的梳理了一下目前几种比较常用的使用方式。   注: 1. 有更好...

好程序员IT
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部