网络基础知识
在本节开始之前,我们需要了解一个概念:IP地址。我们发快递,需要知道对方的地址;给某个人写信,需要知道对方的地址;呼叫上门服务,服务方需要知道你家的地址。而我们在网上冲浪时,你的电脑实际上也有一个地址,而你访问的网页所在的服务器也有一个地址,而这个地址就是IP地址。网上冲浪就是你的电脑IP在和服务器的IP通信,因此IP地址对于我们来说尤为关键。
IP地址全称为Internet Protocol Address,它是一种协议地址,所有联网设备都遵从这种协议才能进行通信。目前绝大多数使用的是IPV4(Internet Protocol version 4)的地址,下一代IPV6的协议地址已经小规模应用了,目前我们的学习仍以IPV4为主。计算机只认识二进制数1和0,而IP地址就是一个32位的二进制数,然后分割成4个8位的二进制数。而这32位中又有网络标识符和主机标识符两种标记,看下面的例子。
IP地址二进制: 11000000 10101000 00100110 10000001 ==》 转换成十进制IP地址: 192.168.38.129
子网掩码二进制:11111111 11111111 11111111 00000000 ==》转换成十进制的子网掩码:255.255.255.0
注:请自行了解十进制和二进制之间的转换
请看子网掩码部分,1对应的IP地址位表示网络位,0对应的IP地址位表示主机位。也就是说"11000000 10101000 00100110"是网络地址,而"10000001"是主机地址,对应的十进制地址就是"192.168.38"是网络地址,"129"是主机地址。而只有在同一个网络下的主机才能进行通信,不在同一个网络下的主机则不可以通信。子网掩码就是为了标记一个地址中的网络位和主机位,因此它是和IP地址结合使用的,而它还可以和IP地址结合表示:192.168.38.129/24, 这个24就是二进制中1的个数,表示这个地址有24位掩码。
不同网络下的主机不可以互相通信,但是网上冲浪的网站和我们的电脑并不在同一个网络下,这是怎么做到通信的?这就需要一个叫网关的东西,它可以将两个不相干的网络连接起来,以使得这两个不同网络下的主机可以跨网络通信。打个比方,公司A将一份文件给了前台,要求她送到公司B的行政部门,该前台将文件送给了公司B的前台,公司B的前台又将该文件送到行政部门完成这个传递过程。而公司A、B的前台就相当于网关,她们打通了两家公司的传送过程。
我们通常使用的手机,电脑及其它联网设备在家中可以自动获取配置ip地址。这是因为路由器中包含了一个叫作DHCP(Dynamic Host Configuration Protocol)的服务为这些连入路由器的设备自动配置ip地址,而我们在安装虚拟机中的rocky linux时,打开网络连接,也通过DHCP服务自动配置了一个地址,今天的教程将会通过命令配置一个静态IP。
最后了解一个知识:DNS。全称Domain Name System,它是映射IP地址和域名的关键。比如我们经常使用的bing搜索引擎的网址为,而它的服务器地址为202.89.233.100。bing公司将域名cn.bing.com注册后与202.89.233.100关联起来,而我们在浏览器中输入cn.bing.com这个域名后,DNS会自动为我们解析这个域名,之后我们便得到202.89.233.100这个IP地址进行使用。
以上知识只是简略介绍,请百科搜索IP地址、子网掩码、网关、DHCP和DNS进行深入了解。有了这些基础知识,我们就可以进行本节的教程了。
linux系统中的网络配置
使用nmcli配置网络
上一节我们学习了更改系统日期时间、系统语言、键盘类型等内容,这节学习配置linux系统中的网络。
3.1的内容就是我们在安装rocky linux时,找开了网络连接,系统通过DHCP自动为我们配置了一个IP地址,现在我们尝试手动配置一个静态的IP地址,这个就是3.2的内容了。
为了让我们的此次配置行动得以顺利实施,我们也需要准备以上信息,不过可以忽略IPv6的内容,只准备IPv4的内容。此次手动配置需要配置rocky linux当前所在网络的IP,因此我们先找到自己安装的rocky linux中的网络信息,在命令行中输入以下命令即可:
nmcli d show
上图是我的rocky linux系统中的网络详情,注意红框中的内容,与我们这次的网络配置有关。所以我们收集到的信息如下:
# 一个带子网掩码的IPv4地址(在原来的地址上+1): 192.168.44.130/24 # 网关 192.168.44.2 # dns 192.168.44.2 # domain保持相同即可 localdomain
以上信息请以自己本机中的信息为准,准备妥当后我们就可以手动配置一个IP了:
# 新增一个网络连接配置文件: nmcli connection add con-name test ifname ens160 type ethernet # add:添加 con-name:配置名称,我这里起名为test ifname:接口名称,我们使用已经存在的ens160 type:类型为ethernet # nmcli请使用nmcli --help或man nmcli了解更详细的用法 # 为这个配置文件设置我们刚刚准备好的ipv4地址 nmcli connection modify test i 192.168.44.130/24 # 设置连接方式为手动连接 nmcli connection modify test i manual # 为这个地址设置网关 nmcli connection modify test i 192.168.44.2 # 为这个地址设置dns nmcli connection modify test i 192.168.44.2 # 为这个地址设置搜索域名 nmcli connection modify test i-search localdomain # 查看我们新增的网络配置 nmcli connection show
因为原来的ens160(name下)配置使用的是ens160(device下,即ifname)这个接口,而我们新增的网络配置也是使用的ens160(device下,即ifname)这个接口,因此在激活我们自己的配置文件之前,要把原来的ens160(name下)关闭以防止它占用这个ens160(device下,即ifname)接口。
# 关闭原ens160的配置连接 nmcli connection down ens160 # 激活我们自己的配置文件 nmcli connection up test # 测试我们配置的网络连接是否可用 ping bing.com # 可以使用键盘左下角ctrl+c键,取消ping的进程,只要ping正常,就说明我们的配置文件成功了 # 查看配置好的网络 nmcli device show ens160
如果你的实验结果和上面的截图相似,那么你就成功了。但如果ping一直没有结果,说明你的配置有误,请按以上教程仔细检查自己的步骤是否正确。
现在我们将系统连接恢复到之前的状态。
# 关闭刚刚激活的网络连接 nmcli connection down test # 删除test的配置 nmcli connection delete test # 激活系统默认的网络配置 nmcli connection up ens160 # 检查网络是否正常 ping bing.com # ctrl+c可以取消Ping的进程
使用nmtui配置网络
在redhat官方文档中,提供了另一个配置网络的工具,不过它需要你在系统中安装NetworkManager-tui后才能使用它。
# 安装NetworkManager-tui,不过我们安装系统时选择了Workstation环境,它是默认安装的 sudo yum install NetworkManager-tui
此命令提供了一个较为可视化的配置界面,相比nmcli,nmtui配置网络时更直观,使用时也非常简单,直接在命令行输入nmtui即可。
注:此次配置还是使用我们刚刚收集到的信息
在命令行输入nmtui后,会出现一个TUI(Text-based User Interface)界面:
它不是GUI,但是和GUI有着相似的图形界面,它可以使用方向键移动选项,tab键跳转选项,使用回车键与选定的选项进行交互,左上角的ESC键退出界面等简单的操作。
使用nmtui为系统配置一个网络连接配置:
- 在命令行输入nmtui
- 选择Edit a connection然后按下回车键
- 选择add,然后选择Ethernet
- 在页面中配置IP地址的相关属性后选择下面的OK,如下
注意上图中的红色框配置,以自己系统中的信息为准,使用上一节自己在nmcli中使用的信息即可。
- 选择back回到主菜单,然后选择Activate a connection
- 选中默认的ens160,然后选择右侧的Deactivate将其关闭,会自动激活刚刚创建好的test网络连接
- 查看新增的网络配置nmcli connection show
- ping bing.com测试我们配置好的网络是否正常,使用nmcli device show ens160查看配置好的网络
如果你的ping正常,说明此次网络配置成功了,如果不正常,请按步骤检查自己的配置是否有误。
其它的网络配置方法
此外文档里还提到了web console和RHEL System Roles,这两个暂时不作介绍,它们需要借助额外的工具才能完成配置。该节文档只是简单介绍rocky linux 8的网络配置,RHEL的文档中还有专题介绍更详细的网络配置,待对linux系统有进一步的了解之后再去阅读它吧。