博主QQ:819594300
博客地址:http://zpf666.blog.51cto.com/
有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持!
本博文目录:
一、设置IP地址、网关和DNS
二、把eno16777736改成eth0
三、服务控制
四、防火墙
正文部分:
一、设置IP地址、网关和DNS
Centos7里面的网卡命名方式从eth0,1,2的方式变成了enoXXXXX的格式。 en 代表的是enthernet(以太网),o 代表的是onboard (内置),那一串数字是主板的某种索引编号自动生成,以便保证其唯一性。和原先的命名方式对比,这种新的方式比较长,难以记忆,不过优点在于编号唯一,做系统迁移的时候不容易出错。
说明:Centos7默认安装好之后是没有自动开启网络连接的!
TYPE="Ethernet|Bridge"网络接口类型
BOOTPROTO="static|none" #启用静态IP地址(BOOTPROTO=dhcp启用动态获取IP)
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes|no" 是否支持IPV6
USERCTL="yes|no" 是否允许普通用户控制此接口
PEERDNS="yes|no" 是不是接受DHCP服务器指派的DNS服务器地址
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
NAME="eno16777736"
UUID="8071cc7b-d407-4dea-a41e-16f7d2e75ee9" 设备标识号
ONBOOT="yes" #开启自动启用网络连接(默认值为no)
IPADDR0="192.168.1.1" #设置IP地址 只有在BOOTPROTO={none|static}设置才有效
PREFIX0="24" #设置子网掩码 此设置也可用 PREFIX=n (n为掩码位数)
GATEWAY0="192.168.1.254" #设置网关 要与IP地址属于同一网段
DNS1="8.8.8.8" #设置主DNS
DNS2="6.6.6.6" #设置备DNS
HWADDR="00:0C:29:EB:F2:B3"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
延伸(一)
查看ip信息:
Ifconfig或者ip a或者ip addr 或者ip addr show //查看所有网卡的信息
ip addr show dev 网络设备名 //查看指定的网卡的信息
1.接口状态
2.硬件
3.IPv4地址与子网
4.广播地址,范围,设备名称
5.IPv6信息
延伸(二)
ip 命令现实关于网络性能的统计信息,接收(RX)发送(TX)数据包。
延伸(三)
用nmcli connection show网卡信息
延伸(四)
测试网络是否正常:
ping www.baidu.com #测试网络是否正常
traceroute www.baidu.com #显示出我们到达一个网络所经过的路由信息
而mtr是Centos7自带的工具,结合了"traceroute"和"ping"功能于一身的诊断工具。
第一列:显示的是IP地址和本机域名,这点和tracert很像
第二列:是显示的每个对应IP的丢包率
第三列:snt设置每秒发送数据包的数量,默认值是10,可以通过参数 -c来指定(-c后面跟数量)
第四列:显示的最近一次的返回时延
第五列:是平均值这个应该是发送ping包的平均时延
第六列:是最好或者说时延最短的
第七列:是最差或者说时延最长的
第八列:是标准偏差
延伸(五)
ethtool:查看网路接口设备本身的属性
格式:ethtool 网卡接口名称
其中:此连接需要的IPv4寻址模式(Require Ipv4 Addressing For ThisConnection To Complete) 支持IPv4寻址
重启network服务使其生效(我这里就不改IP地址,所以也就不用生效)。
方法3:通过nm-connection-editor来配置连接(注:必须在图形界面下运行,因为实际生产环境中没有图像化,所以不建议使用这种方法)
配置好了,重启网络服务,执行ifconfig或ip addr发现已经获取了新的地址。
一旦该连接建立成功,在/etc/sysconfig/networks-scripts 下面就会自动创建同名的配置文件。
方法4:nmcli命令
nmcli是个很强大的命令,后面一大堆选项和对象可以配置。看看帮助文档,对象可以是综合信息,网络,信号和连接。这里我们主要是学习连接的配置使用。
如何配置connection(连接),还是先看看帮助,它后面可以跟show,up,down, add, modify, edit, delete, reload。
Connection的范例:
范例:查看具体的设备信息可以通过“nmcli connection show 设备名”来查看
范例:修改现有连接
看看device(配置)有哪些参数
二、把eno16777736改成eth0
Centos完成之后,默认的网卡名称是eno16777736
输入如下命令,进入对应目录,编辑文件:
vim /etc/sysconfig/grub
然后,往这个文件中添加“net.ifnames=0 biosdevname=0”内容,作用是禁用该可预测命名规则。
步骤如下:
1)
2)
3)
4)
5)
6)
三、服务控制
systemd对linux来说,就是一个init程序,可以作为sysVinit和Upstat的替代。
Centos7监视和控制systemd的主要命令是systemctl,该命令可以用于查看系统状态和管理系统及服务。
Centos7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,像需要开机不登陆就能运行的程序,存在系统服务里,即:/usr/lib/systemd/system目录下。每一个服务以.service结尾,一般会分为3部分:[Unit]、[Service]和[Install]
[Unit]部分主要是对这个服务的说明,内容包括Description和After,Description用于描述服务,After用于描述服务类别
[Service]部分是服务的关键,是服务的一些具体运行参数的设置,这里Type=forking是后台运行的形式,PIDFile为存放PID的文件路径,ExecStart为服务的具体运行命令,ExecReload为重载命令,ExecStop为停止命令,注意:[Service]部分的启动、重启、停止命令全部要求使用绝对路径,使用相对路径则会报错!
[Install]部分是服务安装的相关设置,可设置为多用户的.
注意: 如果服务没有Install段落,一般意味着应该通过其它服务自动调用它们
使用systemd时,可通过正确编写单元配置文件来解决其依赖关系。典型的情况是,服务A要求服务B在A启动之前运行。在此情况下,向服务A配置文件中的 [Unit] 段添加Requires=B 和 After=B 即可
以下是截图网上相关资料:
[Unit]区块:启动顺序与依赖关系。
[Service]区块:启动行为
[Install]区块
我们对service和chkconfig两个命令都不陌生,Centos7系统中systemctl 是管制服务的主要工具,它整合了chkconfig 与 service功能于一体。
systemctl命令的基本操作格式是:
systemctl 动作 服务名.service
systemd提供更优秀的框架以表示系统服务间的依赖关系实现系统初始化时服务的并行启动,同时达到降低Shell的系统开销的效果,systemd的目标是尽可能启动更少进程;尽可能将更多进程并行启动。
分析系统状态:
systemctl或systemctl list-units #输出激活的单元
systemctllist-units --type=service #列出active状态的服务
systemctllist-unit-files #列出所有已安装服务
systemctl--failed #显示启动失败的服务
systemd-cgls #以树形列出正在运行的进程
所有可用的单元文件存放在 /usr/lib/systemd/system/ 和/etc/systemd/system/ 目录(后者优先级更高)
使用单元:
一个单元可以是系统服务(.service)、挂载点(.mount)、sockets(.sockets)。
使用systemctl 控制单元时,通常需要使用单元文件的全名,包括扩展名(例如sshd.service)。但是有些单元可以在systemctl中使用简写方式。如果无扩展名,systemctl 默认把扩展名当作 .service。例如sshd和sshd.service 是等价的。
挂载点会自动转化为相应的 .mount 单元。例如 /home 等价于 home.mount。
设备会自动转化为相应的 .device 单元,所以 /dev/sda2 等价于 dev-sda2.device。
systemctlstart <单元> #立即启动单元
systemctlstop <单元> #立即停止单元
systemctlrestart <单元> #重启单元
systemctlreload <单元> #重新读取单元配置
systemctlstatus <单元> #输出单元运行状态
systemctlis-enabled <单元> #检查单元是否配置为自动启动
systemctlenable <单元> #开机自动启动单元
systemctl disable <单元> #取消开机自动激活单元
systemctl is-active<单元> #查看单元是不是正在运行
systemctl daemon-reload #重新载入 systemd,扫描新的或有变动的单元(当服务的相对应的配置文件被改动了需要重载systemd。让其识别新配置)
电源管理:
systemctlreboot #重启
systemctlpoweroff #退出系统并停止电源(即关机)
举例:
systemctl is-enabled sshd.service #查询服务是否开机启动
systemctl enable *.service #开机运行服务
systemctl disable *.service #取消开机运行
systemctl start *.service #启动服务
systemctl stop *.service #停止服务
systemctl restart *.service #重启服务
systemctl reload *.service #重新加载服务配置文件
systemctl status *.service #查询服务运行状态
systemctl mask *.service #禁用指定服务
systemctl unmask *.service #激活指定服务
注:*代表某个服务的名字,如http的服务名为httpd
案例:
查看服务的状况
停止 sshd服务,查看状态
disable 服务,禁止开机自动运行
开机自动加载,并启动该服务
通过mask来禁用该服务,这样一旦服务终止,则无法再启动,必须通过unmask解除禁用才能使用systemctl start sshd 来运行服务。
除了上面提到的基本功能,systemctl还可以查询当前加载的模块单元,注意后缀为service的才是我们需要管理的服务
可以通过 type来过滤掉其他类型的单元
“systemctl list-unit-files --type service | grep 服务”
四、防火墙
Centos7已经默认使用firewalld作为防火墙,其使用方式已经变化。
基于iptables的防火墙被默认不启动,但仍然可以继续使用。
Centos7中有几种防火墙共存:firewalld、iptables、ebtables等,默认使用firewalld作为防火墙,管理工具是firewall-cmd。Centos7的内核版本是3.10,在此版本的内核里防火墙的包过滤机制是firewalld,使用firewalld来管理netfilter,不过底层调用的命令仍然是iptables等。因为这几种daemon是冲突的,所以建议禁用其他几种服务。
下面这张截图查询效果和上张一样。两种查询的方法:
例如若要禁用iptables、ip6tables、ebtables防火墙,方法如下图
或者
或者
查看这几种服务是否正在运行
Centos7虽然有iptables但是不建议使用了,使用新的firewalld服务。
Firewalld与旧版本的iptables相比较的不同点:
1)提供了支持网络/防火墙区域(zone)定义网络链接以及接口安全等级的防火墙管理工具。
2)拥有运行时配置和永久配置选项。
3)它也支持允许服务或者应用程序直接添加防火墙规则的接口。
4)以前的system-config-firewall防火墙模型是静态的,每次修改都要求防火墙完全重启。这个过程包括内核netfilter 防火墙模块的卸载和新配置所需模块的装载等。相反,firewall daemon 动态管理防火墙,不需要重启整个防火墙便可应用更改。因而也就没有必要重载所有内核防火墙模块了。
(注意:防火墙未讲解完毕,请静等待Centos7系列(三))