一、什么是ip地址(IP ADDRESS)

1、internet protocol ADDRESS                              网络协议地址

2、ipv4 internet protocol version4                          ip为4的ip地址

3、一个ip为4的ip地址由4位组成,而1位由8个字节组成,即1位相当于8个二进制数(0,1),所以一个ip为4的ip地址由32个二进制数组成。

4、示例:11111110.11111110.11111110.11111110=254.254.254.254

 

二、子网掩码

1、子网掩码是用来划分网络区域的

2、子网掩码非0的位对应的ip上的数字代表这个ip的网络位

3、网络位表示网络区域

4、子网掩码为0的位对应的ip上的数字代表这个ip的主机位

5、主机位表示网络区域内的某台主机

6、例如:110.0.0.1/16表示:起始IP为110.0.0.1,子网掩码为16(代表掩盖掉16位,即前16位不能变),那么结束IP为110.0.225.225。一个IP为4的IP地址要用4个字节来存放(一个字节8位),那么整个IP要用32位来存放。一个IP为4的IP地址最大为255.255.255.255
例如:192.168.1.1/24    起始IP地址为:192.168.1.1    结束IP地址为192.168.1.255

 

三、ip通信的判定

1、网络位一致,主机位不一致的2个ip地址可以直接通信

2、172.25.254.1/24  24=255.255.255.0(子网掩码)

3、172.25.254.2/24

4、172.25.0.1/16

很明显2和3可以通信(网络位相同,主机位不同);2和4,3和4也是可以通信的(因为4的网段里面包含2和3。但是,需要注意的是:4访问2,4访问3都是没有问题的;2访问3,2访问4是有可能出现问题的。)

 

四、实验环境(rhel7.0版本)

主机环境:rhel7.0

各主机信息

主机名IP
server172.25.254.1
物理机(rhel7.3版本)172.25.254.7

 

五、设置网络参数的命令(包含命令行方式修改ip)

 

(1)ifconfig命令

ifconfig {interface} {up|down}     <== 查看与启动接口
ifconfig interface {options}       <== 设置与修改接口

选项与参数:
interface:网卡接口名称,包括eth0,eth1,ppp0等等
optinons:可以使用的参数,包括
   up,down:启动(up)或关闭(down)该网络接口(不涉及任何参数)
   mtu:可以设置不同的MTU数值,例如mtu 1500(单位为bytes)
   netmask:就是子网掩码
   broadcast:就是广播地址

 

【1】、ifconfig                                                          查看或设定网络接口(已经启动的网卡,没有启动的网卡不显示),并且查看ip地址

 

【2】、ifconfig   eth0                                                   查看eth0的网络接口(不论eth0这个网卡是否已经启动),并且查看ip地址

 

【3】、ifconfig  eth0  172.25.254.100                      给eth0这块网卡设置ip地址为172.25.254.100,其中的netmask及broadcast等参数由系统自动计算。

 

【4】、ifconfig  eth0:0  172.25.254.120                  给eth0:0(相当于网卡eth0的第一个网络接口)设置ip地址为172.25.254.120,其中的netmask及broadcast等参数由系统自动计算。


仔细看,因为是同一张网卡,所以我们会发现eth0和eth0:0的硬信息(ether值,mtu值都是相同的)

但是关闭eth0:0,不会影响eth0网卡。


 

【5】、ifconfig  eth0  172.25.254.200/18                                   设定ip地址,指定子网掩码

 

【6】、ifconfig  eth0  172.25.254.100  netmask  255.255.0.0  broadcast  172.25.254.250  mtu  6000             给eth0这块网卡设置ip地址为172.25.254.100,netmask为255.255.0.0,broadcast为172.25.254.250,mtu值为6000。

 

【7】、ifconfig eth0 down                                    关闭设备(某个网卡,关闭网卡之后,那么这块网卡的状态就是DOWN,但是上面仍然有IP地址)

 

【8】、ifconfig  eth0  up                                         开启设备(某个网卡,要想和别人的网络是通畅的,就必须打开网卡,打开网卡之后,网卡能够看到)

 


上述设置在重启网络之后,数据就会全部失效。但是

  1. mtu值不会失效。(mtu值只有在重启系统之后才会失效)
  2. ifconfig  eth0  down不会失效(只有在重启系统之后,才会失效)
  3. 只针对配置文件中ifcfg-ethx的网卡而言。
  4. 针对配置文件中没有ifcfg-ethx的网卡而言,利用ifconfig命令设置了IP地址之后,重启网络,该ip地址仍然存在,只有当重启系统之后才会失效。

 

(2)ifup和ifdown命令

 

【1】、ifdown  eth0                                                 关闭eth0网卡(只是将网卡eth0的ip地址去掉了而已,与ifconfig  eth0  down的效果不一样)

 


  1. 上述设置在重启网络之后,数据就会全部失效。
  2. ifup和ifdown这两个命令(程序)主要是通过读取配置文件(ifcfg-ethX)来进行启动和关闭网络接口的,所以在使用前请确定ifcfg-ethX是否真的存在于正确的目录内,否则会启动/关闭失败。
  3. 如果以ifconfig eth0的方式设置或者修改了网络接口后,那就无法再以ifdown eth0的方式来关闭了。因为ifdown会分析比对当前的网络参数和ifcfg-eth0是否相符,不符的话,就放弃本次操作。因此,使用ifconfig修改完毕后,应该要用ifconfig  eth0  down才能够关闭该接口

 

(3)route命令

route [-nee]
route add [-net|-host] [网络或主机] netmask [mask] [gw|dev]
route del [-net|-host] [网络或主机] betmaks [mask] [gw|dev]

查看的参数:
    -n:不要使用通信协议或主机名,直接使用IP或port number;
    -ee:显示更详细的信息
增加(add)与删除(del)路由的相关参数:
    -net:表示后面接的路由为一个网络
    -host:表示后面接的为一个网络
    netmask:与网络有关,可以设置netmask决定网络的大小
    gw:gateway的简写,后续接的是IP的数值哦,与dev不同
    dev:如果只是要指定由哪一块网卡连接出去,则使用这个设置,后面接eth0等

 

【1】、route                          查看网关路由等信息

 

【2】、route  -n                     以IP的形式显示网关路由信息

 

【3】、route -ee                   查看网关路由的详细信息

 

【4】、route  add  -net 172.25.7.0  netmask  255.255.255.0  dev  eth0         添加路由网关(目的地网段为172.25.7.0/24,通过eth0网络接口出去)。请注意:在删除的时候,需要将路由表上面出现的信息都写入,包括netmask、dev等参数

 

【5】、route  del  -net 172.25.7.0  netmask  255.255.255.0  dev  eth0         删除路由网关(目的地网段为172.25.7.0/24,通过eth0网络接口出去)

 

【6】、route  add  default  gw 172.25.254.100                             添加默认路由,默认路由地址为172.25.254.100(一般只需要有一个默认路由)。值的注意的是,添加的网关,必须与本主机的ip地址在一个网段

 

【7】、route  del  default  gw 172.25.254.100                             删除默认路由,默认路由地址为172.25.7.100

 


  1. 上述设置在重启网络之后,数据就会全部失效。

 

(4)ip命令

ip [option] [动作] [命令]

选项与参数:
option:设置的参数,主要有:
    -s:显示出设备的统计数据(statistics),例如接收数据包的总数等;
动作:也就是可以针对哪些网络参数进行操作,包括:
    link:与设备(device)相关的设置,包括MTU、MAC地址等
    addr/address:关于额外的IP协议,例如多IP的实现等
    route:与路由有关的相关设置

 

【1】、关于接口设备(device)的相关设置:ip  link命令

ip  link  可以设置与设备(device)有关的相关参数,包括MTU、MAC地址、网卡接口名称,当然也包括启动(up)或关闭(down)某个网络接口。

ip [-s] link show [device]   <== 单纯地查看该设备的相关信息
ip link set [device] [动作与参数]

选项与参数:
show:仅显示出这个设备的相关属性,如果加上-s会显示更多统计数据
set:可以开始设置项目,device指的是eth0、eth1等设备名称
动作与参数:包括下面的这些动作:
    up|down:启动(up)或关闭(down)某个接口,其他参数使用默认的以太网
    address:如果这个设备可以更改MAC的话,用这个参数修改
    name:给予这个设备一个特殊的名字
    mtu:就是最大传输单元

1、ip  link  show                          显示本机所有接口的信息

 

2、ip  link  show   eth0                      显示eth0接口的信息

 

3、ip  -s  link  show                     详细地显示本机所有接口的信息(详细内容与ifconfig所输出的结果是相同的)

 

4、ip  link  set  eth0  down              关闭eth0这个接口设备(该命令同ifconfig  eth0  down)

 

5、ip  link  set  eth0  up              启动eth0这个接口设备

 

6、ip  link  set  eth0  mtu  6000          设置eth0这个接口设备的mtu值为6000bytes

 

7、修改eth0这个接口设备的名字为br0

第一步:ip  link  set  eth0  down

第二步:ip  link  set  eth0  name br0

因为我们的ifcfg-eth0还是使用原本的设备名称。为避免出现问题,要改回来

 

ip  link  set  br0  name  eth0

 

8、ip  link  set  eth0  address aa:aa:aa:aa:aa             将eth0这个接口设备的MAC地址该为aa:aa:aa:aa:aa

 

测试之后,立马修改回来:ip  link  set  eth0  address  52:54:00:6a:dd:82

 


上述设置只有在重启系统之后,数据就会全部失效。

  1. mtu值,只有在重启系统之后才会失效
  2. ip  link  set eth0  down,只有在重启系统之后,才会失效
  3. ip  link  set  eth0  address  aa:aa:aa:aa:aa:aa,只有在重启系统之后,才会失效

 

【2】、关于额外IP的相关设定:ip  addr/address命令

主要是设置与IP有关的各项参数,包括netmask、broadcast等

ip address show [设备名]        <==查看IP参数
ip address [add|del] [IP参数] [dev 设备名] [相关参数]

选项与参数:
show:仅显示接口的IP信息
add|del:进行相关参数的添加(add)或删除(del)设置,主要有:
    IP参数:主要就是网络的设置,例如192.268.100.100/24之类的设置
    dev:这个IP参数所要设置的接口,例如eth0、eth1等
    相关参数主要有下面这些:
        broadcast:设置广播地址,如果设置值是"+"表示"让系统自动计算"
        label:也就是这个设备的别名,例如eth0:0
        scope:这个选项的参数,通常是这几个大类:
            global:允许来自所有来源的连接
            site:仅支持IPv6,仅允许本主机的连接
            link:仅允许本设备自我连接
            host:仅允许本主机内部的连接
            所以当然是使用global了。默认也是global

 

1、ip  address  show                其中address可以换为addr,显示出所有接口的IP参数

 

2、ip  address  show br0/eth0                      其中address可以换为addr,显示br0(物理机)或者eth0(虚拟机)的多个ip地址

 

3、ip  address  add  172.25.254.100/24  dev  eth0  broadcast +  label  eth0:0      其中address可以换为addr,给eth0这个网卡增加一个名为eth0:0的接口,其ip地址为172.25.254.100/24,broadcast由计算机自行计算(broadcast  +的含义)。(使用ip  addr show  eth0可以看到eth0网卡下面多了一行接口,使用ifconfig命令就能看到eth0:0这个接口了)

 

 

4、ip  address  del  172.25.254.100/24  dev  eth0                   其中address可以换为addr,删除172.25.7.100/24这个ip地址

 


上述设置只有在重启网络之后,数据就会全部失效。


 

【3】、关于路由的相关设定:ip  route命令

事实上,ip  route的功能几乎与route这个命令差不多,但是,它还可以进行额外的参数设计,例如MTU的规划等,功能相当强大。

ip route show|list    <==单纯的显示出路由的设置而已
ip route [add|del] [IP或网络号] [via gateway] [dev 设备]

选项与参数:
show:单纯的显示出路由表,也可以使用list
add|del:添加(add)或删除(del)路由
    IP或网络:可使用192.168.50.0/24之类的网络号或者是单纯的IP地址
    via:从哪个gateway出去,不一定需要
    dev:由哪个设备连出去,这就需要了
    mtu:可以额外的设置MTU的数值

 

1、ip  route  show或ip  route  list              显示当前的路由信息(显示内容不如命令“route  -n”的形式好看)

 

2、ip route add 172.25.7.0/24 dev eth0           添加路由172.25.7.0/24,通过eth0这个网络接口连出去

 

3、ip  route  add  172.25.8.0/24  via  172.25.7.100  dev  eth0       添加路由172.25.8.0/24,通过eth0这个网络接口连出去,并且通过网关172.25.7.100连出去。值的注意的是:因为我有172.25.7.0/24这个路由的存在(我的网卡直接联系),所以才可以将172.25.7.0/24这个路由丢给172.25.7.100那台主机来帮忙传递。

 

4、ip  route  add  default  via 172.25.7.200  dev  eth0       添加默认网关172.25.10.100,通过eth0这个网络接口连出去,值的注意的是,添加的网关的网段,必须与本机目前所拥有的路由在一个网段,同时只要由一条默认路由即可

 

5、ip  route  del  172.25.8.0/24        删除路由172.26.8.0/24

 


上述设置只有在重启网络之后,数据就会全部失效。


 

六、网络排错与查看命令

 

(1)两台主机的两点沟通:ping

ping主要通过ICMP数据包来进行整个网络的状态报告,当然,最重要的就是ICMP type 0、8这两个类型,分别是要求回送与主动回送网络状态是否存在的特性。要特别注意的是,ping还是需要通过IP数据包来传送ICMP数据包的,而IP数据包里面有个相当重要的TTL属性,这是一个很重要的路由特性。

ping [选项与参数] IP
选项与参数:
-c 数值:后面接的是执行ping的次数,例如 -c 5
-n    :在输出数据时不进行IP与主机名的反查,直接使用IP输出(速度较快)
-s 数值:发送出去的ICMP数据包的大小,默认为56bytes,不过可以放大此数值
-t 数值:TTL的数值,每经过一个节点就会少1。同一网络内,默认是64;不同网络内,默认是255
-w 数值:总共等待的时间秒数
-W 数值:等待相应对方主机的秒数
-M [do|dont]:主要在检测网络的MTU数值大小,两个常见的项目是:
    do:代表传送一个DF(Don't Fragment)标志,让数据包不能重新拆包与打包
    don't:代表不要传送DF标志,表示数据包可以在其他主机上拆包与打包

 

【1】、ping    IP                                                          检测网络是否畅通

 

【2】、ping   -c  10   -w  1    172.25.254.7                                           ping十次,等待1秒,其中-w后面的1表示的是总共等待1秒

 

【3】、ping  -c  10  -W  1 172.25.254.7                       ping10次,等待1秒,其中-W后面的1表示的是ping一次,中间等待1秒,再ping下一次    

 

【4】、示例:找出最大的MTU数值

ping  -c  2  -s  1000  -M  do  172.25.254.7        如果有响应,那就是可以接受这个数据包,如果无响应,那就表示这个MTU太大了。

ping  -c  2  -s  8000  -M  do  172.25.254.7         如果有错误,就表示这个MTU的值太大了。

上图表示,mtu值最大为1500。

值的一提的是:因为IP数据包包头(不含optinons)就已经占用了20bytes,再加上ICMP的包头有8bytes,所以当你在使用-s  size的时候,那个数据包的大小就需要先扣除(20+8=28)的大小了。因此如果要使用的MTU为1500时,就需要下达“ping  -s  1472  -M  do  IP”

 

(2)两主机间各节点分析:traceroute

traceroute命令可以跟踪两台主机之间通过的各个节点(node)的通信状况的好坏的,举例来说,如果我们连接baidu的速度比平常慢,你觉得是(1)自己的网络环境有问题;(2)还是外部的Internet有问题。如果是网络环境有问题,我们就需要检查自己的网络环境了,看看是否中毒了?但如果是Internet的问题呢?那就只有“等等等”。判断是(1)还是(2)这个问题就需要使用traceroute这个命令。

traceroute [选项与参数] IP
选项与参数:
-n:可以不必进行主机的名称解析,单纯用IP,速度较快
-U:使用UDP的port 33434来进行检测,这时默认的检测方式
-I:使用ICMP的方式来进行检测
-T:使用TCP来进行检测,一般使用port 80测试
-w:若对方主机在几秒钟内没有回应就声明不通...默认是5秒
-p 端口号:若不想使用UDP与TCP的默认端口号来检测,可在此改变端口号
-i 设备:用在较复杂的环境,如果网络接口很多很复杂时,在会用到这个参数‘
        举例来说,你有两条ADSL可以连接到外部,那你的主机会有两个ppp,
        你可以使用-i来选择是ppp0还是ppp1
-g 路由:与-i参数相仿,只是-g后面接的是gateway的ip就是了

 

【1】、traceroute   -n  www.baidu.com               检测本机到baidu的各节点的连接状态

在上面的例子中,由我自己的物理机连接到baidu时,它会经过12个节点以上的检测。

比较特殊的是第14,15,16个,会返回星号,代表node可能设有某些防护措施,让我们发送的数据包信息被丢弃掉。因为我们是值接通过路由器传递数据包,并没有进入路由器去取的路由器的使用资源,所以某些路由器仅支持数据包转递,并不会接受来自客户端的各项检测,此时就会出现上述的问题。

 

(3)查看本机的网络连接与后门:netstat

netstat -[rn]             <==与路由有关的参数
netstat -[antulpc]        <==与网络接口有关的参数

选项与参数:
与路由(route)有关的参数说明:
-r:列出路由表(route table),功能同route这个命令
-n:不使用主机名与服务名称,使用IP与port number,如果route -n
与网络有关的参数说明:
-a:列出所有的连接状态,包括tcp/udp/unix socket等
-t:仅列出TCP数据包的连接
-u:仅列出UDP数据包的连接
-l:仅列出已在Listen(监听)的服务的网络状态
-p:列出PID与Program的文件名
-c:可以设置及秒钟后自动更新一次,例如-c 5为每5s更新一次网络状态的显示

 

【1】、netstat                                         列出目前系统已经建立的网络连接与 unix socket 状态

[root@server ~]# netstat 
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 172.25.254.1:ssh        172.25.254.7:49482      ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  5      [ ]         DGRAM                    6188     /run/systemd/journal/socket
...(中间省略)...
unix  3      [ ]         STREAM     CONNECTED     18829    @/tmp/.X11-unix/X0
unix  3      [ ]         STREAM     CONNECTED     14815    
unix  3      [ ]         STREAM     CONNECTED     16768    
unix  3      [ ]         STREAM     CONNECTED     21918
...(下面省略)...

上面的结果显示了两部分,分别是网络的连接以及 Linux 上面的 socket 进程相关性部分。

1、我们先来看看因特网连接情况的部分:

  • Proto:网络的封包协议,主要分为 TCP 与 UDP 封包;
  • Recv-Q:非由用户进程连接到此 socket 的复制的总 Bytes 数;
  • Send-Q:非由用户主机传送过来的 acknowledged 总 Bytes数;
  • Local  Address:本地端的 IP:port 情况;
  • Foreign  Address:远程主机的 IP:port 情况;
  • State:连接状态,主要有建立(ESTABLISED) 及监听(LISTEN)

2、再来看看 Linux 上面的 socket 进程部分:

  • Proto:一般就是unix;
  • RefCnt:连接到此 socket 的进程数量;
  • Flags:连接的标识
  • Type:socket 存取的类型。主要有确认连接的 STREAM 与不需确认的 DGRAM两种
  • State:若为 CONNECTED 则表示多个进程之间已经建立连接
  • Path:连接到此 socket 的相关进程的路径,或是相关数据输出的路径

 

【2】、netstat  -rn                                查看路由等信息

 

【3】、netstat  -an                               列出当前的所有网络连接状态,使用IP与port  number

 

【4】、netstat -tulnp                            

 

【5】、netstat  -atunp

 


服务名称与port  number的对应关系是由/etc/services文件来设置的。


 

七、图形方式修改ip(第二种配置ip的方法)

 

(1)nm-connection-editor(有图形)

 

【1】、nm-connection-editor;

 

【2】、删除System eth0;

 

【3】、点击add;

 

【4】、选择Ethernet;

 

【5】、输入Connection name(一般为eth0);

 

【6】、选择Device Mac address;

 

【7】、进入IPv4 Settings,将method由DHCP改为Manual;

 

【8】、点击Add,输入Address和Netmask(子网掩码24,或者写成225.225.225.0)Gateway(网关)可以不用输入。

 

【9】、点击save即可

 

最后的效果

 

(1)nmtui(同(1),有无图形均可)


 


上面图形配置ip的方法(第二种配置ip的方法),在重启网络和重启系统之后都不会消失,是永久的。


 

八、网络管理配置文件(配置文件修改ip—第三种配置ip的方法)

 

(1)一块网卡上配置一个ip

 

【1】、编辑网络配置目录:/etc/sysconfig/network-scripts,即:vim /etc/sysconfig/network-scripts/ifcfg-eth0

 

【2】、网络配置文件的编写

DEVICE=eth0

NAME=xin(如果不设置NAME,则NAME默认是System eth0)

BOOTPROTO=none(这里有三个选项:none,static,dhcp。其中none和static是一样的含义,表示手动配置ip;dhcp表示通过dhcp服务自动获取ip)

ONBOOT=yes(开机自动启动该网卡eth0,如果设置为no,则每次启动系统之后,需要通过命令"ifup  eth0"来使得eth0网卡上的ip地址进行显示。)

IPADDR=172.25.254.100

NETMASK=255.255.255.0(或者写成PREFIX=24)

 

【3】、因为编辑的是配置文件,所以要重启网络

 

(2)一块网卡上配置多个ip

 

【1】、编辑网络配置目录:/etc/sysconfig/network-scripts,即:vim /etc/sysconfig/network-scripts/ifcfg-eth0

 

【2】、网络配置文件的编写

 

 

【3】、因为编辑的是配置文件,所以要重启网络

 

【4】、使用ip addr show eth0来查看多个ip

 

注意:只要是一个网段的两个ip就能够ping通

 

九 、命令行方式设定网络(第四种配置ip的方法)

 

(1)nmcli device                                            显示所有的网卡的信息

 

(2)nmcli device show                                  详细显示所有的网卡的详细信息

 

(3)nmcli device show eth0                        详细显示eth0这块网卡的信息

 

(4)nmcli device status                               显示所有网卡的状态

 

(5)nmcli device status eth0                       显示eth0这块网卡的状态

 

(6)nmcli device disconnect eth0               断开eth0这块网卡(该网卡的ip地址就没有了,该命令类似于命令“ifdown  eth0”)

 

(7)nmcli device connect eth0                    开启eth0这块网卡(该网卡的ip地址就又加回来了,该命令类似于命令ifup  eth0)

 

(8)nmcli connection                                    显示有connection名的网卡的信息

 

(9)nmcli connection show                                显示有connection名的网卡的信息

 

(10)nmcli connection show  eth0                     详细显示connection名为eth0的网卡的信息

 

(11)nmcli connection down eth0                    关闭connection名为eth0的网卡(关闭网卡之后,ip地址就没有了。该命令同ifdown  eth0)

 

(12)nmcli connection up eth0                         开启connection名为eth0的网卡(打开网卡之后,ip地址就有了,该命令同ifup  eth0)

 

(13)nmcli connection delete eth0                  删除connection名为eth0的网卡  (删掉之后,就看不到了)

 

(14)nmcli connection add type ethernet con-name eth0 ifname eth0 ip4 172.25.254.100/24       命令行的方式设定ip为172.25.254.100/24


 

(15)nmcli connection modify eth0 ipv4.method auto                                    设定connection名为eth0的网卡的ip设定方式为自动

 

(16)nmcli connection modify eth0 ipv4.method manual                               设定connection名为eth0的网卡的ip设定方式为手动

 

(17)nmcli connection modify eth0 ipv4.addresses  172.25.254.1/24                       设定connection名为eth0的网卡的ip为172.25.254.1(注意:设定之后,nm-connection-editor看见的ip已经生效,但是ifconfig看到的ip并没有生效,要重启网络才能生效)

 


上述中除了“nmcli  connection  delete“,“nmcli  connection  add”和“nmcli  connection  modify”命令(永久设定,重启系统之后,都不会失效)之外,其余重启网络之后配置的数据都会消失。


 

十、lo回环接口:lo

回环接口是些逻辑的接口,即虚拟的软件接口,它们并不是真正的路由器接口。

  1. lo网络是当初被用来作为测试操作系统内部循环可用的一个网络;
  2. lo网络也能够提供给系统内部原就需要使用网络接口的服务所使用。

 

(1)eth0的ip地址可以ping通lo的ip地址(也可以写成localhost)

 

十一、网关(可以实现虚拟机的上网功能)

 

1、打开真机上的内核数据包转发功能

 

sysctl  -a  |  grep  ip_forward                            查看net.ipv4.ip_forward的值,看是0还是1


 

如果是0,就需要将其修改为1

修改方法:
方法一:永久设置
vim  /etc/sysctl.conf
在其中最后一行,编辑:net.ipv4.ip_forward=1
修改之后,执行命令"sysctl -p"
方法二:临时设置,重启系统之后就会失效
echo 1 > /proc/sys/net/ipv4/ip_forward

 

2、把真机变为路由器(在虚拟机上设定网关为真机的IP地址即可)

 

设置全局网关—设置网关的方法一

 

(1)编辑网络配置目录:vim /etc/sysconfig/network

GATEWAY=172.25.254.7

 

(2)因为修改的是配置文件,所以要重启网络

 

(3)route -n进行查看网关

 

设定局部网关(在配置局部网关之前,为了防止影响,先将之前配置的全局网关注释掉)—设置网关的方法二

 

(1)编辑配置文件:vim /etc/sysconfig/network-scripts/ifcfg-eth0

GATEWAY=172.25.254.7 当网卡中设定的ip只有一个时


GATEWAY0=172.25.254.7 当网卡中设定的ip有多个时,指定对于哪个ip生效


 

(2)因为修改的是配置文件,所以需要重启网络

 

(3)route -n进行查看网关

 

注意:当局部网关与全局网关都存在,且不一致时,局部网关优先于全局网关

 

3、把真机变为NAT服务器

其实IP路由器就是最简单的NAT服务器,NAT可以实现IP共享功能,而NAT本身就是一个路由器,只是NAT比路由器多了一个IP转换功能。二者的差别如下:

1、一般来说,路由器会有两个网络接口,通过路由器本身的IP转发功能让两个网段可以相互沟通网络数据包。那如果两个接口一边是公共IP,但另一边是私有IP会怎样呢?由于私有IP不能直接与公共IP沟通其路由信息,此时就需要额外的“IP转换功能”;

2、Linux的NAT服务器可以通过修改数据包的IP包头数据的来源或目标地址,让私有IP的数据包可以转成NAT服务器的公共IP,直接连上Internet。

 

(1)真机必须打开防火墙

 

(2)查看地址伪装功能是否已经打开:firewall-cmd --list-all

 

(3)firewall-cmd --perman0ent --add-masquerade 将masquerade(地址伪装功能)这个选项设为yes(但是设置之后,必须重新加载,即必须执行:firewall-cmd --reload)

 

(4)firewall-cmd --reload

 


补充:firewall-cmd  --permanent --remove-masquerade 将masquerade这个选项设为no(但是设置之后,必须重新加载,即必须执行:firewall-cmd --reload)


 

4、测试

 

测试是否成功,即虚拟机是否可以访问百度

真机可以访问百度

因为server虚拟机没有域名解释器,所以得写百度的ip地址(61.135.169.121)

 


如果两个虚拟机(处于同一个网段)之间ping不通,就是虚拟机的网卡已经损坏

处理办法:

在真机,virt-manager,找到对应虚拟机的网卡,将其删掉,然后重新添加网卡。


 

十二、DNS的设定

 

1、DNS是一台服务器,这台服务器提供了回答客户主机名和ip对应的关系的功能。

地址解析:将网址变成ip

电信的dns为114.114.114.114

谷歌的主dns为8.8.8.8

谷歌的次dns为8.8.4.4


2、设定DNS的三种方法

 

局部DNS—方法一

 

(1)编辑/etc/resolv.conf:vim /etc/resolv.conf

在里面输入nameserver  dns服务器ip

 

(2)测试,ping百度的域名,看能否ping通

 

全局DNS—方法二(为了防止影响,先将上面配置的局部DNS注释掉)

 

1)编辑/etc/sysconfig/network-scripts/ifcfg-xxx

DNS1=dns服务器ip

这一步也可以通过图形的方式进行实现

 


一般来说:设定DNS是在/etc/sysconfig/network-scripts/ifcfg-eth0中进行设定,必须写DNS1,那么利用cat /etc/resolv.conf会看到设定的DNS,代表设定成功;如果写的是DNS,那么利用cat /etc/resolv.conf看不到设定的NDS,表示没有设定成功。

 

错误示例:

查看网关

查看dns是否设定成功

从上面的图片可以看到DNS并没有设定成功

 

正确示例:

查看网关

查看dns是否设定成功

从上面的图片可以看到DNS已经设定成功


 

(2)因为修改的是配置文件,所以要重启网路才能生效

 

(3)测试,ping百度的域名,看能否ping通

 

配置本地解析文件—方法三(为了防止影响,先将上面配置的全局DNS注释掉)

 

(1)编辑本地解析文件:vim /etc/hosts
ip  域名

 

3、本地解析文件和dns服务器读取的优先级调整

vim /etc/nsswitch.conf
39 hosts:files dns
#files:代表本地解析文件
#dns:代表dns服务器
哪个在前面,哪个优先

 

优先级排序:本地解析文件 > 全局 DNS > 局部 DNS

 

十三、物理机网络的连接

 

1、连接wifi/插上网线

 

2、ls -l /etc/sysconfig/network-scripts

 

3、查看命令2的执行结果,看是ifcfg-eth0还是ifcfg-br0


4、vim /etc/sysconfig/network-scripts/ifcfg-eth0或者vim /etc/sysconfig/network-scripts/ifcfg-br0。如果里面由网关,则需要把网关注释掉

 

5、因为修改的是配置文件,所以要重启网络

 

6、测试

Logo

更多推荐