一.网络配置与错误排除
1.网络常用配置文件
/etc/hostname | 主机名等配置文件 |
/etc/sysconfig/network-scripts/ifcfg-ensN | 网卡N的配置文件 |
以上两个配置文件中的网关不一致时,ifcfg-ensN的优先
/etc/sysconfig/static-routes | 静态路由条目的存储文 |
/etc/sysconfig/network-scripts/route-ethN | 静态路由条目的存储文件 |
/etc/resolv.conf | DNS解析配置文件 |
/etc/hosts | 本机域名解析文件 |
2.网络地址配置
ifconfig 网络配置命令
不带任何参数 | 查看所有网卡的信息,同windows中的ipconfig |
ifconfig ensN | 查看网卡N的信息 |
ifconfig ensN up/down,ifdown/ifup ensN | 启用或者禁用网卡N |
ifconfig ensN 192.168.1.1 netmask 255.255.255.128 | 为网卡N配置ip地址,但是重启 网络服务后,此配置将丢失,一般将配置写进ifcfg-ensN文件中 |
ifcfg-ensN
• 路径:/etc/sysconfig/network-scripts/ifcfg-ensN
• 格式:分为动态获取和静态配置
动态获取IP地址(DHCP)
每次修改完网卡信息后需要重启网卡或者重启网络服务
静态配置网络地址
添加网卡
可以复制ifcfg-eth0生成其它网卡的配置信息,然后修改DEVICE、HWADDR等信息,删除UUID
一张“网卡N”以下三处的MAC地址需要一致
• /etc/udev/rules.d/70-persistent-net.rules
• ifconfig
• ifcfg-ethN
网络服务
• systemctl status/stop/disable NetworkManager.service | 用户桌面式网络管理(shell中强烈建 议关闭此服务) |
• systemctl status/stop/start/restart network.service | 查看状态、停止、启用、重启 |
3.网络状态监控
netstat 显示网络状态
• -n或--numeric 直接使用IP地址,而不通过域名服务器
• -t或--tcp 显示TCP传输协议的连线状况
• -u或--udp 显示UDP传输协议的连线状况
• -r 显示路由表,同route命令
• -i 显示网络接口列表
• -s 显示所有端口的统计信息
eg:
• netstat -tunlp 显示系统开启的端口号
• netstat -ap | grep ssh 找出程序运行的端口
其它命令
• ping、traceroute、nslookup、dig、host
状态说明
LISTEN | 侦听来自远方的TCP端口的连接请求 |
SYN-SENT | 在发送连接请求后等待匹配的连接请求 (如果有大量这样的状态包,检查是否中招了) |
SYN-RECEIVED | 再收到和发送一个连接请求后等待对 方对连接请求的确认(如有大量此状态,估计被flood攻 击了) |
ESTABLISHED | 代表一个打开的连接 |
FIN-WAIT-1 | 等待远程TCP连接中断请求,或先前的连 接中断请求的确认 |
FIN-WAIT-2 | 从远程TCP等待连接中断请求 |
CLOSE-WAIT | 等待从本地用户发来的连接中断请求 |
CLOSING | 等待远程TCP对连接中断的确认 |
LAST-ACK | 等待原来的发向远程TCP的连接中断请求 的确认(不是什么好东西,此项出现,检查是否被攻击) |
TIME-WAIT | 等待足够的时间以确保远程TCP接收到连 接中断请求的确认 |
CLOSED | 没有任何连接状态 |
二.服务管理
1.Linux运行级别
运行级别 | 含义 |
0 | 关机 |
1 | 单用户模式,可以想象为windows的安全模式,注意用于系统修复 |
2 | 不完全命令行模式,不包括NFS服务(网络服务) |
3 | 完全命令行模式,标准字符界面 |
4 | 系统保留 |
5 | 图形模式 |
6 | 重启动 |
2.运行级别原理
查看运行级别用: runlevel //第一个数为之前运行级别,后一个数为当前运行级别
systemctl get-default //查看默认运行级别
设置默认运行级别:systemctl set-default multi-user.target //修改运行等级为3
systemctl set-default graphical.target //修改运行等级为5
systemctl set-default multi-user.target //修改运行等级为3(服务器)
systemctl set-default graphical.target //修改运行等级为5(客户端)
设置完成后需要重启:init 6
切换运行级别:systemctl isolate multi-user.target / init 3 //在不重启系统情况下,将运行级别切换到3。
systemctl isolate graphical.target / init 5 //在不重启系统情况下,将运行级别切
换到5。
进init 0为关机,init 6为重启系统入其它运行级别用:init N
在文件/etc/inittab 中查看对应运行级别
3.服务管理及控制
systemctl 管理服务的命令
• systemctl status/stop/start/restart srv_name 管理服务srv_name的启停(临时)
systemctl enable/disable srv_name 管理服务srv_name默认的启停(重启永久生效)
eg: systemctl stop firewalld.service 临时停止防火墙服务
• 也可以使用/etc/rc.d/init.d/gpm status方式管理,但是不推荐
• ntsysv 显示图形界面控制服务的启停
三.软件操作
1.软件安装形式
源码
绝大多数开源软件都是以源代码形式发布的,源代码一般会被打包成tar.gz的归档压缩文件,程 序源代码需要编译成为二进制形式之后才能够运行使用。虽然源代码形式的软件使用起来较为 麻烦,但是兼容性及可控制性较好。
RPM
RPM(redhat Package Manager)是Linux下最流行的软件包管理工具,通过将源代码基于特定 平台系统编译为可执行文件,并保持依赖关系,来简化开源软件的安装管理。
YUM
RPM无法自动解决软件的依赖关系,使用YUM可以解决这个问题。(debian,ubuntu发行版采 用apt-get包管理工具)
YUM (yellowdog updater modified) 主要用于自动升级、安装/移除RPM软件包,它能够自动查 找并解决RPM包之间的依赖关系,而无需管理员逐个手工的去安装每一个RPM包
形式一:源码
• 源代码基本安装流程:
• ./configure 进行软件配置:开启功能、调整安装目录、工作目录
• make 进行编译,make命令会根据当前软件开发时的语言,自动识别跟调用相应 的编译器,进行二进制编译
• make install 进行软件的安装(设置启动文件、移动执行文件)
• 实例:源码安装VMware Tools
安装VMware tools
1.检查镜像文件是否连接
2.点击重新安装VMware tools
3.使用cd /media 进入media目录下
4.使用 madir a 创建一个目录
5.使用 mount -t iso9660 /dev/cdrom /media/a
6.进入a 目录下使用 ll 查看内容
7.如果没有内容重启 init 6
8.重启后使用mount
9.进入VMware路径下:/run/media/root/VMware Tools
10.将VMwareTools-10.3.22-15902021.tar.gz复制到tmp目录下
11.将VMwareTools-10.3.22-15902021.tar.gz解压缩解打包
tar zxvf VMwareTools-10.3.22-15902021.tar.gz
12.进入目录vmware-tools-distrib
13.使用 ./vmware-install.pl
形式二:RPM
• RPM软件包命名规范
• name-version-release.arch.rpm
• 名字-版本号(主版本号.次版本号.修正号)-发布版本号(同样的源程序使用不同参数编译)-适用平 台.rpm
• arch表示系统的发行版,如fc18、el6,表明这个软件包是在Fedora 18、RHEL 6.x / CentOS 6.x下使用 的;arch表示硬件平台,常见的有:i386、x86_64等等。
• RPM五大功能
安装
rpm -ivh name-version-release.arch.rpm | 保留旧版本,安装新版本(升级内核最好使用此方式) |
i表示install;v表示verbose,显示装的详细信息;h表示hash,显示安装进度百分比。
卸载
rpm -e name
注意:卸载时要注意软件包的依赖关系,并不是所有的软件包都能够轻松的卸载的,但也可以强制卸载 而忽略软件包的依赖关系,但是不推荐使用此方法,如:rpm -e --nodeps httpd
更新或者升级
rpm -Fvh name-version-release.arch.rpm | 删除旧版本,安装新版本(一般用于更新现有系统) |
rpm -Uvh name-version-release.arch.rpm | 删除旧版本,安装新版本(一般用于升级应用程序) |
验证
软件在传播的过程中可能会被恶意的修改,所以为了安全起见现代OS都加入了对软件的验证功能。验证一 般使用非对称加密算法,所以需要一个密钥,一般linux发行版都有自己的密钥,默认都已经加入。
验证已安装的的软件有没有被修改过 | rpm -V name |
验证rpm文件的完整性 | rpm -K name-version-release.arch.rpm |
查询
#rpm -q name | 查询是否安装了软件包NAME |
#rpm -qi name | 查询已安装的软件包的详细信息 |
#rpm -ql name | 查询指定软件包包含的文件列表 |
#rpm -qf file | 查询指定文件属于哪个rpm包安装进来的 |
#rpm -qa | 查询所有已安装的rpm软件 |
#rpm -qpi name-version-release.arch.rpm | 查询rpm文件的信息 |
#rpm -qpl name-version-release.arch.rpm | 查询rpm文件包含的文件 |
形式三 :YUM
• 介绍
• 要成功使用YUM工具更新系统和软件,需要有一个包含各种RPM软件包的repository(软件仓 库),提供软件仓库的服务器习惯称为“源”服务器。软件仓库可以基于HTTP,FTP协议或 者本地文件目录提供服务,并收集目录中所有的RPM包的header(头部)信息组成repodata(仓 库数据),以供YUM客户端工具查询分析。
• Yum仓库分为本地yum和网络yum,本地yum是将rpm软件包放在本地主机上,而网络yum则 是将服务器上面的文件通过http或者ftp方式下载到本地,然后进行安装。
• 配置YUM客户端
• 在/etc/yum.repos.d目录下新建一个YUM仓库配置文件(.repo文件),在该文件内添加一条 配置信息。
• 注:一个配置文件内可以保存多个仓库的配置信息,一条仓库配置信息的格式如下: [repo-name]
name = This is repository’s description baseurl = file://rpm-directory enabled = 1
gpgcheck = 1
• 其中,baseurl规定了仓库所在位置,可以是本地路径(file://),也可以是网络地址(http:// or ftp://)。
YUM命令
安装软件 | yum install package-name |
删除软件 | yum remove package-name |
升级软件 | yum update package-name |
基于关键字搜索软件 | yum search 关键字 |
列出所有的软件包(包括yum仓库中提供的和已安装的) | yum list all |
列出YUM仓库中提供的 / 可以更新的软件包 | yum list available / updates |
列出系统中已安装的软件包 | yum list installed |
显示软件包信息 | yum info packagename(等于rpm -qi) |
查询目标文件被包含在哪个软件包中 | yum whatprovides filename |
查看程序package依赖情况 | yum deplist package |
YUM缓存
yum会把下载的软件包和header存储在cache中(位于/var/cache/yum目录),而不会自动删除,如果我们 觉得它们占用了磁盘空间,可以使用yum clean指令进行清除。
清除header | yum clean headers |
清除下载的rpm包 | yum clean packages |
通通清除 | yum clean all |
• RHEL使用CentOS的镜像源
• 删除RHEL原有yum
rpm -aq | grep yum | xargs rpm -e --nodeps //查询yum软件是否安装(rpm -aq是查询所有的已安装软件,grep是关键字匹配指令,配合管道符 | ,用于查找系统中所安装的yum软件),xargs指令用于将管道或标准输入(stdin)数据转换成命令行参数(也就是将前面获取的yum的信息提取并传递给下一条指令),rpm -e指令是删除指令,--nodeps就是不检查依赖关系
• 导入key
wget http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
rpm --import RPM-GPG-KEY-CentOS-7
• 下载yum包(使用CentOS源),使用rpm安装,最后两个需要同时安装
wget http://mirror.centos.org/centos-7/7/os/x86_64/Packages/python-iniparse-0.4-9.el7.noarch.rpm
wget http://mirror.centos.org/centos-7/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
wget http://mirror.centos.org/centos-7/7/os/x86_64/Packages/yum-3.4.3-163.el7.centos.noarch.rpm
• 配置yum源(使用网易的CentOS镜像源)
下载:wget http://mirrors.163.com/.help/CentOS7-Base-163.repo 复制:cp CentOS6-Base-163.repo /etc/yum.repos.d
替换:将$releasever全部替换为版本号7,vi中”:% s/$releasever/7/g” 缓存:yum clean all(清理); yum makecache(缓存到本地)
实例:安装yum
1.删除RHEL原有yum
rpm -aq | grep yum | xargs rpm -e --nodeps
2.导入key
wget http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
rpm --import RPM-GPG-KEY-CentOS-7
3.下载yum包(使用CentOS源),使用rpm安装,最后两个需要同时安装
wget http://mirror.centos.org/centos-7/7/os/x86_64/Packages/python-iniparse-0.4-9.el7.noarch.rpm
wget http://mirror.centos.org/centos-7/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
wget http://mirror.centos.org/centos-7/7/os/x86_64/Packages/yum-3.4.3-168.el7.centos.noarch.rpm
4.通过rpm安装yum.
rpm -ivh python-iniparse-0.4-9.el7.noarch.rpm
rpm -ivh yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
rpm -ivh yum-plugin-filter-data-1.1.31-54.el7_8.noarch.rpm yum-3.4.3-168.el7.centos.noarch.rpm --nodeps
5.配置yum源(使用网易的CentOS镜像源)
下载:wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
复制:cp CentOS7-Base-163.repo /etc/yum.repos.d
vi /etc/yum.repos.d/CentOS7-Base-163.repo
替换:将$releasever全部替换为版本号7,vi中”:% s/$releasever/7/g
6.缓存:yum clean all(清理);yum makecache(缓存到本地)
[root@xxxxxxxx tmp]# yum clean all
[root@xxxxxxxx tmp]# yum makecache
示例
安装软件包,使得可以提供whois命令
yum search whois | 查询是否有包含whois关键字的安装包 |
yum whatprovides/provides */whois | 查询什么安装包可以提供命令whois |
yum info jwhois | 查看安装包信息 |
yum deplist jwhois | 查看安装包依赖包 |
yum install jwhois | 安装 |
安装whois
1.Yum whois
2.Yum install whois.x86_64 -y (全选yes)
[root@xxxxxxxx tmp]# yum install whois.x86_64 -y
3.使用whois