# Centos问题

# 网络问题

# 修改域服务器

# 方法一

/etc/resolv.conf是DNS客户机配置文件,用于设置DNS服务器的IP地址及DNS域名,还包含了主机的域名搜索顺序。/etc/resolv.conf保存DNS是暂时的,当重新启动network时,/etc/resolv.conf恢复到了初始状态,要想更改,可尝试下边的方法:

PEERDNS=no
DNS1=192.168.1.1
DNS2=192.168.1.2
1
2
3

# 方法二

centos中有一套专门的工具nmcli来管理网络问题,参考文档有:

使用nmcli来改变域名:

  1. nmcli connection show:查看当前网络。
  2. nmcli con mod eth0 ipv4.dns "114.114.114.114 8.8.8.8"
  3. nmcli con up eth0

# 防火墙常见操作

参考资料:

下面是常用操作:

  1. firewall常用操作

    firewall-cmd --add-port=23/tcp --permanent # 开启23端口
    firewall-cmd --reload
    firewall-cmd --zone=public --remove-port=23/tcp --permanent #关掉23端口
    firewall-cmd --query-port=23/tcp # 查询某个端口是否开启
    firewall-cmd --get-active-zones # 查看当前激活的zone
    firewall-cmd --zone=public --list-ports # 查看所有端口

  2. iptables常用操作

    配置文件位置:/etc/sysconfig/iptables
    iptables -I INPUT -p tcp --dport xxx -j ACCEPT # 开启某个端口

# Yum问题

# fastestmirror

# 出现场景

yum命令出现Loaded plugins: fastestmirror。

# 解决办法

fastestmirror是yum的一个加速插件,这里是插件提示信息是插件不能用了。需要把它关闭:

  1. 在/etc/yum/pluginconf.d/fastestmirror.conf配置文件中,将enabled=1改为enabled=0。
  2. 在/etc/yum.conf配置文件中,将plugins=1改为plugins=0。
  3. 重启系统。

# 更改镜像源

切换为华为云的源:

cd /etc/yum.repos.d/ # 进入 /yum.repos.d 目录
mkdir bak # 新建一个bak文件夹,用来备份
mv *.repo bak/ # 将当前文件夹所有以.repo结尾的文件全部移入备份文件夹

wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo
# 下载华为云的yum源配置文件到 /yum.repos.d 目录

yum clean all # 清空缓存
yum makecache # 生成缓存

yum repolist # 查看当前使用的镜像源,若操作无误,则已经更换到华为云
1
2
3
4
5
6
7
8
9
10
11

# 仓库管理

查看仓库内容:

yum repolist all # 显示所有资源库
yum repolist enabled # 显示所有已启动的资源库
yum repolist disabled # 显示所有被禁用的资源库
yum repolist all | grep mysql
1
2
3
4

仓库操作:

yum-config-manager --add-repo repository_url # 添加仓库
yum-config-manager --disable itemName # 禁用仓库
yum-config-manager --enable itemName # 激活仓库
1
2
3

如果删除仓库则再/etc/yum.repos.d/下手动删除对应repo文件

# 离线安装

有时候项目的服务器是不能直接连网,这时要装软件就好麻烦的,需要在一台centos上把软件装好,然后把缓存包拷贝到目标服务器安装,需要使用下面步骤:

下面是在本地能联网的服务器上操作:

  1. 安装yumdownloader来下载RPMs:

    yum install yum-utils -y

  2. 下载createrepo:

    yum install --downloadonly --downloaddir=/home/createrepo createrepo

  3. 下载其他第三方软件,这里以docker举例:

    yum install --downloadonly --downloaddir=/home/docker docker-ce docker-ce-cli containerd.io

  4. 将上面下载的缓存打包:

    tar -zcvf docker.tar.gz /home/docker tar -zcvf createrepo.tar.gz /home/createrepo

下面是在离线目标服务器上安装:

  1. 解压缓存包

    tar -xvf docker.tar.gz tar -xvf createrepo.tar.gz

  2. 安装createrepo

    rpm -ivh *.rpm

  3. 使用createrepo来使用之前的缓存来创建包信息:

    sudo createrepo /home/rootuser/docker

  4. 配置本地yum源,可以新建一个local.repo。

    [local]
    name=local
    baseurl=file:///home/rootuser/docker # 软件包所在的目录
    enabled=1
    gpgcheck=0
    
    # gpgcheck=1
    # gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 # 本地yum源密钥
    
    1
    2
    3
    4
    5
    6
    7
    8
  5. 安装docker。如果安装过程中出现is not signed提示信息,需要在yum后面加上--nogpgcheck参数。

    sudo yum install docker-ce docker-ce-cli containerd.io

注意yum也有自身的缓存(/etc/yum.conf):

  1. cachedir为缓存路径,默认值是/var/cache/yum/$basearch/$releasever
  2. keepcache=1,默认值为0,意味安装完成后删除包。

# 常见操作

# sudo命令找不到

解决在sudo下命令找不到的情况:

  1. 编辑文件/etc/sudoers,将Defaults env_reset改为Defaults !env_reset。
  2. 编辑用户根目录下的配置文件.bashrc,并追加

    alias sudo='sudo env PATH=$PATH'

  3. source ~/.bashrc。

# 合并文件夹

cp -frap source/* target/
1

# SSH仅限IP登陆

这个场景中SSH仅限于几个IP登陆,需要修改/etc/ssh/sshd_config

Port 2222                    #默认为22端口,这里修改为2222端口
PubkeyAuthentication yes     #开启公钥认证
AllowUsers sshClient@ip  #设置允许(客户机IP地址)的sshClient用户登录
DenyUsers all                #禁止所有其他用户登录
1
2
3
4

# 查看系统信息

  1. 查看Centos版本命令:

    cat /etc/centos-release

  2. 查看使用某个端口的进程:

    netstat -anp | grep 端口号。

  3. 搜索相关的进程:

    1. ps -ef | grep sshd #根据进程名搜索
    2. ps -ef | grep 522 #根据进程ID查询
  4. 根据进程id杀死相应的进程:

    sudo kill -9 522

  5. Centos查看是否安装某个包:

    rpm –qa | grep telnet-server

    说明:

    1. –a选项是查询所有已经安装的软件包。
    2. -q是查询一个包是否安装。
    3. 已经安装的rpm包不会显示后缀.rpm ,而未安装的包则显示后缀.rpm。