Linux系统的网络配置详解

网络的基础知识

网络:网络就是一种辅助双方或者多方能够连接在一起的工具。
使用网络的目的:

  1. 联通多方然后进形通信用的,即把数据从一方传递给另外一方
  2. 用网络能够把多方链接在一起,然后可以进行数据传递

一台主机如果可以连接公网,比如访问www.baidu.com那么这台主机必然会有ipaddress(ip地址)、netmask(子网掩码)、GATEWAY(网关)、dns(域名系统)。

ip地址

ip地址就是网络进程地址,用来区别并定位连接在网络中的主机,保证了信息的正确传递。它是用来在网络中标记一台电脑的一串数字,比如192.168.1.1;在本地局域网上是唯一的。
IPv4:internet protocol version 4
IPv4是由32个0/1组成的,4字节(32bit)
IP地址的分类:每一个IP地址包括两部分:网络地址和主机地址,如下图:
在这里插入图片描述私有IP :
网络IP中,国际规定有一部分IP地址是用于局域网使用,也就是属于私网IP,不在公网中使用的,它们的范围是:

  • 10.0.0.0~10.255.255.255
  • 172.16.0.0~172.31.255.255
  • 192.168.0.0~192.168.255.255

回环地址IP :
IP地址127.0.0.1 代表本机IP地址,等价于localhost, 用 http://127.0.0.1 就可以测试本机中配置的Web服务器。

子网掩码

子网掩码不能单独存在,它必须结合IP地址一起使用。对于A类地址来说,默认的子网掩码是255.0.0.0;对于B类地址来说默认的子网掩码是255.255.0.0;对于C类地址来说默认的子网掩码是255.255.255.0。

子网掩码的作用: 它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。子网掩码的设定必须遵循⼀定的规则,用来判断两个IP是否在同一个网络。

规则:子网掩码的设定必须遵循一定的规则。与二进制IP地址相同,子网掩码由1和0组成,且1和0分别连续。子网掩码的长度也是32位,左边是网络位,用二进制数字“1”表示,1的数目等于网络位的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。这样做的目的是为了让掩码与ip地址做按位与运算时用0遮住原主机数,而不改变原网络段数字,而且很容易通过0的位数确定子网的主机数。

网关

网关实质上是一个网络通向其他网络的IP地址。比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1—192. 168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1—192.168.2.254”,子网掩码为255.255.255.0。在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。而要实现这两个网络之间的通信,则必须通过网关。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。网络A向网络B转发数据包的过程。

DNS

域名系统(Domain Name System缩写DNS,Domain Name被译为域名)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
就像拜访朋友要先知道别人家怎么走一样,Internet上当一台主机要访问另外一台主机时,必须首先获知其地址,TCP/IP中的IP地址是由四段以" . "分开的数字组成,记起来总是不如名字那么方便,所以,就采用了域名系统来管理名字和IP的对应关系。


网络设定工具

ping命令
该命令后面跟ip地址,它的功能是用于检测两台主机之间的网络是否通畅。
在这里插入图片描述
出现以上有关时间的信息,则表示两主机间网络通畅。
在这里插入图片描述
重复出现如上信息的话,则说明两主机间的网络不通常。可以发现执行ping命令之后,会一直ping下去,直到手动按 “ctrl+c” 才会停止。但是ping也有其他参数可以不会一直ping下去:

ping -c 3 -w 2   ##-c表示ping的次数,-w表示ping等待的时间

在这里插入图片描述
以上命令表示ping了3次,等待了2秒。

ifconfig命令
该命令用于查看或设定网络接口,后面常跟设备名称。

ifconfig一般有以下参数:

  • ifconfig   查看所有的网络接口
  • ifconfig device ip/24   给指定的网路接口设定ip地址
  • ifconfig device down   关闭指定的网络接口
  • ifconfig device up   开启已经关闭的网络接口

操作示例:

(1). 给eth0这个网络接口设定一个ip地址,并通过show来显示指定的网络接口信息,如下:
在这里插入图片描述
(2). 用down来关闭eth0这个网络接口,可以看到eth0设备没有了ip:
在这里插入图片描述
(3). 再次开启已经关闭的网络接口eth0,然后查看:
在这里插入图片描述
ip addr命令
该命令是用于检测或设定网络接口的

  • ip addr show device   检测指定的网络接口
  • ip addr add ip/24 dev device   给指定的网络接口设定ip地址
  • ip addr del dev device ip/24   删除指定网络接口的ip地址
  • ip addr flush device   清洗掉网络接口的ip地址

注意:以上的device的名字是一个物理事实,看到什么名字就只能用什么名字。

操作示例:

(1). 给eth0设备添加一个ip地址,并且通过show来显示改设备的信息,如下:
在这里插入图片描述
(2). 用del来删除掉eth0的ip地址,并用show查看eth0设备,可以看到ip地址被删掉了:
在这里插入图片描述


图形方式设定IP

通过图形的方式设定ip地址有两种方法,分别如下:

(1). nm-connection-editor
执行该命令
在这里插入图片描述可以打开一个设定ip地址的图形操作界面,具体的设定ip地址的步骤在前面的文章中已经有介绍:
在这里插入图片描述

(2). nmtui

在shell中执行nmtui命令,可以进入到另一种设定ip的图形界面。
在此图形界面中,可以通过上下左右键进行操作,enter键执行。

执行该命令进入另一种图形界面:
在这里插入图片描述执行命令后可以使整个shell都进入到了下面的这个设定ip的界面:
在这里插入图片描述
可以添加一个新的ip,选以太网,如下:
在这里插入图片描述给eth0设备添加一个指定的ip地址,如下:
在这里插入图片描述


命令方式设定网络

nmcli命令
注意:执行nmcli 的前提是NetworkManager服务必须是开启状态的

  • nmcli device connect eth0   启用eth0网卡
  • nmcli device disconnect eth0   关闭eth0网卡
  • nmcli device show eth0   查看eth0的网卡信息
  • nmcli device status eth0   查看eth0网卡服务接口信息

操作示例:

(1). 关闭eth0网卡,并显示所有网卡信息,如下:
在这里插入图片描述
(2). 再次开启已经关闭的网卡eth0,并用ifconfig命令查看网络接口信息,如下:
在这里插入图片描述
(3). 查看网卡服务接口信息以及网卡信息,如下:
在这里插入图片描述

  • nmcli connection show   显示网络信息
  • nmcli connection down eth0   关闭eth0这个网络接口

通过show参数查看网络信息:
在这里插入图片描述
把eth0网络接口关闭掉,并且查看,如下:
在这里插入图片描述

  • nmcli connection up eth0   开启

把关闭的eth0网络接口再次开启,并查看,如下:
在这里插入图片描述

  • nmcli connection delete eth0   删除

把名为eth0的这个网络接口删除掉,然后通过图形方式查看网络:
在这里插入图片描述删掉网络设备后,可以看到网络中为空了:
在这里插入图片描述

  • nmcli connection add type ethernet con-name westos ifname eth0 ip4 1.1.1.100/24   添加一个名字为westos,ip为1.1.1.100,子网掩码为255.255.255.0 的以太网

示例:通过以上的 add 参数给eth0设备添加一个名为westos,ip为172.25.51.100的以太网,如下:
在这里插入图片描述通过ifconfig来查看所添加的网络信息:
在这里插入图片描述通过modify参数可以修改一个网络接口的信息:

  • nmcli connection add type ethernet con-name westos ifname eth0 autoconnection yes   添加一个动态网络
  • nmcli connection modify westos ipv4.method auto   修改为动态网络

将静态的网络修改成为动态的网络:
在这里插入图片描述由于还没有开启DHCP服务,所以不能换成动态的ip,具体的设置DHCP服务会在后面介绍:
在这里插入图片描述

  • nmcli connection modify westos ipv4.method manual   将动态网络修改为静态网络
  • nmcli connection modify westos ipv4.addresses 172.25.51.100/24   修改ip

通过以上两个命令可以将动态网络修改为指定ip的静态网络,具体的修改步骤如下

(1). 先修改指定的ip地址,如下:

在这里插入图片描述(2). 然后再将动态的网络修改为静态的网络,如下:
在这里插入图片描述(3). 然后再重启网络并查看修改后的网络接口信息,即可修改成功:
在这里插入图片描述


管理网络配置文件

在linux系统中有一个目录是专门存放网络配置文件的,这个目录是/etc/sysconfig/network-scripts/
网络配置文件的命名规则
ifcfg-xxxx 网络配置文件一般以这种方式命名,后面可以跟任意的名称。

网络配置文件中的常见配置以及说明如下表:

配置说明
NAME=接口的名称
DEVICE=eth0网卡设备名,eth0表示第一张网卡
BOOTPROTO=none设备工作方式,是否自动获取IP(none、static、dhcp),dhcp为自动获取
HWADDR=00:0C:29:11:30:39MAC地址
NM_CONTROLLED=yes是否可以由Network Manager图形管理工具托管
ONBOOT=yes是否随网络服务启动当前网卡生效
TYPE=Ethernet网络类型,这里为以太网
UUID=5ab36190-a5df-4bf1-94d8-6c126afd05f1唯一识别码
IPADDR=172.25.254.80IP地址
NETMASK=255.255.255.0子网掩码
PREFIX=24子网掩码的另一种形式
GATEWAY=172.25.254.250网关
DNS1=114.114.114.114DNS
IPV6INIT=noIPv6是否启用,这里设置为不启用

(1). dhcp网络的设定

首先用vim打开要设定的网络接口的配置文件,如下:

vim /etc/sysconfig/network-scripts/ifcfg-eth0

在文件中编辑内容如下:
在这里插入图片描述
然后再执行重启network的命令就设定网络为dhcp了:

systemctl restart network

(2). 静态网络设定文件
同样先用vim打开要设定的网络接口的配置文件,如下:

vim /etc/sysconfig/network-scripts/ifcfg-eth0

然后在文件中编辑内容如下:
在这里插入图片描述
然后再执行重启network的命令:

systemctl restart network

然后再查看eth0,ip地址修改成功,如下:
在这里插入图片描述

(3). 一块网卡上配置多个ip
同样先用vim打开要设定的网络接口的配置文件,如下:

vim /etc/sysconfig/network-scripts/ifcfg-eth0

然后在文件中编辑内容如下:
在这里插入图片描述
然后再执行重启network的命令:

systemctl restart network

然后再次查看设定后的eth0设备的信息,修改成功,如下:
在这里插入图片描述
(4). 通过新建脚本的方式快速设定ip
我们可以通过新建一个脚本文件来对网络配置文件进行修改,并重启network服务,从而达到快速修改指定ip地址的目的。

在/usr/bin/目录下新建一个setnetwork的脚本文件,然后在文件中编辑如下内容:
在这里插入图片描述
wq保存并退出,然后给这个脚本文件增加执行权限:
在这里插入图片描述
然后测试脚步生效,对命令后面直接加要修改的ip地址进行ip的修改:
在这里插入图片描述
在这里插入图片描述
经过两次测试可以看到脚本成功生效。


网关

网关实质上是一个网络通向其他网络的IP地址。比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1—192. 168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1—192.168.2.254”,子网掩码为255.255.255.0。在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。而要实现这两个网络之间的通信,则必须通过网关。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。网络A向网络B转发数据包的过程。

路由器原理

网络中的设备相互通信主要是用它们的IP地址,路由器只能根据具体的IP地址来转发数据。IP地址由网络地址和主机地址两部分组成。在Internet中采用的是由子网掩码来确定网络地址和主机地址。子网掩码与IP地址一样都是32位的,并且这两者是一一对应的,子网掩码中“1”对应IP地址中的网络地址,“0”对应的是主机地址,网络地址和主机地址就构成了一个完整的IP地址。在同一个网络中,IP地址的网络地址必须是相同的。计算机之间的通信只能在具有相同网络地址的IP地址之间进行,如果想要与其他网段的计算机进行通信,则必须经过路由器转发出去。不同网络地址的IP地址是不能直接通信的,即便它们距离非常近,也不能进行通信。路由器的多个端口可以连接多个网段,每个端口的IP地址的网络地址都必须与所连接的网段的网络地址一致。不同的端口它的网络地址是不同的,所对应的网段也是不同的,这样才能使各个网段中的主机通过自己网段的IP地址把数据发送到路由器上。

网关实验环境的设定
我们为了充分的体现网关的作用,现设定如下实验环境:准备两个虚拟机,一个desktop,一个server;我们将desktop这台虚拟机视为路由器,将其设定两个网卡,并且两个网卡不在同一个网段,一个可以和真机处在同一个网段,另一个和server处在同一个网段;然后将desktop路由器虚拟机的地址伪装功能开启,使其变成真正的路由器,然后再把内核的路由功能开启;然后在server主机上设定网关,网关为路由器和自己处在同一网段的ip地址,最后用在server主机上用ping命令可以ping通另一个网段的ip。

(1). 给desktop虚拟机再开启一个网卡,让它有两个网卡:
在这里插入图片描述
点击下面的Add Hardware,然后设置如下:
在这里插入图片描述
再点击Finish,设定完毕,可以用ifconfig命令查看两个网卡:
在这里插入图片描述
(2). 给两个网卡分别设置不同网段的ip地址

在eth0的网络配置文件中写如下内容:
在这里插入图片描述
在eth1的网络配置文件中写如下内容:
在这里插入图片描述
然后重启network,并查看设定好的ip:

在这里插入图片描述
两个网卡的ip地址设置完毕。

(3). 将防火墙中的地址伪装功能开启
执行下面命令查看地址伪装功能是否开启:

firewall-cmd --list-all

在这里插入图片描述
可以看到 masquerade 那一项是 no 表示没有开启,通过执行下面命令开启:

firewall-cmd --permanent --add-masquerade
firewall-cmd --reload
firewall-cmd --list-all

在这里插入图片描述可以看到 masquerade 那一项变成了yes 表示已经开启了地址伪装功能。

(4). 开启内核路由功能

执行下面命令查看内核路由功能是否开启:

sysctl -a | grep ip_forward

在 /etc/sysctl.conf 中添加以下内容:
在这里插入图片描述
然后执行下面命令使 /etc/sysctl.conf 文件中的设定生效:

sysctl -p

在这里插入图片描述
net.ipv4.ip_forward 为0时代表关闭状态,为1时代表开启状态,此时表明已经打开了内核路由功能。

(5). 设定server虚拟机的ip地址为1网段
在这里插入图片描述
(6). 给server虚拟机设定网关

在eth0网络配置文件中增加 GATEWAY 网关,如下:

在这里插入图片描述
然后重启网络,并用下面命令查看网关:

route -n

在这里插入图片描述
可以看到网关设置成功

(7). 在server虚拟机上通过ping命令检测是否和不在同一网段的真机连接通畅
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值