linux的网络配置
1.什么是IP ADDRESS
IP地址(Internet Protocol Address)被用来给Internet上的电脑一个编号。大家日常见到的情况是每台联网的PC上都需要有IP地址,才能正常通信。我们可以把“个人电脑”比作“一台电话”,那么“IP地址”就相当于“电话号码”,而Internet中的路由器,就相当于电信局的“程控式交换机”。
inInternet Protocol Address ##网络进程地址
ipv4 internet protocol version 4
IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。 IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。
11111110.11111110.11111110.11111110=254.254.254.254
2.子网掩码
子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。
对于A类地址来说,默认的子网掩码是255.0.0.0;
对于B类地址来说默认的子网掩码是255.255.0.0;
对于C类地址来说默认的子网掩码是255.255.255.0。
子网掩码非0的位对应的数字表示这个ip的网络位
子网掩码0位对应的数字是ip的主机位
网络位表示网络区域
主机位表示网络区域里某台主机
3.ip通信判定
网络位一致,主机位不一致的2个IP可以直接通讯
172.25.254.77/24 24=255.255.255.0
172.25.254.100/24
172.25.0.1/16(在这里说一下,范围大的ip会ping上范围小的ip,但相反的情况不一定能ping成功。且范围大的网络不稳定)
4.网络设定工具
1.ping ##检测网络是否通常
2.ifconfig ##查看或设定网络接口
ifconfig ##查看
ifconfig 网卡 ip netmask 子网掩码(可有可无) ##临时设定ip
ifconfig device down ##关闭
ifconfig device up ##开启 ( device就是网卡,例如eth0)
临时设定后覆盖原来的ip,会直接生效。若要使用原来的ip,需要重启网络
systemctl restart network
3.ip addr ##检测或设定网络接口
ip addr show ##检测
ip addr add ip/24 dev device 设定
例:给eth0添加一个ip为172.25.254.101/24
注意:device 的名字是一个物理事实,看到什么名字只能用什么名字
5.配置ip
1.图形界面
nm-connection-editor
例:配一个ip为172.25.254.200的网络
1)输入命令nm-connection-editor,选定原来的,然后点击delete
2)点击Add添加。这里将默认选择Ethernet,在点击Create
3)在最上方填入名称,这里以eth0为例,再选择Device MAC Adress,
4)更改IPv4 Settings 信息,在Method 那项选择 Manual 再点击下方Add
填入相应信息,网关(gateway)可以不填,但需要在那里点一下,然后选择最后的保存即可。
5)检测:出现此情况就说名成功了
2.文本化图形配置ip
nmtui
例:设置一个ip为172.25.254.110
1)输入命令 nmtui,选择 Edit a connection(此处可用“tab,上,下进行选择”),按下回车,将原来的ip删掉,再选择Add进行添加。选择默认的enternet,在选择create
2)填入profile name :westos(我以westos为例),device:eth0。在ipv4处,将后面的automatic回车后,选择manual
3)选择ipv4 后的show,填入相应的内容,如果不上网,geteway可以不填,完后选择最下方ok,推出即可
4)测试 ping 172025.254.110
3.命令方式设定网络
若要用此方法配置需要先搭建好实验环境,如下操作:
systemctl stop NetworkManager
systemctl restart network
systemctl start NetworkManager
nmcli 若要启用此服务, ##NetworkManger 必须开启(上边的命令)
nmcli device connect eth0 ##启用eth0网卡
nmcli device disconnect eth0 ##关闭eth0网卡
nmcli device show eth0 (if-name) ##查看网卡信息
nmcli device status eth0 ##查看网卡服务接口信息
nmcli connection delete westos #删除westos链接
nmcli connection down westos (con-name) #关闭指定链接
nmcli connection up westos #开启指定链接
nmcli connection show #显示所有网络链接
nmcli connection modify "westos" ipv4.addresses newip/24 #改变wetos的ip (这里,我将ip改为了172.25.254.200)
nmcli connection modify "westos" ipv4.method <auto|manual> #改变westos的工作方式为动态或者静态
nmcli connection add type ethernet con-name westos ifname eth0 autoconnect yes #添加dhcp网络
nmcli connection add type ethernet con-name westos ifname eth0 ip4 ip/24 #添加静态网络
4.ifconfig临时设定
ifconfig 网卡 ip netmask 子网掩码(可有可无) ##临时设定ip
6.管理网络配置文件
网络配置目录--------/etc/sysconfig/network-scripts/
网络配置文件命名规则
ifcfg-xxxx
DEVICE=xxx ##设备名称
BOOTPROTO=dhcp|static|none
ONBOOT=yes ##网络服务开启时自动**网卡
IPADDR=xxx ##IP地址
PREFIX=24 ##子网掩码
NETMASK=255.255.255.0 ##子网掩码(PREFIX=NETMASK)
NAME=xxx ##接口名称
示例:静态网络设定文件
vim /etc/sysconfig/network-scripts/ifcfg-eth0 /进去后文件是空的,需要编写相应的配置文件。
这里我以配置一个静态网络为例
##ifcfg-xxxx
执行命令:
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
IPADDR=172.25.254.130
PREFIX=24
NAME=wen
完事需要重启network
systenctl restart network,这时重新查看就发现已经成了自己设置的样子。
7.lo回环接口
回环接口———相当于—————人的神经
回环接口是些逻辑的接口,即虚拟的软件接口,它们并不是真正的路由器接口。在ospf路由协议中配置使用回环接口是为了确保在ospf进程中总有一个**的接口,回环接口可以用于ospf的配置和诊断
127.0.0.1
8.网关
大家都知道,从一个房间走到另一个房间,必然要经过一扇门。同样,从一个网络向另一个网络发送信息,也必须经过一道“关口”,这道关口就是网关。顾名思义,网关(Gateway) 就是一个网络连接到另一个网络的“关口”。也就是网络关卡。
网关(Gateway)又称网间连接器、协议转换器。默认网关在网络层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关的结构也和路由器类似,不同的是互连层。网关既可以用于广域网互连,也可以用于局域网互连 。
【说明:由于历史的原因,许多有关TCP/IP的文献曾经把网络层使用的路由器称为网关,在今天很多局域网采用都是路由来接入网络,因此通常指的网关就是路由器的IP!】
在OSI中,网关有两种:一种是面向连接的网关,一种是无连接的网关。当两个子网之间有一定距离时,往往将一个网关分成两半,中间用一条链路连接起来,我们称之为半网关。
按照不同的分类标准,网关也有很多种。TCP/IP协议里的网关是最常用的,在这里我们所讲的“网关”均指TCP/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地址,TCP/IP协议才能实现不同网络之 间的相互通信。那么这个IP地址是哪台机器的IP地址呢?网关的IP地址是具有路由功能的设备的IP地址,具有路由功能的设备有路由器、启用了路由协议的 服务器(实质上相当于一台路由器)、代理服务器(也相当于一台路由器)。
在和 Novell NetWare 网络交互操作的上下文中,网关在 Windows 网络中使用的服务器信息块 (SMB) 协议以及NetWare网络使用的 NetWare 核心协议 (NCP) 之间起着桥梁的作用。网关也被称为 IP路由器。
1.把真实主机变成路由器 (虚拟机能够上网)
在真实主机内,执行以下命令
systemctl stop libvirtd.service
systemctl restart firewalld.service
systemctl start libvirtd.service
#firewall-cmd --list (执行此命令时发现伪装功能并为开启)
firewall-cmd --permanent --add-masquerade
firewall-cmd --reload
firewall-cmd --list-all
[[email protected] ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: br0 enp2s0 wlp3s0
sources:
services: dhcpv6-client ssh
ports:
protocols:
masquerade: yes <地址伪装功能开启,真实主机变成路由器>
forward-ports:
sourceports:
icmp-blocks:
rich rules:
2.设定虚拟机网关
1)在想上网的虚拟机中,执行 vim /etc/sysconfig/network ##全局网关,针对所有没有设定网关的网卡生效
写入配置文件 :GATEWAY=172.25.254.77
重启网络:systemctl restart network, 再 route -n 这时会发现网关已经添加了。
2)vim /etc/sysconfig/network-scripts/ifcfg-eth0 添加配置文件 ##此种方式只针对某个网关。
GATEWAY0=172.25.254.77 ##当网卡中设定的IP有多个时,指定对于那个IP生效
GATEWAY1=172.25.254.77 ##当网卡中设定IP只有一个网卡时,
systemctl restart network
3.虚拟机网卡有问题时需要重置
1)真机中 virt-manager
2)选择像灯泡的东西,将原来的网卡删除,
3)添加新的网卡,在左边的那一栏选择Network, 将Device model 选项改为virtio集完成了网卡的重置。
4)内核不支持虚拟机与真机通信时
在虚拟机中,执行sysctl -a | grep ip_forwad,若出现=0,再执行vim /etc/sysctl.conf,加入配置文件net.ipv4.ip_forward = 1,用命令sysctl -a 查看是否更改成功。
9.DNS服务
DNS 是计算机域名系 统 (Domain Name System 或Domain Name Service) 的,缩写,它是由解析器和域名服务器组成的。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。其中域 名必须对应一个IP地址,而IP地址不一定有域名。域名系统采用类似目录树的等级结构。域名服务器为客户机/服务器模式中的服务器方,它主要有两种形式: 主服务器和转发服务器。将域名映射为IP地址的过程就称为“域名解析”。在Internet上域名与IP地址之间是一对一(或者多对一)的,也可采用 DNS轮循实现一对多,域名虽然便于人们记忆,但机器之间只认IP地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完 成,DNS就是进行域名解析的服务器。DNS 命名用于 Internet等 TCP/IP网络中,通过用户友好的名称查找计算机和服务。当用户在应用程序中输入 DNS 名称时,DNS 服务可以将此名称解析为与之相关的其他信息,如 IP 地址。因为,你在上网时输入的网址,是通过域名解析系统解析找到了相对应的IP地址,这样才能上网。其实,域名的最终指向是IP.
domain name server ==域名解析服务 ##解析就是把域名变成IP
1)在虚拟机中,
vim /etc/hosts ##本地解析文件
ip + 域名 ##自己知道的
例:这里我知道www.baidu.com 的ip为220.181.57.216220.181.57.216 www.baidu.com
2)vim /etc/resolv.conf ##DNS的指向文件
nameserver 114.114.114.114 ##当需要某个域名的IP地址时去问114.114.114.114
vim /etc/sysconfig/network-scripts/ifcfg-xxxx(eth0)
添加 DNS1=114.114.114.114 ##网卡内设置,永久性设置
注意:
当网络工作模式为dhcp时
系统会自动获取ip网关DNS
那么/etc/resolv.conf 会被获得到的信息修改
如果不需要获得DNS信息
在网卡配置内加入
PREEDNS=no
10.设定dns解析的优先级
默认情况下/etc/hosts 中的 优先于 /etc/resolv.conf,但这个优先级不是一成不变的,可以更改下列配置文件中的39行内容的顺序实现更改优先级。
vim /etc/nsswitch.conf
38 #hosts: db files nisplus nis dns
39 hosts: files dns ##files代表本地解析文件,dns代表dns服务器,那个在前面那个优先
11.dhcp服务
做实验前要将两台虚拟机重置
1)环境配置
在服务器中设置(静态网):vim /etc/sysconfig/network-scripts/ifcfg-eth0
重启网络: systemctl restart network
配置内部文件: vim /etc/yum.repos.d/rhel_dvd.repo,如下图
yum clean all
ping 172.25.254.150
执行 yum repolist list命令时,可能会出现报错
[[email protected] ~]# ^C
[[email protected] ~]# yum repolist list
Loaded plugins: langpacks
Existing lock /var/run/yum.pid: another copy is running as pid 2156.
Another app is currently holding the yum lock; waiting for it to exit...
The other application is: PackageKit
Memory : 101 M RSS (503 MB VSZ)
Started: Thu Jul 26 21:03:32 2018 - 25:47 ago
State :“”“ Sleeping, pid: 2156”“” ###若出现这种情况,需要用kill -9 2156 命令
Another app is currently holding the yum lock; waiting for it to exit...
The other application is: PackageKit
Memory : 101 M RSS (503 MB VSZ)
Started: Thu Jul 26 21:03:32 2018 - 25:49 ago
State : Sleeping, pid: 2156
yum repolist list不报错时,
yum repolist
出现下图情况时,说明环境已配好
2)软件安装
yum install dhcp -y
vim /etc/dhcp/dhcpd.conf
可以看到配置文件中有#see /usr/share/doc/dhcp*/dhcpd.conf.example
我们需要将其复制到自己的文件下,cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
这时再查看配置文件 vim /etc/dhcp/dhcpd.conf,我们发现如下图样子,说明软件已安装成功
3)更改配置文件
vim /etc/dhcp/dhcpd.conf 作如下操作
35行以后删除
27,28行删除
7行 域名 #7 option domain-name "wen.org";(可以自己设置名字)
8行 dns #8 option domain-name-servers 114.114.114.114;10行 默认租约 #10 default-lease-time 600;
11行 最长租约 #11 max-lease-time 7200;30行 子网设定 #subnet 172.25.254.0 netmask 255.255.255.0 {
31行 ip地址池 #31 range 172.25.254.40 172.25.254.100;
32行 客户主机能获得的网关 #32 option routers 172.25.254.30;
退出保存后重启dhcpd
systemctl restart dhcpd
关闭火墙
systemctl stop firewalld.service
4)测试
在网络工作模式是dhcp的主机中重启网络可以看到ip,gateway,dns
注:
在服务端:通过mac地址查看将ip分给谁 『mac 线路仲裁(全球唯一)』
cat /var/lib/dhcpd/dhcpd.leases
在网络工作模式是dhcp的主机中
cat /var/log/messages 可以通过日志查看从哪里获得的地址