156. vagrant + virturalbox 环境
vagrant 安装
下载地址
安装
添加 box 到vagrant
1
vagrant box add <box_name> <box_path>
<box_name>
: 为 box 取的名字,供后续创建虚拟机<box_path>
: vagrantbox 所在地址
查看是否添加成功
1
vagrant box list
创建虚拟机
创建一个目录, 然后在该目录下执行以下命令
1
vagrant init <box_name>
会生成一个
Vagrantfile
文件修改
Vagrantfile
文件配置启动虚拟机
1
vagrant up
进入虚拟机
1
vagrant ssh
- 默认用户:
vagrant
- 用户密码:
vagrant
- 默认用户:
关闭虚拟机
1
vagrant halt
PS:
- 每次启动虚拟机需要使用命令行(cmd)进入
Vagrantfile
文件所在的目录,然后再使用vagrant up
命令启动虚拟机。- 关机同理,使用命令行(cmd)进入
Vagrantfile
文件所在的目录,然后再使用vagrant halt
命令关闭虚拟机。
virtualbox 安装
下载地址
安装教程
双击打开, 默认安装就可以
Ubuntu镜像地址
fate 官方测试使用的版本为 18.04
vagrant 系统外部可访问
win10系统下的设置
step1. 设置防火墙入站规则
进入windows 防火墙
控制面板 -> 系统和安全 -> Windows Defender 防火墙 -> 高级设置 -> 入站规则 -> 文件和打印机共享(回显请求 - ICMPv4-In)
右键属性 -> 作用域 -> 远程IP地址 -> 下列 IP 地址 -> 添加
我使用的是
此IP地址或子网
目的: 仅允许部分用户使用
如添加:
10.132.0.0/16
测试是否成功配置
即查看是否可以 ping 通
step2. 设置 vagrantfile 为桥接网络
查看名称或接口索引
方法1
1
netsh interface ipv4 show interfaces
我的这里是
WLAN
方法2 (未测试)
- 打开”控制面板”。您可以在开始菜单中搜索”控制面板”,然后选择相应的结果打开它。
- 在控制面板窗口中,将视图设置为”小图标”或”大图标”,以便更轻松找到所需的项目。
- 找到并点击”网络和共享中心”。
- 在左侧导航栏中,点击”更改适配器设置”,以打开网络连接设置。
- 在网络连接设置中,您将看到可用的网络适配器列表。查找您希望用作桥接网络的适配器,例如您的有线网卡或无线网卡。
- 右键单击所选适配器,并选择”属性”。
- 在适配器属性对话框中,找到并选中”Internet 协议版本 4 (TCP/IPv4)”,然后点击”属性”按钮。
- 在”Internet 协议版本 4 (TCP/IPv4) 属性”对话框中,您可以看到适配器的IP地址配置。请注意当前配置的详细信息,以便在后续步骤中进行参考。
- 在同一对话框中,点击”高级”按钮。
- 在”高级 TCP/IP 设置”对话框中,切换到”IP 设置”选项卡。
- 在”IP 设置”选项卡中,您将看到网卡的名称和接口索引。记下名称或接口索引,这将用于Vagrantfile中的网络配置。
设置
config.vm.network "public_network", bright: "WLAN"
bright
: 就是上面的“查看名称或接口索引 ”启动/重启虚拟机:
vagrant up
/vagrant reload
查看ip地址:
ifconfig
, 我这里的是10.132.22.5
设置Vigrant:
config.vm.network "public_network", bright: "WLAN", ip: "10.132.22.5"
也可以加入子网掩码, 如
config.vm.network "public_network", bridge: "WLAN", netmask: "255.255.0.0", ip: "10.132.22.5"
step3. 更改 vagrant 密码
passwd
或
1 | sudo su |
PS: 更多信息查看 Ubuntu 处理方法
FAQ
- 华硕主板打不开virtualbox虚拟机的ubuntu安装系统 (虚拟机VirtualBox异常退出解决办法)
- vagrant ssh 连接 remote host identification has changed
- 解决vagrant ssh登录时permission deny的问题
华硕主板打不开virtualbox虚拟机的ubuntu安装系统 (虚拟机VirtualBox异常退出解决办法)
vagrant 启动失败 There was an error while executing VBoxManage, a CLI used by Vagrant for controlli……
进入 BIOS 下, 开启 Intel (VMX) 虚拟化技术

vagrant ssh 连接 remote host identification has changed

找到.ssh
目录,下面有一个known_hosts
文件,删除 ~/.ssh/known_hosts
文件,或者如果你可以判断出known_hosts
中原ssh服务器的公钥,删去那部分,
解决vagrant ssh登录时permission deny的问题
进入虚拟机
方法1:
vagrant ssh
在
Vagrantfile
文件夹下打开cmd
, 运行命令vagrant ssh
方法2: virtualbox
打开
Vagrantfile
中的 virtualbox 显示1
2
3config.vm.provider "virtualbox" do |vb|
vb.gui = true # 启动机器时显示 VirtualBox GUI
end然后运行
vagrant up
(虚拟机处于关机状态) 或vagrant reload
(虚拟机处于开机状态)
更改
/etc/ssh/sshd_config
文件下的PasswordAuthentication no
改为PasswordAuthentication yes
重启虚拟机
vagrant reload
不在一个小局域网,而在同一个大局域网
那就把局域网扩大一些, 可以通过设置子网掩码来设置
临时设置子网掩码
查看网络:
ifconfig
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255
inet6 fe80::3b:7bff:feb7:3b2d prefixlen 64 scopeid 0x20<link>
ether 02:3b:7b:b7:3b:2d txqueuelen 1000 (Ethernet)
RX packets 523 bytes 61926 (61.9 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 387 bytes 70310 (70.3 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.10.32.32 netmask 255.255.255.0 broadcast 10.10.32.255
inet6 240c:c983:5:2b48::813 prefixlen 128 scopeid 0x0<global>
inet6 240c:c983:5:2b48:a00:27ff:feab:56e5 prefixlen 64 scopeid 0x0<global>
inet6 fe80::a00:27ff:feab:56e5 prefixlen 64 scopeid 0x20<link>
ether 08:00:27:ab:56:e5 txqueuelen 1000 (Ethernet)
RX packets 1089 bytes 184808 (184.8 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 85 bytes 12017 (12.0 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0设置子网
1
sudo ifconfig enp0s8 10.10.32.32 netmask 255.255.0.0