一.IP Address
1.什么是IP
网络之间互连的协议(IP)是Internet Protocol的外语缩写,中文缩写为“网协”。
2.基本原理
网协是怎样实现的?网络互连设备,如以太网、分组交换网等,它们相互之间不能互通,不能互通的主要原因是因为它们所传送数据的基本单元(技术上称之为“帧”)
的格式不同。IP协议实际上是一套由软件、程序组成的协议软件,它把各种不同“帧”统一转换成“网协数据包”格式,这种转换是因特网的一个最重要的特点,使所有各
种计算机都能在因特网上实现互通,即具有“开放性”的特点。
3.IP地址
所谓IP地址就是给每个连接在互联网上的主机分配的一个32位地址,即ip 是由32个01组成的
例如:11111110.11111110.11111110.11111110 = 254.254.254.254
4.基本格式及地址分配
如今的IP网络使用32位地址,以点分十进制表示,如192.168.0.1。
5.子网掩码
6.ip通信判定规则
网络位一致,主机位不一致的2个IP可以直接通讯,网络位不一样的两个IP则需要通过路由进行通信。
7.路由
路由(routing)是指分组从源到目的地时,决定端到端路径的网络范围的进程 [1] 。路由工作在OSI参考模型第三层——网络层的数据包转发设备。路由器通过转发
数据包来实现网络互连。虽然路由器可以支持多种协议(如TCP/IP、IPX/SPX、AppleTalk等协议),但是在我国绝大多数路由器运行TCP/IP协议。路由器通常连接两
个或多个由IP子网或点到点协议标识的逻辑端口,至少拥有1个物理端口。路由器根据收到数据包中的网络层地址以及路由器内部维护的路由表决定输出端口以及下一
跳地址,并且重写链路层数据包头实现转发数据包。路由器通过动态维护路由表来反映当前的网络拓扑,并通过网络上其他路由器交换路由和链路信息来维护路由表。
简单的理解,路由器就是两个网络位不同的主机要实现通信所必须的“翻译“、”中介“,而这个”翻译“”介绍“的过程就叫路由。
8.网关
网关(Gateway)又称网间连接器、协议转换器。网关在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关既可以用于广
域网互连,也可以用于局域网互连。 网关是一种充当转换重任的计算机系统或设备。使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之
间,网关是一个翻译器。与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。同层--应用层。
网关实质上是一个网络通向其他网络的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的某个主机
(如附图所示)。
二.Linux中的网络设定工具
1.命令方式设定网络(一)
常用命令及参数:
ping ##检测网络是否通畅
ifconfig ##查看或设定网络接口
ifconfig ##查看本机IP
ifconfig device ip/24 ##设定device设备上的IP和子网掩码
ifconfig device down ##关闭device网卡
ifconfig device up ##开启device网卡
注:此处的device是网卡的名称,即网卡被系统驱动以后设定的名字,用ifconfig可以看到,要看自己电脑里有什么网卡才能对其操作,device的名字是一个物理事实,
是硬件厂商设定好的,自己是改变不了的
可以连接百度网站,time代表连接延迟,如果无显示则代表连接不通
为了显示下图设定IP地址的效果,在此我把地址写清空了,截图内容仅供参考,如果已经配置好的应该是有IP地址的
设定IP地址为172.25.254.109
可以看到网卡设备eth0已经没有了
开启了网卡,不过我虚拟机的网卡有些问题开启了以后变成了动态地址,由于没有dhcp服务器给该虚拟机分配IP地址,所以开启以后没有了IP地址
ip addr ##检测或者设定网络接口
ip addr show ##显示所有网络信息
ip addr add ip/24 dev device ##设定device网卡IP和子网掩码,如网卡已存在配置,则无效,不能覆盖
ip addr change ip/24 dev device ##更改device网卡网络设定
ip addr 和 ip addr show 效果一样
2.图形方式设定网络
(1)nm-connection-editor ##nm=network manager服务,这个服务是用来记录网络状态的
利用该命令添加新的网络配置的流程:
点击Add
选择网络为以太网(Ether),点击Create...
编辑网络接口名称,选择MAC地址
关于MAC地址:
MAC(Media Access Control或者Medium Access Control)地址,意译为媒体访问控制,或称为物理地址、硬件地址,用来定义网络设备的位置。在OSI模型中,第三层网络层负责 IP地址,第二层数据链路层则负责 MAC地址。因此一个主机会有一个MAC地址,而每个网络位置会有一个专属于它的IP地址。
MAC地址是网卡决定的,是固定的。它用来表示互联网上每一个站点的标识符,采用十六进制数表示,共六个字节(48位)。其中,前三个字节是由IEEE的注册管理机构RA负责给不同厂家分配的代码(高位24位),也称为"编制上唯一的标识符"(Organizationally Unique Identifier),后三个字节(低位24位)由各厂家自行指派给生产的适配器接口,称为扩展标识符(唯一性)。一个地址块可以生成2个不同的地址。MAC地址实际上就是适配器地址或适配器标识符EUI-48。
选择IPV4工作方式
编辑IP地址和子网掩码以及网管
在使用该命令添加网络后,重启网络后再修改发现IP是修改不了的,因为network manager已经记录下了之前的网络配置信息,如果想要修改网络,需要关闭这个服务。
systemctl stop NetworkManager ##关闭network manager服务
systemctl restart nerwork ##重启网络服务
systemctl start NetworkManager ##开启network manager服务
2.nmtui
此命令是上命令的无图形版,可在不开启图形的模式下运行,而上命令则不可以
3.命令方式设定网络(二)
使用的命令为:nmcli ##使用该命令的前提是NetworkManager服务是开启的
nmcli device connect eth0 ##启用eth0网卡
nmcli device disconnect eth0 ##关闭eth0网卡
nmcli decive show eth0 ##查看网卡信息
nmcli device status eth0 ##查看网卡服务接口信息
关闭网卡接口
开启网卡接口以后,IP地址恢复正常
查看网卡信息
查看网卡接口服务信息
nmcli connection show ##显示网卡接口信息
nmcli connection down westos ##关闭网卡接口
nmcli connection up westos ##开启网卡接口
nmcli connection delete westos ##删除网卡接口
nmcli connection add type ethernet con-name yasuo ifname eth0 ip4 172.25.254.109/24 ##添加一个类型为以太网接口名字为yasuo网卡名字为eth0使用ipv4地址为172.25.254.109的网络
nmcli connection modify westos ipv4.method auto ##更改ipv4的网络连接方式为动态
nmcli connection modify westos ipv4.method manual ##更改ipv4的网络连接方式为静态
nmcli connection modify westos ipv4.address 172.25.254.209/24 ##更改ipv4的地址为172.25.254.209/24
小知识:在使用多参数的命令记不住参数时,按两下Tab键可以查看相关参数,不需要死记硬背,也不要凭想法乱写
显示网卡接口信息
删除网卡接口
更改IPV4工作方式为动态;更改IPV4工作方式为静态,并设置IP地址为175.25.254.109/24
4.修改配置文件设定网络
网络配置目录
/etc/sysconfig/network-scripts/
网络配置文件的命名规则:
ifcfg-xxxx
文件内容以书写格式:
DEVICE=XXX ##填写网卡名称,再次强调网卡名称是一个物理事实
BOOTPROTO=dhcp|static|none ##网卡的工作方式
ONBOOT=yes ##在网络服务启动的时候自动激活该配置的网卡
IPADDR=xxx.xxx.xxx.xxx ##IP地址
PREFIX=24 ##子网掩码,可以写全可以缩写
NETMASK=255.255.255.0 ##子网掩码,必须写全不能缩写为24
NAME= ##接口名称,这个可以任意设定
注:prefix和netmask只能写一个!!!而只有prefix能缩写
示例:
静态网络设定文件
vim /etc/sysconfig/network-scripts/ifcfg-eth0
按照上面的内容写入文件
重启网络
systemctl restart network
编辑前把原有的配置删除,一块网卡只能有一个配置文件
编辑网卡配置文件,退出保存
1 systemctl restart network #重启网络服务
如何让一块网卡上有多个IP:
写配置文件时IPADDR后加数字,例如第一个IPADDR后加0,表示第一个IP地址,以此类推
三.lo回环接口
在Linux中除了有网络接口外,还有虚拟接口,其中最著名的就是lo本地回环接口,它类似于人体内的神经系统,用于系统内部程序与软件的内部通信,
它的IP地址为127.0.0.1,主机内部服务在通信时该接口会开启
四.网关的设定
1.把真实主机变成路由器
systemctl stop libvirtd ##关闭虚拟程序管理服务
systemctl restart firewalld ##重启防火墙
systemctl start libvirtd ##开启虚拟程序管理服务
firewall-cmd --permanent --add-masquerade ##开启防火墙地址伪装功能
firewall-cmd --reload ##重新加载
firewall-cmd --list-all ##显示防火墙开启的所有端口
出现如下效果:
public (default, active)
interfaces: br0 enp0s25 wlp3s0
sources:
services: dhcpv6-client ssh
ports:
masquerade: yes <<<地址伪装功能开启,真实主机变成路由器
forward-ports:
icmp-blocks:
rich rules:
2.设定虚拟机网关
vim /etc/sysconfig/network ##全局网关,针对所以没有设定网关的网卡生效,而对设定的网卡则不生效
GATEWAY=172.25.254.9
vim /etc/sysconfig/network-scripts/ifcfg-eth0
GATEWAY0=172.25.254.9 ##当网卡中设定的IP有多个时,指定对于哪个IP生效,在后面加对应数字
route -n ##查看网关
效果如下:
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.43.1 0.0.0.0 UG 600 0 0 wlp3s0
172.25.9.0 0.0.0.0 255.255.255.0 U 425 0 0 br0
172.25.254.0 0.0.0.0 255.255.255.0 U 425 0 0 br0
192.168.43.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp3s0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
3.设定dns
domain name server == 域名解析服务 ##解析就是把域名变成IP
vim /etc/hosts ##本地解析文件
编辑格式为:ip + 域名
例如:220.181.111.188 www.baidu.com
vim /etc/resolv.conf ##dns的指向文件,即本机无法解析向外发送请求解析的指向文件
编辑格式为:
nameserver 114.114.114.114 ##当需要某个域名的IP地址时访问114.114.114.114请求解析
vim /etc/sysconfig/network-scripts/ifcfg-xxxx ##网卡配置文件
DNS1=114.114.114.114 ##永久更改dns,上面的操作当网卡重启后就自动清除了
注意:
当网络工作模式为dhcp时
系统会自动获得ip 网关 dns
那么/etc/resolv.conf 会被获得到的信息修改
如果不需要
则在 /etc/sysconfig/network-scripts/ifcfg-eth0中
加入PEERDNS=no
如果不知道在修改显卡配置文件时的参数,可以进入/usr/share/doc/initscripts-9.49.17/sysconfig.txt中查看
4.设定解析优先级
系统默认优先级:
/etc/hosts > /etc/resolv/conf
通过编辑相关配置文件可以改变优先级
vim /etc/nsswitch.conf
在第39行 hosts: files dns ##hosts文件优先
vim /etc/nsswitch.conf
在第39行 hosts: dns files ##resolv文件优先