为什么要学习LINUX
作为网工,除了必要的网络设备配置,实际工作中我们会接触到服务器资源,可能需承接系统层面的运维工作,而服务器多数基于linux部署
不同于我们常接触的windows(聚焦于用户界面,用户使用体验)。linux更偏向于命令行界面,由此它不需要花费额外的资源去渲染UI界面
较windows,linux在部署、启动、运行服务方面更为快捷可靠
基于网工的视角去接触linux,先从linux的网络配置开始了解
linux不同操作系统的配置,命令大差不差,以Centos为例进行介绍
基础概念对比
linux是靠文件构建起来的操作系统。
我们执行的命令实际上只是通过命令去更改主机上的某一个或某一些文件内容,因此linux十分灵活。正因为它的灵活性,误删文件时可能会导致操作系统无法运行~
软件使用:
windows中,我们可以安装软件(.exe)来满足我们的使用需求,如微信用于工作沟通,word用于写文档。
linux中,对应.exe,我们称之为服务。安装、配置并使用服务来满足我们的使用需求。
网络配置方式
Centos有两种主流的方式(服务)配置网络:
- network-manager:Centos8及之后使用
manager为network的升级版本,官方建议通过manager进行网络配置。但实际环境中大部分还是在用network配置网络
配置网络的步骤也有两种:
1> 更改网卡配置文件 --> 重启网卡或者重启网络服务
2> 通过服务提供的命令行进行网络配置
network一般使用更改网卡配置文件的方式来配置网络
networkmanager一般使用命令行配置
network配置网络
network会加载文件**/etc/sysconfig/network-scripts/ifcfg-xxx来配置网络
其中xxx为网卡名称
以下为文件内容模板,仅介绍常用配置
TYPE="Ethernet"# 网卡类型,此处为以太网
BOOTPROTO="none"# IP获取方式,可填入值为static(静态配置)、dhcp(动态获取)、none(不指定,实际也为静态)
DEFROUTE="yes"# 启用默认路由,使能后主机会新增一条0.0.0.0/0 gateway的默认路由
IPV6INIT="none"# 禁止启用IPv6
NAME="eth0"# 网卡别名(如果搞不懂NAME与DEVICE字段的区别,直接都配成网卡名)
DEVICE="eth0"# 设备名(与网卡名一致)
ONBOOT="yes"# 开机自动启用网卡(一般建议设置yes,否则重启会丢失网络连接)
IPADDR="10.0.12.4"# 静态IP地址
PREFIX="22"# 掩码
NETMASK="255.255.252.0"# 掩码,与PREFIX方式二选一即可,切勿同时配置两个
GATEWAY="10.0.12.1"# 网关
DNS1="183.60.83.19"# DNS1,优先
DNS2="183.60.82.98"# DNS2,备用
注:当IP获取方式配置为DHCP时,后面的IP、DNS、GATEWAY无需配置也不建议配置,但其他参数仍需要配置
下面以配置eth0网卡为例
通过找到需要更改的网卡
# 执行ifconfig来找到要配置的网卡名
[root@VM-12-4-centos ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 52:54:00:c7:22:24 txqueuelen 1000 (Ethernet)
RX packets 112334469 bytes 18370785275 (17.1 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 107965580 bytes 16716183299 (15.5 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 762 bytes 75998 (74.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 762 bytes 75998 (74.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
配置网卡文件
# 备份文件
[root@VM-12-4-centos ~]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.bak
# 编辑文件
[root@VM-12-4-centos ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
# 按i进入编辑模式
TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="yes"
IPV6INIT="none"
NAME="eth0"
DEVICE="eth0"
ONBOOT="yes"
IPADDR="10.0.12.4"
PREFIX="22"
GATEWAY="10.0.12.1"
DNS1="183.60.83.19"
DNS2="183.60.82.98"
# 按esc退出编辑模式,输入:号,输入wq保存退出
重启服务或者重启网卡,使文件加载生效
# 以下方式二选一
# 方式一,重启整个network服务。相当于同时重启所有网卡,会清除所有临时网络配置
[root@VM-12-4-centos ~] systemctl restart network
# 方式二,仅重启eth0网卡。推荐采用此方式,影响更小
[root@VM-12-4-centos ~] ifdown eth0 && ifup eth0
验证
# 查看地址是否生效
[root@VM-12-4-centos ~]# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.12.4 netmask 255.255.252.0 broadcast 10.0.15.255
inet6 fe80::5054:ff:fec7:2224 prefixlen 64 scopeid 0x20<link>
ether 52:54:00:c7:22:24 txqueuelen 1000 (Ethernet)
RX packets 112366751 bytes 18376788181 (17.1 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 107994128 bytes 16720299270 (15.5 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
# 查看默认路由是否生效
[root@VM-12-4-centos ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.12.1 0.0.0.0 UG 0 0 0 eth0
network配置路由
服务器上有多张不同网段网卡的情况,如果给每个网卡都起一个默认网关,会导致连通性问题
此时需要通过明细路由控制去往特定目的IP走哪张网卡
新增临时路由
# 新增临时路由:去往8.8.8.8的流量走网卡eth0,网关(即下一跳)为10.0.12.1
[root@VM-12-4-centos ~]# ip route add 8.8.8.8/32 via 10.0.12.1 dev eth0
# add,新增
# 8.8.8.8/32,目的IP/掩码
# 10.0.12.1,网关,即下一跳
# eth0,网卡名称
# 验证是否生效
[root@VM-12-4-centos ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
8.8.8.8 10.0.12.1 255.255.255.255 UGH 0 0 0 eth0
删除临时路由
# 删除临时路由:去往8.8.8.8的流量走网卡eth0,网关(即下一跳)为10.0.12.1
[root@VM-12-4-centos ~]# ip route del 8.8.8.8/32
新增永久路由
# 新增一个路由文件,文件路径与网卡配置文件一致,文件名称为route-xx,其中xx为网卡名
# network默认会查找符合命名规范的文件加载
[root@VM-12-4-centos ~]# vi /etc/sysconfig/network-scripts/route-eth0
# 添加以下内容
8.8.8.8/32 via 10.0.12.1
# 重启网卡/服务
# 加载文件的永久路由配置需要重启服务/网卡
[root@VM-12-4-centos ~]# systemctl restart network
或者
[root@VM-12-4-centos ~] ifdown eth0 && ifup eth0
删除永久路由
# 在/etc/sysconfig/network-scripts/route-eth0文件删除不需要的路由
# 重启网卡/文件
需要注意:
1> 临时路由在重启网卡或者network服务后会失效
2> 永久路由在重启网卡或者network服务后才会生效
配置永久路由后可能担心立即重启会影响现有的流量
此时可同时配置临时+永久路由
当服务或网卡未重启前,依靠临时路由指引
当服务/网卡后续重启后,会加载永久路由