什么是 IP ADDRESS?
IP ADDRESS的全称是internet protocol ADDRESS,简称IP地址,是一种在Internet上的给主机编址的方式。常见的IP地址,分为IPv4与IPv6两大类,IP地址由32个0和1组成。
如:11111111.11111111.11111111.11111111表示255.255.255.255
什么是子网掩码?
子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。他的非0的位对应的ip上的数字表示ip网络位,子网掩码0位对应的数字是ip的主机位,网络位表示网络区域,主机位标和i网络区域 里某台主机。
ip通信判定
网络位一致,主机位不一致的两个ip可以直接通讯。
网络设定工具
ping ##检测网络是否畅通
ifconfig ##查看网络或设定网络接口
ifconfig eth0 ip/24 ##设定ip和子网掩码
ifconfig eth0 down ##关闭网卡
ifconfig eth0 up ##开启网卡
检测网络是否畅通,这里网络是连通的,能和百度进行通信。
使用ifconfig 命令查看网络或设定网络接口。ifconfig命令还可以用来设置临时ip,开启网卡或关闭网卡。
ip addr命令也有类似的功能。
ip addr ##查看网络或设定网络接口
ip addr show ##检测和查看网络接口
ip addr add ip/24 dev eth0 ##设定ip
ip addr flush eth0 ##刷新ip,会清除临时ip
这两个命令的不同点是ip addr 可以查看多块网卡的信息,而ifconfig命令只能看到一张网卡的信息,还有,上面所写的eth0只是设备名称,在使用命令时一定要注意。
图形方式设定ip
[root@desktop ~]# nm-connection-editor
打开设定界面,点击Edit
选择IPv4 Settings输入ip地址。
[root@desktop ~]# systemctl stop NetworkManager
[root@desktop ~]# systemctl restart network
[root@desktop ~]# systemctl start NetworkManager
因为NetworkManager会记录当前网络状态,所以要先把它关闭。
重启网络服务。
如果没有图形界面。
[root@desktop ~]# nmtui
其实和刚才的方法一样,只是界面看起来不一样了,这里同样选择Edit,之后设定ip,重启网络就好了。
命令方式设定网络
nmcli ##NetworkManager必须开启
nmcli device connet eth0 ##启动eth0网卡
nmcli device disconnect eth0 ##关闭eth0网卡
nmcli device show eth0 ##查看网卡信息
nmcli device status eth0 ##查看网卡服务接口信息
nmcli connetion down eth0 ##关闭网卡
nmcli connetion up eth0 ##开启网卡
nmcli connetion delete eth0 ##删除网卡
这里的功能和ifconfig和ip addr类似。
现在我们来试试用nmcli命令设定网络吧。
删除网卡信息。
添加网卡。
添加成功。
将静态ip改为动态ip
改完之后重启网络服务再查看,ip已经变了。
如果要将动态ip改回静态ip那么首先要指定一个ip
可以看到,修改成功。
通过修改配置文件设置网络
其实上面的操作本质上都是去修改配置文件。
/etc/sysconfig/network-scripts/ ##网络配置文件目录
网络配置文件命名规则
ifcfg-xxxx
TYPE=Ethernet ##网络类型
DEVICE= xxx ##设备名称
BOOTPROTO=dhcp|none ##设备工作方式
ONBOOT=yes ##网络服务开启时自动激活网卡
IPADDR= ##ip地址
PREFIX=24 ##子网掩码
NETMASK=255.255.255.0 ##子网掩码
NAME= ##接口名称
vim /etc/sysconfig/network-scripts/ifcfg-eth0
修改这个配置文件就可以修改网卡信息,需要注意的是,修改完之后要重启网络服务才会生效。
在开始实验之前,我们要先清楚两个概念。
路由器:能进行地址转换的多网卡主机。
网关:网络关卡,让指定网段ip通信。
准备实验环境
首先,我们需要准备两台主机,一台客户机,一台作为服务机。客户机设置1个ip,这里我们就设置为1.1.1.131,我们的目的是让他能和172.25.254/24这个网段的主机进行通信,那么,就需要一台服务机,这台服务机需要两块网卡,一块与要能客户机进行通信,另一块能和172.25.254/24这个网段的主机进行通信,这样,我们的服务机就可以作为路由器让客户机顺利与172.25.254/24这个网段的主机进行通信。
对客户机:
设置ip为1.1.1.131。
服务机
设置eth0的ip为1.1.1.231和服务机进行通信,设置eth1的ip为172.25.254.231与172.25.254/24这个网段的主机进行通信。
检测他们是否能够通信。
这样我们的实验环境就搭建好了。
实验:
对服务机:
sysctl -a | grep ip_forward ##查看陆游功能是否打开
vim /etc/sysctl.conf
改完之后启动服务。
这样陆游功能就打开了。
之后,我们要开启火墙的伪装功能去伪装客户机ip,实现与指定网段的通信。
查看火墙状态,确认是开启的。
firewall-cmd --add-masquerade
开启火墙的伪装功能,这是我们的客户机已经可以充当一个路由器了。
对客户机:
vim /etc/sysconfig/network-scripts/ifcfg-eth0
设置网关为1.1.1.231,并重启网络服务。
route -n
ping 172.25.254.31
可以看到,客户机已经可以和172.25.254/24这个网段的主机进行通信了。
用上面这种方法实现通信,就可以将我们的虚拟机连接外网了,需要注意的是,这是我们的虚拟机就是客户机,我们的真实机作为服务机。
将网络设定好之后,我们用我们的真实机ping一下百度,可以看到百度的ip地址为180.149.131.98。
之后,我们用虚拟机来ping一下百度的地址,可以发现,我们成功连接上了外网。
但是,我们打开火狐浏览器,发现直接输入百度的网址是连不通的。
但是直接输入ip地址是可以连接的。要想直接输入域名连接,我们就要了解一下DNS服务。
DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。
域名解析
静态域名解析:
静态域名解析就是在本地创建一个ip地址和域名对应关系的数据库。
vim /etc/hosts
格式:
ip 域名
输入百度域名后正常连接。
但是,当我们点击新闻按钮时,你会发现
是连不同的,因为我们在本地没有设定这个域名的映射关系,我们上网时用到的域名太多了,不可能一一设置他们的映射关系,所以我们就要用到动态域名解析。
动态域名解析:
动态域名解析服务,是将用户的动态IP地址映射到一个固定的域名解析服务上,用户每次连接网络的时候,客户端程序就会通过信息传递把该主机的动态IP地址传送给位于服务商主机上的服务器程序,服务程序负责提供DNS服务并实现动态域名解析
vim /etc/resolv.conf
在/etc/resolv.conf文件里写入DNS地址。
或者也可以
vim /etc/sysconfig/network-scripts/ifcfg-br0
在网卡配置文件中加上:
DNS1=114.114.114.114
不过修改这个文件需要重启网络服务才生效,而 /etc/resolv.conf文件改完之后就生效。
之后就可以正常上网了。
要注意的是,我们使用的两种映射方式是有先后顺序的,默认是先用静态域名解析,然后才是动态的,如果要修改他们的优先级的话:
vim /etc/nsswitch.conf
files表示静态的映射方式,dns表示动态的映射方式,改变的他们的顺序就可以更改他们的优先级。不过建议使用默认的方式,先使用静态的,因为使用静态的速度快,在本地找不到映射关系再使用静态的。
还有一点要注意的是,上面所说的都是我们再用静态ip的情况下,如果使用的是动态ip
重启网络服务后,/etc/resolv.conf文件中的nameserver值会发生改变
设置一个动态ip。
nameserver已经改变了。
如果要在重启网络后不改变nameserver,那么
vim /etc/sysconfig/network-scripts/ifcfg-eth1
在文件里加入这一行就OK了。