Linux菜鸟成长日记 (Linux IP服务。为主机设定IP地址,对虚拟机进行联网等)

Linux IP服务。为主机设定IP地址,对虚拟机进行联网等


首先介绍一下IP地址的一些基本知识

我们最常用的IP协议为IPv4,IPv4中规定IP地址长度为32,即有2^32-1个地址。


一般的书写法为4个用小数点分开的十进制数。过去IANA(互联网数字分配机构)IP地址分为A,B,C,D 4类,把32位的地址分为两个部分:前面的部分代表网络地址,由IANA分配,后面部分代表局域网地址。也就是所谓的网络位和主机位。网络掩码(Netmask)限制了网络的范围

 1.常用网络协议IPv4协议

IP:32位 2进制
11111111.11111111.11111111.11111111 == 255.255.255.255
netmask:子网掩码  用来标识IP的网络位和主机位
网络位:表示网络区域
主机位:表示网络区域内的某台主机

netmask   非0位所对应的IP地址数值为这个IP的网络位
                主机位全1为广播地址,0代表此网络本身,均不可作为单独主机的IP使用
netmask   0位对应的IP地址数值为这个IP的主机位

网络位一致主机位不一致的两个IP是可以直接通信的(叫做直连网络)
网络位不一致,默认不可直接进行通信(可通过路由器进行通信)

2.IP的设定方法

 ip addr show   查看网卡信息

ifconfig   也可以进行查看

IP设定方法一:编辑配置文件/etc/sysconfig/network-scripts/ifcfg-链接接名

cd  /etc/sysconfig/network-scripts/

vim ifcfg-xxxx

编辑以下内容:

  DEVICE=网卡

  ONBOOT=yes

  BOOTPROTO=dhcp或none或static      

                            dhcp 表示动态获取IP地址

                            none/static 均表示静态IP地址

  IPADDR=ip                       自定义IP地址

  NETMASK=子网掩码 或 PREFIX=子网掩码缩写

  [NAME=链接名称]

例:(1)DHCP  动态获取

vim /etc/sysconfig/netwotk-scripts/ifcfg-link1
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
NAME=link1

        (2)ststic   静态
vim /etc/sysconfig/network-scripts/ifcfg-link1
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
IPADDR=172.25.151.150
NETMASK=255.255.255.0 或 PREFIX=24


附:在一个网卡添加多个IP

cd /etc/sysconfig/network-scripts
编辑配置文件:vim ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
IPADDR0=172.25.254.100
PREFIX0=24
IPADDR1=172.25.254.XXX
PREFIX1=24


TIP:如果忘记具体的参数,可在文件参数文档进行查看

/usr/share/doc/initscripts-*/sysconfig.txt



注:以下方法适用于企业七以后的系统

方法二:对IP进行临时修改


ifconfig eth0                           查看网络情况

ifconfig device IP netmask     子网掩码       临时修改IP 重启网络或者系统重启将会恢复
ping IP 看网络是否连通


重启网络后失效:


方法三:永久修改/设定网络(图形方式)

(1)nm-connection-editor     图形    的设定ip方法

选择add进行添加



 后进行IP链接名称修改,和硬件选择

选择网络类型和设定IP

其中:DHCP  向DHCP服务器获取动态IP,不固定              向服务器索取

          Manual 设定静态IP,操作者自行设定。                  不会改变

DHCP


注:若是edit编辑网络,在编辑后需要重启网络才会生效,若是add添加网络,则不需要重启。

(2)nmtui                    当系统没有图形时可诶用此命令开启网络设定的ui界面


在其中进行编辑:

方法四:   nmcli

先介绍一个网络管理的工具:NetworkManager

Red Hat Enterprise Linux 7 与 CentOS 7 中默认的网络服务由 NetworkManager 提供,这是动态控制及配置网络的守护进程,它用于保持当前网络设备及连接处于工作状态,同时也支持传统的"ifcfg"类型的配置文件。NetworkManager 可以用于以下类型的连接:Ethernet,VLANS,Bridges,Bonds,Teams,Wi-Fi,mobile boradband(如移动3G)以及 IP-over-InfiniBand。针对与这些网络类型,NetworkManager 可以配置他们的网络别名,IP 地址,静态路由,DNS,VPN连接以及很多其它的特殊参数。

可以用命令行工具 nmcli 来控制 NetworkManager

 nmcli:     地址配置工具

                 nmcli的功能相比ifconfig要强大、复杂的多。

                这次仅仅用他来进行IP地址的配置,其他详细功能可通过 man nmcli 来进行学习。

介绍nmcli一些基本操作:
nmcli device                             查看网络设备
nmcli device status eth0          查看eth0的状态
nmcli device show eth0           显示eth0具体信息
nmcli device disconnect eth0   关闭eth0
nmcli device connect eth          打开eth0

nmcli connection                                查看网络连接
nmcli +connection down +链接名       关闭链接
nmcli +connection up     +链接名        开启链接
nmcli +connection show +链接名       显示详细信息

nmcli connection delete  +链接名          删除链接

可通过以下方式来添加IP地址

nmcli connection add type  ethernet con-name 链接名称 ifname 设备名称 autoconnect yes
nmcli connection add type  ethernet con-name 链接名称 ifname 设备名称 ip4 172.25.254.139/24
nmcli connection add + TAB 查看可补全的信息


修改IP:

(1)修改IP地址:
DHCP---->static             动态到静态

nmcli connection modify 链接名 ipv4.method manual    修改类型到静态
nmcli connection modify 链接名 ipv4.addresses IP            添加IP

systemctl restart network

示例如下:

修改类型:


(2)在静态下修改IP:
nmcli connection modify 链接名 ipv4.addresses IP
systemctl restart network

static---->DHCP              静态到动态
nmcli connection modify 链接名 ipv4.method auto      #修改类型

systemctl restart network

从静态到动态:


3.对虚拟机进行外网连接。


首先介绍两个概念:网关和DNS(域名系统)

 网关(Gateway)又称网间连接器、协议转换器。默认网关在网络层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关的结构也和路由器类似,不同的是互连层。网关既可以用于广域网互连,也可以用于局域网互连
 注:由于历史的原因,许多有关TCP/IP的文献曾经把网络层使用的路由器称为网关,在今天很多局域网采用都是路由来接入网络,因此通常指的网关就是路由器的IP!

DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。

通俗的的来说就是,我们的主机想要和外网通信就需要借助于网关,我们想要浏览万维网上的信息必须得通过对应主机的IP地址来访问,也就是每浏览一个网页就得知道其对应的IP地址,而DNS可以让我们无需进行如此繁琐的操作。

  废话说完,下面就来点干货

  想要对虚拟机进行外网连接其思想是将真机作为一个跳板,类似于路由器,通过真机来实现虚拟机对外网的连接

 

具体操作如下:

(1)在linux真机中切换到超级用户

         编辑与外网通信的网卡,去掉网关。具体操作与上文中以文本方式添加IP类似

         编辑/etc/sysconfig/network-scripts/ifcfg-br0(此处为自己主机网卡对应的链接名)


        去掉网关,重启网络
2.连接到wifi或是保证真机可以连接到互联网

打开防火墙

打开masquerade 伪装服务

firewall-cmd --add-masquerade

打开前:


设定虚拟机网关为真机IP地址

(1)设定全局网络: 编辑 /etc/sysconfig/network

               GATEWAY=网关IP


(2)设定特定链接的网关:/etc/sysconfig/network-scripts/ifcfg-xxx

               GATEWAY=网关IP(注意配合ip与掩码的格式)

(3)ping 网关,即真机IP看是否连通

(4)设定DNS解析
  I.  /etc/hosts            本地解析文件 :可在其中输入固定IP对应的网址用来连接。(输入什么IP地址就能能连上什么IP,局限性大,建议第二种)
  II. /etc/resolv.conf       "寻求帮助"       可植入:114.114.114.114:公共解析域名

                                                              或是设为真机的网关

编辑vim/etc/resolv.conf


ping www.baidu.com,看网络是否链通

可连通。这样就成功将虚拟机与外网连接了。


若是连接不上,可按照以下思路排错,
(1)在真机ping www.baidu.com,看是否可以ping通。
(2)检查防火墙情况:firewalld-cmd --list-all   --> masquerade: yes
(3)在虚拟机中看网关和真机ip是否相同,再看DNS解析

(4)ping 网关,不通的话看是否虚拟机网卡出现问题

(5)在真机中执行:virt-manager

选择你的虚拟机双击打开

删除NIC:00:97:0a

ADD Hardware  之后添加virtio后再ping网关

(6)若不通,在真机中真机中:

 执行:sysctl -a | grep ip_forward

           看是否为net.ip_forward = 1,若为0

            编辑配置文件:vim /etc/sysctl.conf
                                     添加net.ip_forward = 1

                                     sysctl -p。

后再尝试ping。

如下,将ip_forward = 1 执行

 

以上对虚拟机进行联网的操作,也可用于借助同一局域网内的一台连网主机,使其他主机进行联网。


阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页