windows10 下访问 virtualbox 虚拟机的linux15.10/16.04 系统 及 用 putty 访问虚拟机的配置

时间:2022-12-24 08:17:35

参考: 

http://www.doc88.com/p-915707596190.html --- 安装samba

http://my.oschina.net/u/2260265/blog/405598?fromerr=eAmxiwAB

日常工作中,常常会用虚拟机,在里面安装Server,搭建服务端环境供开发调试,这种使用场景一般都需要虚拟机能够正常访问外部网络,同时宿主机必须可以访问虚拟机。在Virtualbox中,虚拟机访问外部网络一般是使用配置起来最简单的NAT模式,但纯NAT模式下,宿主机不能访问虚拟机,必须使用Bridged或者Host-only模式才可以。在这两个模式下,虚拟机都可以获得一个可用的IP地址,宿主机通过该IP地址即可访问虚拟机。

关于Virtualbox的网络接入模式,不了解的同学可以自行Google一下,这部分资料其实都挺齐全的,这篇文章主要是简单的介绍(记录)一下在Virtualbox虚拟机中使用NAT模式访问外部公共网络(互联网),再结合Host-only模式,令宿主机同时可以用虚拟机的静态IP地址访问虚拟机的配置实现。该配置相对于单纯使用Bridged模式的好处在于:即使没有外部公用网络,宿主机也可以无障碍的访问虚拟机,不会影响使用。

在Bridged模式下,虚拟机和宿主机处于同等地位,就像是一台真实主机一样存在于局域网中,可以分配到一个网络中独立的IP,所有网络功能都和在网络中的真实机器一样,网络中的其它机器(包括宿主机)也可以访问到这台虚拟机。同时,如果网络断开,即便虚拟机和宿主机其实是在一台物理机器上,宿主机也不能够访问虚拟机。而Host-only模式,可以理解为Virtualbox在宿主机中模拟出一张专供虚拟机使用的网卡,所有虚拟机都是连接到该网卡上的,虚拟机可以通过该网卡IP访问宿主机,同时Virtualbox提供一个DHCP服务,虚拟机可以获得一个内部网IP,宿主机可以通过该IP访问虚拟机。如果单纯使用Host-only模式,则虚拟机不能连接外部公共网络。

在有外部网络的情况下,假如需要将虚拟机开放给网络中的其它机器访问,比如让同事连上虚拟机做开发测试等工作,那么就可以直接使用Bridged模式,该模式也仅需要占用公共网络中的一个IP地址,但日常使用环境中,有时候不一定有公共网络可以用,假如使用Bridged模式,则虚拟机连不上,开发工作也做不了,此时Host-only模式就是一个不错的选择,若是再配合NAT模式,则外部公共网络可用时,虚拟机也可以访问外部公共网络。

下面简单介绍下使用这几个模式时需要做的相关配置。

 

在我的机器(Windows 10)上安装了VirtualBox,在VirtualBox安装了ubuntu,我要访问网络ubuntu,VirtualBox安装后会在Windows 7分配一个网卡——虚拟网卡而已,在控制面板\网络和 Internet\网络连接中可以看到 VirtualBox Host-Only Network,这个网卡的IP一般是:

windows10 下访问 virtualbox 虚拟机的linux15.10/16.04 系统 及 用 putty 访问虚拟机的配置

通常情况下,这个网卡没有启用。

本地网络:

windows10 下访问 virtualbox 虚拟机的linux15.10/16.04 系统 及 用 putty 访问虚拟机的配置

配置使虚拟机可以上网:
windows10 下访问 virtualbox 虚拟机的linux15.10/16.04 系统 及 用 putty 访问虚拟机的配置

右击 VirtualBox Host-Only Network ——>属性,在属性对话框中将 VirtualBox_Bridged_Networking_Driver选择上。或者

windows10 下访问 virtualbox 虚拟机的linux15.10/16.04 系统 及 用 putty 访问虚拟机的配置

 

这是确认 VirtualBox Host-Only Network 网卡能工作。这样就可以左虚拟机中访问网络来,跟宿主机一样。 下面是需要从宿主机访问虚拟机的一些配置。

1. Samba软件包的安装

使用源安装,在终端中输入如下命令:

#sudo apt-get install samba
#sudo apt-get install smbclient

 

启动Samba服务器只需执行如下命令:
#sudo /etc/init.d/samba start

 

Samba服务器主要配置文件为/etc/samba/smb.conf

 

首先在Virtualbox中的全局配置(呼出快捷键ctrl+g)界面的网络配置中,点击右侧添加按钮,增加一个Host-only网络。查看该网络的详情,可以看到:

windows10 下访问 virtualbox 虚拟机的linux15.10/16.04 系统 及 用 putty 访问虚拟机的配置

 

可以看出,该网络是192.168.56.0,可供分配使用的IP地址是192.168.56.101 - 192.168.56.254。

打开虚拟机的网络配置,将网卡1的连接方式选为“网络地址转换(NAT)”,网卡2的连接方式选为“仅主机(Host-only)适配器”,如下图所示:

windows10 下访问 virtualbox 虚拟机的linux15.10/16.04 系统 及 用 putty 访问虚拟机的配置

(其中混杂模式选择 拒绝 或者选择 全部允许,在宿主机输入虚拟机的IP地址访问都可以虚拟机, 晕了)

假如使用Bridged模式,则需要将连接方式选为“桥接网卡”。

保存后,启动虚拟机,虚拟机以Ubuntu server 12.04为例,打开配置文件 /etc/network/interfaces 加入如下配置:

# The loopback network interface auto lo iface lo inet loopback 
# The primary network interface auto eth0 iface eth0 inet dhcp  
# Virtualbox Host-only modeauto 
eth1 iface 
eth1 inet static 
address 192.168.56.190 
netmask 255.255.255.0 
network 192.168.56.0  
# Virtualbox Bridged mode
#auto eth1
#iface eth1 
inet static 
#address 192.168.0.190 
#netmask 255.255.255.0 
#gateway 192.168.0.1

查看我的IP:

 windows10 下访问 virtualbox 虚拟机的linux15.10/16.04 系统 及 用 putty 访问虚拟机的配置

我的IP 配置如下:

windows10 下访问 virtualbox 虚拟机的linux15.10/16.04 系统 及 用 putty 访问虚拟机的配置

 

16.04 版本设置结果如下:

windows10 下访问 virtualbox 虚拟机的linux15.10/16.04 系统 及 用 putty 访问虚拟机的配置

IP 显示如下:

windows10 下访问 virtualbox 虚拟机的linux15.10/16.04 系统 及 用 putty 访问虚拟机的配置

 

windows10 下访问 virtualbox 虚拟机的linux15.10/16.04 系统 及 用 putty 访问虚拟机的配置

网卡2 一定要把接入网线那个选项勾上,否则在 win+r 之后输入 \\192.168.56.190  是没法打开的。可以通过ping 看看是否可以访问:

windows10 下访问 virtualbox 虚拟机的linux15.10/16.04 系统 及 用 putty 访问虚拟机的配置

(在 16.04 中可以 ping 通,但是就是不能从宿主机访问虚拟机 , 好奇怪)

windows10 下访问 virtualbox 虚拟机的linux15.10/16.04 系统 及 用 putty 访问虚拟机的配置

 

该配置将虚拟机在内部网络中的IP地址设置为静态分配(192.168.56.190),方便宿主机在hosts中绑定该IP访问虚拟机。保存配置后,执行如下命令重启网络服务:

$ sudo /etc/init.d/networking restart

 

即可实现虚拟机使用NAT通过宿主机来正常访问外部网络,同时因为使用了Host-only模式,宿主机可以通过虚拟机在内部网络的IP地址访问虚拟机,即使外部网络不可

用也不影响宿主机对虚拟机的访问。

 

现在可以访问虚拟机来,但是还不能访问文件夹。在 根目录下创建一个 share 文件夹。 mkdir share 改变文件夹权限 chmod -R 777 share / chmod 777 ./share

这个就可以在windows 读写这个文件夹。或者可以在 ubuntu 里选择右键  -> 属性

windows10 下访问 virtualbox 虚拟机的linux15.10/16.04 系统 及 用 putty 访问虚拟机的配置

 

 

windows10 下访问 virtualbox 虚拟机的linux15.10/16.04 系统 及 用 putty 访问虚拟机的配置

 

windows10 下访问 virtualbox 虚拟机的linux15.10/16.04 系统 及 用 putty 访问虚拟机的配置

 

windows10 下访问 virtualbox 虚拟机的linux15.10/16.04 系统 及 用 putty 访问虚拟机的配置

 

这样就可以在宿主机访问虚拟机了,如果还不行,可以重新执行下面命令:

#sudo apt install samba
#sudo apt install smbclient

#sudo /etc/init.d/samba start

启动Samba服务器.

 

通过putty 访问 虚拟机(相当于服务器):    (参考 :http://www.myhack58.com/Article/60/63/2012/35323.htm)

首先可以ping 通服务器,如果还不能登陆重新安装并启动下面server(Ubuntu缺省安装了openssh-client)

sudo apt-get install openssh-server    (我在 16.04 中没有安装这个也可以 ping 得通)

 

如果现在打开 putty 连接虚拟机过一会出现 no active ,这个时候需要检查一下你连接的这个 IP 在虚拟机中是否允许,可以在虚拟机通过 ifconfig 查看:

比如下面这样是不行的:

windows10 下访问 virtualbox 虚拟机的linux15.10/16.04 系统 及 用 putty 访问虚拟机的配置

下面这样就可以了: 只要在虚拟机的网络图标上右键选择启动网络2就可以了 (这个是静态网络,跟宿主机通信的)

windows10 下访问 virtualbox 虚拟机的linux15.10/16.04 系统 及 用 putty 访问虚拟机的配置

 

开启ssh-server服务 : /etc/init.d/ssh start  (如果没有安装这个,打开 putty 连接到虚拟机的时候立马出现错误)

ssh-server配置文件位于/ etc/ssh/sshd_config,在这里可以定义SSH的服务端口,默认端口是22,你可以自己定义成其他端口号,如222。然后重启SSH服务:

sudo /etc/init.d/ssh resart

windows10 下访问 virtualbox 虚拟机的linux15.10/16.04 系统 及 用 putty 访问虚拟机的配置

 

putty 配置参考 :  http://www.cnblogs.com/lfire/archive/2012/08/24/2653882.html

putty 中 : Window-->Translation中 Remote Character Set编码方式修改为 UTF-8 来避免Putty命令窗口中除英语之外的语言出现乱码的现象;

host name or IP address 中输入: 192.168.56.190  port 设置默认值 22

session 窗口的右侧有个 connection type -> 勾选 SSH 

window -> line of scrollback 设置 越大,可以回滚的记录越多

connection -> data -> auto-login username  输入 ubuntu 登陆的用户名

点击save -> load -> open