一、有关网络的概念
- ip地址
ip地址(internet protocol ADDRESS) 网络进程地址
现今ip地址共有两个版本ipv4和ipv6
ipv4版本的地址是由32个0或1组成的4组8位的地址
如11111110.11111110.11111110.11111110=254.254.254.254 - 子网掩码
用来划分网络区域,子网掩码非0的位对应的ip上的数字表示这个ip的网络位,0位对应的数字是ip的主机位,主机位表示网络区域里某台主机。
如ip地址为172.25.254.33,子网掩码为255.255.255.0,则ip地址中的前三位为网络位,最后一位为主机位 - ip通信判定
网络位一致,主机位不一致的2个ip可以直接通讯
172.25.254.1/24 24=255.255.255.0
172.25.254.2/24 - 网关
网关是不同网段中实现网络互连的连接设备
172.25.254.31/24
1.1.1.65/24
这两个网络处于不同的网段,如果要实现网络的互联,就需要设置网关
二、网络设定工具
- ping
ping ##检测网络是否通畅
ping -w 2 ip ##2s后结束ping
ping -c 3 ip ##ping通三条后结束
在使用ping命令时,它会不停的显示信息,如果不人为停止它,它会一直ping下去,为了解决这样的问题,我们可以使用Ctrl+c快捷键,手动结束。同时也可以通过命令来控制它的时长,或者是显示的条数,从而实现自动的结束。
使用 ping -c ip 地址命令可以控制条数
我们在使用ping命令时,有时ping不通,会等待很长的时间,可以使用ping -w ip地址来设定等待时间
2. ifconfig
ifconfig ##查看或设定网络接口
ifconfig eth0 ##具体查看某一网卡的信息
ifconfig device ip/24 ##设定
使用ifconfig命令设定的ip地址都是临时的,reboot命令重启虚拟机,临时地址会自动消失
ifconfig device down ##关闭
ifconfig device up ##开启
3. ip addr
ip addr ##检测或设定网络接口
ip addr show ##检测所有网卡的信息
ip addr show eth0 ##检测某一网卡上的信息
ip addr add ip/24 dev device ##设定
device为我们网卡的名称,网卡名称是真实存在的,我们不能自己起名字
ip addr del dev eth0 ip/24 ##删除
使用删除命令,智能删除设定的临时网络,此命令删除永久的ip地址,我们重启systemctl restart network服务或者是使用nm-connection-editor查看,我们可以看到ip地址并未删除。
ip addr flush eth0 ##更改ip
注意:使用ip addr del dev eth0 ip地址,每次只能删除一个ip地址,而该命令可以将同一网卡上的所有ip清除,在使用时需要注意。
4. 图形方式设定ip
(1)nm-connection-editor
具体设置可以参考Linux入门之企业中的sshd服务管理中的ip地址设置
(2)nmtui
选择创建网络类型为以太网
选择manual,用户可以根据情况设置网络,选择Automatic,系统会自动为用户分配动态网络,如果我们的系统没有提供dhcp动态分配ip的服务,系统将不会自动分配网络
网络的删除页面
- 命令方式设定网络
nmcli device connect eth0 ##启用eth0网卡
nmcli device show eth0 ##查看网卡信息
nmcli device status eth0 ##查看网卡服务接口信息
nmcli device disconnect eth0 ##关闭eth0网卡
nmcli connection show ##查看连接状态
nmcli connection down westos ##断开网络连接
nmcli connection up westos ##开启网络连接
nmcli connection delete westos ##删除网络
nmcli connection add type ethernet con-name westos ifname eth0 ip4 172.25.254.100/24
##设定名为westos,ip为172.25.254.100的网络
nmcli connection modify westos ipv4.method auto ##静态网络转为动态网络
nmcli connection modify westos ipv4.method manual ##动态网络转为静态网络
nmcli connection modify westos ipv4.addresses 172.25.254.200/24
三、管理网络配置文件
网络配置目录 /etc/sysconfig/network-scripts/ifcfg-xxx
xxx为网卡名称,它是真实存在的
网络配置文件的命名规则如下
DEVICE=xxx ##设备名称
BOOTPROTO=dhcp|static|none ##设备工作方式
ONBOOT=yes ##网络服务开启时自动激活网卡
IPADDR= ip地址
PREFIX=24 ##子网掩码设定
NETMASK=255.255.255.0 ##子网掩码设定
NAME= 接口名称
示例一:动态网络设定
示例二:静态网络设定
示例三:一块网卡上配置多个IP
四、脚本设定网络
- 创建脚本文件
由于我们设定网络的步骤都是重复的,为此我们通过脚本语言来自动化的配置网络。我们的目的是让所有用户都可以使用该文件自动设定网络,我们需要修改用户权限,同时在文件中添加网络配置的一些信息。
- 测试
使用set_ipaddress.sh 设备名称 ip地址 来设定网络
五、网关
网关是用来实现不同网段之间互联的设备,网关被用作接收与自己处在同一网段主机的数据包
示例:设定网关,使不同网段的设备互通
- 准备工作
(1)虚拟机localhost设置为单网卡,ip地址为172.25.254.231
(2)client设置为双网卡,eth0的ip地址为172.25.254.131,eth1的ip地址为1.1.1.131(client作为路由器,172.25.25.131作为localhost的网关)
- 预先测试
localhost虚拟机ping与它不再同一网段的1.1.1.131
- client作为路由器的主机设置
在防火墙开启的状态下执行以下操作
systemctl start firewalld ##开启防火墙
sysctl -a | grep ip_forward
vim /etc/sysctl.conf ##修改配置文件
添加net.ipv4.ip_forward=1
sysctl -p ##使更改生效
firewall-cmd --list-all ##列出所有的信息
firewall-cmd --permanent --add-masquerade ##开启地址伪装功能
firewall-cmd --reload ##重新加载,使更改生效
- 为localhost虚拟机添加网关
route -n ##查看路由
vim /etc/sysconfig/network-scripts/ifcfg-eth0 ##设置网卡接口网关
vim /etc/sysconfig/network ##设置全局网关
- 测试
通过对网关的设置,两个不同网段的网络已经可以ping通了
六、dns设置
示例:使虚拟机可以上网
- 将真机设成路由器
- 在虚拟机中设置网关
- 修改配置文件
vim /etc/hosts ##本地解析文件
在该文件中添加向要访问的主机ip和域名,通过设置该虚拟机可以上网,但是它有太多限制,我们能访问的主机由我们添加的ip和域名数量决定
vim /etc/resolv.conf ##域名解析服务配置文件
在该文件中添加服务主机,虚拟机可以访问其他主机
设置好resolv.conf文件后,我们还在虚拟机网卡配置文件中添加提供dns服务的主机
4. 测试
让虚拟机ping其他的ip,观察是否能直接上网
七、dns的优先级
默认情况下 /etc/hosts 的优先级比 /etc/resolv.conf 的优先级高
通过对/etc/hosts 文件中主机的设置,我们可以看到默认情况下会先使用本地解析给出的ip,如果本地解析不能给出答案,才会到dns解析中找
vim /etc/hosts
vim /etc/nisswitch.conf ##优先级配置文件
我们可以通过调换dns和files的位置,更改两种服务的优先级
将dns解析的优先级调高,我们可以看到先访问的是dns给出的主机ip