linux网络管理
如果我们有多台linux系统,要实现系统之间的通讯怎么办?
- 第一步:
在每台的虚拟linux系统(centos7)中找到网络适配器(也就是现实中的网卡),将网络适配器配置成相同的(在现实中相当于连相同的线路)
如图网络适配器同样都选择NAT模式(相当于现实中的物理交换机),之后让它通电。
- 第二步:
开机,找到设置中的网络选项,因为系统安装的时候默认的网卡是关闭(是因为要保护不受攻击的),而我们要做的是要将它打开,通上电。这时我们可以查看它的相应配置
- 第三步:
用同样的方法打开多台linux系统,这样就实现了最基本的多台系统之间的网络通讯。
我们在打开多台linux系统的时候发现了在网络的设置的里面的IPv4的前三位都是一样的,只是第四位有所不同。
现在打开另一台linux系统(centos8)实验一下:
第一台的linux系统(centos7)的IPv4地址是:192.168.83.135,第二台linux系统(centos8)的IPv4地址是192.168.83.132。
我们进行验证一下,打开linux的命令行,用ping命令进行查询
也就是ping 192.168.83.132
观察有没有数据,如果有数据则证明两台系统之间的网络通讯成功了。
那么除了这一个ping命令,我们还有什么可以证明现在的linux系统是进行网络通讯呢?我们可以借助一个linux系统的网络浏览器访问另一个linux系统的IPv4地址,如果有页面显示正常就证明实现了网络通讯。
在centos7操作
首先先安装httpd服务
yum install -y httpd
关闭防火墙
systemctl stop firewalld
启动httpd服务
systemctl start httpd
在centos8打开浏览器输入192.168.83.135,观察网络页面。
页面显示正常,证明两台linux系统网络通讯成功
在网络页面上,发送数据的是服务器,接受数据的是客户机,一定要分清服务器和客户机的概念。
linux的GUI图形界面已经会配置了,以后没有图形,如果是CLI命令行该如何进行配置呢?
<强调,自己拿一个小本本记下来:每手动配置一个linux系统的IP地址一定要和自己本系统的自动分配的IP地址一样>
这样的话我们就要用命令修改网卡的配置文件,centos7的网卡配置文件在/etc/sysconfig/network-scripts/
中
- 先认识网卡
在传统上,linux的网络接口被枚举为eth0(0代表数字0,1,2等),这个eth是以太网的简写,也就是局域网,那么eth为什么有0,1,2,3,4呢,这是因为服务器害怕宕机,所以通常有多个。但是eth无法分清有线网和无线网。
eth无法分清该怎么办呢?就可以在网卡上加一些关键字:WLAN接口(无线网)以wl开头,WWAN接口(广域网)以ww开头,s表示的是可以拔插,p表示PCI地理位置
在centos6比较老的系统中,网卡是以eth开头的,在centos7比较新的系统中网卡通常以ens、wws、enp、eos开头的,后面的数字代表网卡的序号比如33、32
- 找到网卡文件
到网卡的文件夹
cd /etc/sysconfig/network-scripts/
查看网卡的文件
ls -l .
在我这台centos7中的网卡文件就是ifcfg-ens33了。
- 学会修改网卡文件
备份网卡文件
或者拍摄虚拟机快照
cp /etc/sysconfig/network-scripts/ifcfg-ens33 /tmp/
在配置网卡的时候需要用到NetworkManager服务。
这个NetworkManager服务(网络管理器)是一个动态网络的控制器和配置系统,它用于当网络设备可用时保持设备和连接开启并且激活,在默认情况下centos7/rhel7已经安装好了网络管理器,并且处于启用状态,网卡的运行和这个程序有很大的关系
查看NetworkManager服务的运行状态
systemctl status NetworkManager
看到active(running)表明正在运行。
还有一个服务network是NetworkManager服务的子程序,这个network管理的事情比如说更改了计算机的IP地址但是不生效就是network的关系,可以restart重启服务
查看network的运行状态
systemctl status network
也是正常的。
编辑网卡的配置文件
使用vim或者vi编辑
vi /etc/sysconfig/network-scripts/ifcfg-ens33
使用nmcli编辑
nmcli device
如果没有反应,证明你的机器上没有NetworkManager服务,怎么办?
安装一个NetworkManager程序
yum install -y NetworkManager
其实在图形界面中还可以使用nmtui(简易图形)或者nm-connection-editor(网络连接编辑器)命令编辑网卡文件
网卡的配置文件ifcfg-ens33内容如下:
将所有有关IPv6的行删除掉
现在手动更改地址并连接网络
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none# BOOT启动,protocol协议(获取IP地址的方式)分三种:dhcp自动(动态主机),none手动,static静态
IPADDR=192.168.83.135# IP是互联网协议,ADDRESS是地址,也就是IP地址是192.168.83.135,IP地址是一台主机在网络中的标识,同一个网络可以直接通信
NETMASK=255.255.255.0# NETMASK是子关掩码,是用来定义网络的,掩码分为两部分:一部分是255,一部分是0,和IP地址是一对
GATEWAY=192.168.83.2# GATEWAY是带你上网的路由器的地址,这里是vmware给你的地址,也叫网关,默认路由
DNS1=192.168.83.2# DNS是域名解析,当你输入网站时,他会告诉你IP地址,用来定位主机的
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
# 网卡的信息
NAME=ens33
UUID=05c11f06-7ee0-48b0-9f8e-36bdcc917ff8
DEVICE=ens33
ONBOOT=yes # BOOT是启动,ONBOOT代表是否启用该设备,yes是启动,no是不启动
<注意:IP地址,DNS一定要参照你自己的系统配置>
验证一下,重启网络
systemctl restart network
查看ip地址
ip a
用同样的方法配置另一台linux系统,重启服务。
这样两台linux系统就可以通信了。
不信,你可以用一台linux系统ping一下令一台的linux系统的IP地址试试,或者可以在浏览器中输入IP地址,如果显示正常,证明通讯成功了,实验就做完了。
为了明确分清这两台服务器和客户机,要对两台系统分别起一个新的名称。
查看主机名
hostname# host是主,name是名称,hostname代表linux系统的主机名称
配置主机名
hostnamectl set-hostname mycomputer.example.com# hostname是主机名称 ctl代表control,set是设置
这条命令实际上更改的是/etc/下的hostname文件,其实可以直接更改这个文件,可以达到相同的效果。
vim /etc/hostname
配置好后重启计算机
reboot# 或者是init 6
观察命令行前面的变化
网络测试工具
查看所有的ip信息
ip a
inet后的一串数字代表了ip地址
查看路由的信息
ip r# 或者是ip route
另一台的主机ping通讯,查看邻居
ip neigh
使用ping,127.0.0.1相当于自己
ping 127.0.0.1# 这条命令就相当于查自己的手机话费余额
ping 别人的ip地址# 代表连通了
网络的端口(port):
其实每一个程序都占用一个端口号,端口号是从0到65535之间,在一台服务器中安装了程序,怎么知道这个程序是好是坏呢?
- 查看网络端口
ss -tnl# ss是网络连接的状态,t代表tcp,n代表数字,l代表列出
服务器没有开启httpd服务时:
当服务器开启httpd服务时:
我们会发现Local Address:Port这一列中多了一行[::]:80,这就说明了httpd服务的端口是80,我们在上网的时候关心IP的同时还要关心端口号,这个端口号代表了机器是否提供了正常的服务。
可以在客户机中输入服务器的IP地址:端口来进行访问看是否报错。
也就是在客户机的浏览器中输入192.168.83.135:80
观察页面是否正常页面显示正常,说明httpd服务的端口是80.
现在在服务器中停止httpd服务,观察客户机页面的反应,
systemctl stop httpd
你会惊奇的发现客户机浏览器中的页面并不是立马报错消失,这是因为机器中有缓存,当你按下F5(刷新页面)的时候就发现页面不见了。
端口的查看很重要,但是一般浏览页面的时候不会手动输入端口号就可以正常的浏览页面,这是由于浏览器帮你输入了。
端口号的种类很多,什么程序不重要,什么端口不重要,重要的是端口的概念和查看的方法。
初始化服务器
- 最小化安装
- 为服务器配置root密码
sudo passwd root
systemctl stop firewalld
systemctl disable firewalld
- 关闭防火墙selinux
临时关闭
setenfoce 0
永久关闭
vi /etc/sysconfig/selinux
将SELINUX右侧的值更改为disabled
- 安装常用的程序
yum install -y lrzsz sysstat elinks wget net-tools bash-completion
- 将GUI界面转换为命令行界面
查看当前开机默认进入的界面
systemctl get-default
修改开机默认进入的界面
#开机默认进入图像化界面
systemctl set-default graphical.target
#开机默认进入命令行界面
systemctl set-default multi-user.target
- 关机拍摄快照
在你自己的快照上面写好这台服务器的配置