vagrant和vitrulbox创建好的的虚拟机如何访问外网和使用xshell或者secureCRT等工具连接
1.使用vagrant和vitrulbox安装虚拟机
普通安装linux虚拟机太麻烦,可以利用vagrant可以帮助我们快速地创建一个虚拟机。主要装了vitualbox,vagrant可以帮助我们快速创建出一个虚拟机。他有一个镜像仓库。
去https://www.vagrantup.com/ 下载vagrant安装,安装后重启系统。cmd中输入vagrant有版本代表成功了。
输入vagrant init centos/7
,即可初始化一个centos7系统。(注意这个命令在哪个目录下执行的,他的Vagrantfile就生成在哪里)
vagrant up
启动虚拟机环境。
启动后出现default folder:/cygdrive/c/User/… =>/vagrant。然后ctrl+c退出
前面的页面中有ssh账号信息。
vagrant ssh
就会连上虚拟机。可以使用exit退出
下次使用也可以直接vagrant up直接启动,但要确保当前目录在C:/用户/ 文件夹下,他下面有一个Vagrantfile,不过我们也可以配置环境变量。
启动后再次
vagrant ssh
连上即可
1.2windows和虚拟机可以互相ping通。
方式1:在虚拟机中配置静态ip。
方式2:更改Vagrantfile更改虚拟机ip,修改其中的config.vm.network "private_network",ip:"192.168.56.10"
,这个ip需要在windows的ipconfig中查到vitualbox的网卡ip,然后更改下最后一个数字就行(不能是1)。配置完后重启虚拟机。在虚拟机中ip addr
就可以查看到地址了。互相ping也能ping通。
1.3 vagrant 安装centos很慢怎么办?
1.3.1 vagrant init centos/7
命令执行很慢或者失败可以将centos7的downloading地址复制到浏览器下载
1.3.2.执行命令 vagrant box add centos/7 下载后的.box路径
例如: vagrant box add centos/7 F:\download/CentOS-7-x86_64-Vagrant-2004_01.VirtualBox.box 添加本地box
add后面的centos/7和我上面初始化的名字一样,一定要一样哦
1.3.3.然后vagrant up 启动
2.访问外网
2.1.首先使用vagrant ssh连接到虚拟机
2.2.使用ip addr找到vagrant创建的网卡
如下我这里是eth1
[root@localhost network-scripts]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 52:54:00:4d:77:d3 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global noprefixroute dynamic eth0
valid_lft 77491sec preferred_lft 77491sec
inet6 fe80::5054:ff:fe4d:77d3/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:f4:bc:12 brd ff:ff:ff:ff:ff:ff
inet 192.168.56.10/24 brd 192.168.56.255 scope global noprefixroute eth1
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fef4:bc12/64 scope link
valid_lft forever preferred_lft forever
1.3.编辑ifcfg-eth1在ifcfg-eth1中加入GATEWAY和DNS后保存
vi /etc/sysconfig/network-scripts/ifcfg-eth1
编辑后的ifcfg-eth1文件内容如下
#VAGRANT-BEGIN
# The contents below are automatically generated by Vagrant. Do not modify.
NM_CONTROLLED=yes
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.56.10
GATEWAY=192.168.56.1
DNS1=114.114.114.114
DNS2=8.8.8.8
NETMASK=255.255.255.0
DEVICE=eth1
PEERDNS=no
#VAGRANT-END
2.4.执行 service network restart 重启网络
2.5.测试 执行命令 ping lskyf.com 当然ping baidu.com或其他外网网址也可以。如下所示表明外网访问成功
[root@localhost network-scripts]# ping lskyf.com
PING lskyf.com (120.78.91.62) 56(84) bytes of data.
64 bytes from 120.78.91.62 (120.78.91.62): icmp_seq=1 ttl=51 time=14.1 ms
64 bytes from 120.78.91.62 (120.78.91.62): icmp_seq=2 ttl=51 time=12.3 ms
64 bytes from 120.78.91.62 (120.78.91.62): icmp_seq=3 ttl=51 time=15.2 ms
64 bytes from 120.78.91.62 (120.78.91.62): icmp_seq=4 ttl=51 time=12.0 ms
64 bytes from 120.78.91.62 (120.78.91.62): icmp_seq=5 ttl=51 time=13.0 ms
3.如何使用xshell或者secureCRT等工具连接有两种方式。
3.1方式一:使用vagrant创建的private_key登录
3.1.1打开cmd执行vagrant ssh-config命令-->查看private_key位置,如下所示IdentityFile的后面那一串就是我的private_key位置
C:\Users\lqm>vagrant ssh-config
Host default
HostName 127.0.0.1
User vagrant
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile C:/Users/lqm/.vagrant/machines/default/virtualbox/private_key
IdentitiesOnly yes
LogLevel FATAL
3.1.3.打开secureCRT-->文件-->快速连接-->输入主机名: 192.168.56.10-->输入用户名:vagrant -->选择公钥-->点击属性-->选择使用会话公钥设置(选择上面private_key位置的位置)-->点击确定-->点击连接
3.2方式二:使用用户名密码连接
3.2.1使用vagrant ssh连接虚拟机并执行su root切换到root用户
3.2.3编辑文件执行命令 vi /etc/ssh/sshd_config 去掉PasswordAuthentition前的注释,将PasswordAuthentication 后的no改为yes 再添加 PermitRootLogin yes
修改前
。。。。。
# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no
#PasswordAuthentication no
。。。。
修改后
。。。。。
# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no
PermitRootLogin yes
PasswordAuthentication yes
。。。。
注意:本文归作者所有,未经作者允许,不得转载