一个计算机技术爱好者与学习者

0%

VirtualBox下CentOS7和Ubuntu16.04网络配置

1. 前言

开发中,经常需要用到虚拟机,虚拟中的网络配置,让郝同学头疼了很久。今天,以CentOS7和Ubuntu16.04为例,彻底解决这个问题。过程中,会穿插xshell和xftp的使用说明。

2. 桥接

2.1. VirtualBox设置

选中CentOS,设置,网络,连接方式选择桥接网卡。

2.2. CentOS的ip设置

1、启动CentOS,使用root用户登录。
2、查看ip:ip add
3、编辑ifcfg-enp0s3,vi /etc/sysconfig/network-scripts/ifcfg-enp0s3,把ONBOOT=no改为ONBOOT=yes。
4、重启网络服务,service network restart
5、再次查看ip:ip add
ip

2.3. CentOS的ssh设置

1、启动CentOS,打开终端,切换到root用户。
2、检查是否安装了ssh:rpm -qa | grep ssh
如果没有安装ssh,则执行命令:yum install openssh-server

3、启动ssh:service sshd start
如果提示:redirecting to /bin/systemctl start,那么改用命令:/bin/systemctl start sshd.service

4、检查是否已经成功启动:netstat -antp | grep sshd
如果看到如下信息,则表示启动成功。
sshd

5、设置开机自启动:chkconfig sshd on

PS:利用右ctrl键来切换主机和虚拟机的鼠标,利用右ctrl+F来切换虚拟机全屏状态。

2.4. xshell设置

1、文件,新建,主机填入192.168.1.114
2、选择用户身份验证,输入用户名和密码。
3、点击确定,建立连接。

如果连接失败,请检查centos的防火墙是否关闭。关闭防火墙命令:systemctl stop firewalld.service

2.5. xftp配置

1、文件,新建,主机填入192.168.1.114
2、协议选择SFTP。
3、输入用户名和密码。
4、点击确定,建立连接。

3. 改进

采用桥接方式,虚拟机中CentOS的IP地址是DHCP服务器动态分配的。所以每次使用前需要使用ip add命令,重新查询一下CentOS的IP地址,然后修改xshell和xftp中的主机地址。

当外部没有DHCP服务器时,虚拟机也需要拨号才能上网,很麻烦。于是,再次研究Virtualbox网络设置,盗图一张说明四种连接方式区别。

比较简单的设计,是添加两张网卡。一张选择仅主机(Host-Only)适配器,用于宿主机和虚拟机之间的通讯,使宿主机可以访问虚拟机的服务;一张选择网络地址转换(NAT),用于分享宿主机网络给虚拟机,使虚拟机可以访问外网。

下面详细说明一下四种连接方式的不同。

3.1. NAT

NAT:Network Address Translation,网络地址转换
NAT模式是最简单的实现虚拟机上网的方式,你可以这样理解:

Guest访问网络的所有数据都是由主机提供的,Guest并不真实存在于网络中,主机与网络中的任何机器都不能查看和访问到Guest的存在。

Guest可以访问主机能访问到的所有网络,但是对于主机以及主机网络上的其他机器,Guest又是不可见的,甚至主机也访问不到Guest。

虚拟机与主机的关系:只能单向访问,虚拟机可以通过网络访问到主机,主机无法通过网络访问到虚拟机。

虚拟机与网络中其他主机的关系:只能单向访问,虚拟机可以访问到网络中其他主机,其他主机不能通过网络访问到虚拟机。

虚拟机与虚拟机的关系:相互不能访问,虚拟机与虚拟机各自完全独立,相互间无法通过网络访问彼此。

3.2. Bridged Adapter(网桥模式)

网桥模式,你可以这样理解:

它是通过主机网卡,架设了一条桥,直接连入到网络中了。因此,它使得虚拟机能被分配到一个网络中独立的IP,所有网络功能完全和在网络中的真实机器一样。

网桥模式下的虚拟机,你把它认为是真实计算机就行了。

虚拟机与主机的关系:可以相互访问,因为虚拟机在真实网络段中有独立IP,主机与虚拟机处于同一网络段中,彼此可以通过各自IP相互访问。

虚拟机于网络中其他主机的关系:可以相互访问,同样因为虚拟机在真实网络段中有独立IP,虚拟机与所有网络其他主机处于同一网络段中,彼此可以通过各自IP相互访问。

虚拟机与虚拟机的关系:可以相互访问,原因同上。

3.3. Internal(内网模式)

内网模式,顾名思义就是内部网络模式:

虚拟机与外网完全断开,只实现虚拟机于虚拟机之间的内部网络模式。

虚拟机与主机的关系:不能相互访问,彼此不属于同一个网络,无法相互访问。

虚拟机与网络中其他主机的关系:不能相互访问,理由同上。

虚拟机与虚拟机的关系:可以相互访问,前提是在设置网络时,两台虚拟机设置同一网络名称。如上配置图中,名称为intnet。

3.4. Host-only Adapter(主机模式)

主机模式,这是一种比较复杂的模式,需要有比较扎实的网络基础知识才能玩转。可以说前面几种模式所实现的功能,在这种模式下,通过虚拟机及网卡的设置都可以被实现。

我们可以理解为Guest在主机中模拟出一张专供虚拟机使用的网卡,所有虚拟机都是连接到该网卡上的,我们可以通过设置这张网卡来实现上网及其他很多功能,比如(网卡共享、网卡桥接等)。

虚拟机与主机的关系:默认不能相互访问,双方不属于同一IP段,host-only网卡默认IP段为192.168.56.X 子网掩码为255.255.255.0,后面的虚拟机被分配到的也都是这个网段。通过网卡共享、网卡桥接等,可以实现虚拟机于主机相互访问。

虚拟机与网络主机的关系:默认不能相互访问,原因同上,通过设置,可以实现相互访问。

虚拟机与虚拟机的关系:默认可以相互访问,都是同处于一个网段。

3.5. 修正

采用主机模式,虚拟机与主机的关系,默认可以相互访问。因为,主机IP地址默认为192.168.56.1,虚拟机的IP地址为192.168.56.X。所以,理论上虚拟机和主机可以相互访问。亲测证明,虚拟机和主机确实可以互相访问。

4. CentOS7相关

4.1. 添加网络命令

CentOS7没有netstat 和 ifconfig命令,yum install net-tools
CentOS7查看网络配置,ifconfig -a或者ip add,如果没有获取到IP地址,vi /etc/sysconfig/network-scripts/ifcfg-enp0s3,修改ONBOOT=noONBOOT=yes,然后service network restart

4.2. 修改时区

CentOS7修改时区,cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

4.3. 设置静态IP

第一网卡设置为固定IP,ifcfg-enp0s3原配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=enp0s3
UUID=459b17a4-fd16-4ea7-8a4b-9509b6e899e7
DEVICE=enp0s3
ONBOOT=yes

ifcfg-enp0s3修改为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
TYPE=Ethernet
BOOTPROTO=static
IPADDR=192.168.56.101
NETMASK=255.255.255.0
NM_CONTROLLED=no
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=enp0s3
UUID=459b17a4-fd16-4ea7-8a4b-9509b6e899e7
DEVICE=enp0s3
ONBOOT=yes

5. Ubuntu相关

5.1. 修改root密码

修改root密码,sudo passwd root

5.2. 安装ssh服务

安装ssh服务,apt-get install openssh-server,如果提示找不到安装包,执行apt-get update

允许以root用户通过ssh登录,vi /etc/ssh/sshd_config,找到:

1
2
3
4
# Authentication:
LoginGraceTime 120
PermitRootLogin prohibit-password
StrictModes yes

修改为:

1
2
3
4
5
# Authentication:
LoginGraceTime 120
#PermitRootLogin prohibit-password
PermitRootLogin yes
StrictModes yes

然后重启ssh服务,service ssh restart

5.3. 设置静态IP

查看网络配置,ifconfig -a,如果只显示一个网卡,执行vi /etc/network/interfaces
interfaces原配置为:

1
2
3
4
5
6
7
8
9
10
11
12
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto enp0s3
iface enp0s3 inet dhcp

添加如下内容:

1
2
3
# The second network interface
auto enp0s8
iface enp0s8 inet dhcp

然后重启网络服务,/etc/init.d/networking restart

第一网卡设置为固定IP:

1
2
3
4
5
# The primary network interface
auto enp0s3
iface enp0s3 inet static
address 192.168.56.102
netmask 255.255.255.0

然后重启第一张网卡,sudo ifdown enp0s3sudo ifup enp0s3。如果报错:RTNETLINK answers: File exists,那就先执行一下sudo ip addr flush dev enp0s3

5.4. 修改网卡名

网卡名叫enp0s3这种名字,很不友好,不如ubuntu14中的eth0看起来舒服。

1、编辑grub文件
sudo vim /etc/default/grub

找到:

1
GRUB_CMDLINE_LINUX=""

修改为:

1
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"

2、重新生成grub配置
sudo grub-mkconfig -o /boot/grub/grub.cfg

3、修改/etc/network/interfaces中的enp0s3为eth0,enp0s8修改为eth1。

4、重启
sudo reboot

5.5. 修改主机名

1、编辑/etc/hostname
sudo vim /etc/hostname

修改为想要的主机名,比如controller。

2、编辑/etc/hosts
sudo vim /etc/hosts

添加或编辑:

1
127.0.0.1  controller

3、重启
sudo reboot

6. 后记

以后不玩图形界面的linux了,专注于服务器配置。

7. 书签

如何开启Centos6.4系统的SSH服务
http://jingyan.baidu.com/article/3ea51489f9efbf52e61bba05.html

通过SSH连接VirtualBox中的CentOS
http://www.2cto.com/os/201212/172712.html

VirtualBox + CentOS 虚拟机网卡配置
http://my.oschina.net/duangr/blog/182541

CentOS 7 网络配置
http://simonhu.blog.51cto.com/196416/1588971

centOS7在VirtualBox中装好后的网络连接问题
http://jingyan.baidu.com/article/456c463b4a98460a5931444c.html

快速理解VirtualBox的四种网络连接方式
http://www.cnblogs.com/york-hust/archive/2422911.html

CentOS 7 修改时区
http://blog.csdn.net/robertsong2004/article/details/42268701

centOS7在VirtualBox中装好后的网络连接问题
http://jingyan.baidu.com/article/456c463b4a98460a5931444c.html

virtualBox下Centos系统扩展磁盘空间详细教程
http://blog.csdn.net/timecolor/article/details/48468377

virtualbox中ubuntu硬盘扩展,Gparted无法进入图形界面
http://blog.sina.com.cn/s/blog_7149fc900102wvxh.html