记录一些常用的 CentOS 7 配置命令,大部分命令其他 Linux 分支系统也是通用的。

开放及查看端口

开放端口

firewall-cmd --zone=public --add-port=8080/tcp --permanent # 开放8080端口
firewall-cmd --zone=public --remove-port=8080/tcp --permanent # 关闭8080端口
firewall-cmd --reload # 配置立即生效

查看防火墙所有开放的端口

firewall-cmd --zone=public --list-ports

关闭防火墙

如果需要开放的端口太多,嫌麻烦,可以关闭防火墙,安全性自行评估

systemctl stop firewalld.service

查看防火墙状态

firewall-cmd --state

查看监听的端口

netstat -lnpt

PS:CentOS 7 默认没有 netstat 命令,需要安装 net-tools 工具,yum install -y net-tools

检查端口被哪个进程占用

netstat -lnpt |grep 80

查看进程的详细信息

ps 15965

中止进程

kill -9 15965

Swap 分区(虚拟内存)管理

Swap 是 Linux 中的虚拟内存,用于扩充物理内存不足而用来存储临时数据存在的。它类似于 Windows 中的虚拟内存。

创建 Swap 分区

查看当前的内存和 Swap 空间大小(默认单位为k, -m 单位为M):

free -m

此处可以看到总内存是 3.7G 左右,Swap 不存在

查看 Swap 信息,包括文件和分区的详细信息,可以使用 swapon -scat /proc/swaps 命令,如果都没有可以选择手动添加交换分区。注意,OpenVZ 架构的 VPS 是不支持手动添加交换分区的。

  1. 使用 dd 命令创建一个 swap 交换文件
    dd if=/dev/zero of=/home/swap bs=1024 count=1024000
    这样就建立一个 /home/swap 的分区文件,大小为 1G,可以自行倍增。建议 Swap 容量在真实内存容量的 1.5 倍左右,若服务器内存大于 4GB,可设 1-2GB 的固定值

  2. 制作为 swap 格式文件
    mkswap /home/swap

  3. 再用 swapon 命令把这个文件分区挂载 Swap 分区,完成后可以使用 free -m 命令看一下是否有交换分区
    swapon /home/swap

  4. 为防止重启后 Swap 分区变成 0,要修改 /etc/fstab 文件
    vi /etc/fstab
    在文件末尾(最后一行)加上
    /home/swap swap swap default 0 0

  5. 最后,赋予 swap 文件适当的权限
    chown root:root /home/swap
    chmod 600 /home/swap

修改 swappiness

如果内存够大,应当告诉 Linux 不必太多的使用 Swap 分区,可以通过修改 swappiness 的参数来设置。swappiness=0 的时候表示最大限度使用物理内存,然后才是 Swap 空间,swappiness=100 的时候表示积极的使用 Swap 分区,并且把内存上的数据及时的搬运到 Swap 空间里面。如你发现你对于 Swap 的使用极少,可以将值设为 0,这并不会禁止你对 Swap 的使用,而是使你的系统对于 Swap 的写入尽可能的少,同时尽可能多的使用你的实际内存。

  1. 在 CentOS 中,swappiness 的默认值是60。通过以下命令可以看到:
    cat /proc/sys/vm/swappiness

  2. 我们可以调整 swappiness 的值到一个合适的参数,从而达到最优化使用 Swap 的目的,这里我将其设为 10。
    sysctl vm.swappiness=10

  3. 但是这只是临时性的修改,在你重启系统后会恢复默认的 60,要永久设置,还需要在 vim 中修改 sysctl.conf
    vi /etc/sysctl.conf

  4. 在这个文档最后加入一行 vm.swappiness=10,保存即可。

删除 Swap 分区

  1. 先停止 Swap 分区
    swapoff /home/swap

  2. 删除 Swap 分区文件
    rm -rf /home/swap

  3. 删除自动挂载命令
    删除 sysctl.conf 文件中新增的那一行 vm.swappiness=10,最后保存即可。

修改 hostname(主机名)

在 CentOS 7 中有三种定义的主机名:静态的(static)、瞬态的(transient)、和灵活的(pretty)。静态主机名也称为内核主机名,是系统在启动时从 /etc/hostname 内自动初始化的主机名,瞬态主机名是在系统运行时临时分配的主机名,灵活主机名则允许使用特殊字符的主机名。

  1. 问题一:输入的大写的主机名怎么都变成了小写?
    这是因为在修改静态/瞬态主机名时,任何特殊字符或空白字符会被移除,而提供的参数中的任何大写字母会自动转化为小写。一旦修改了静态主机名,/etc/hostname 将被自动更新。然而,/etc/hosts 不会更新以保存所做的修改,所以你需要手动更新 /etc/hosts。
    如果只想修改特定的主机名(静态,瞬态或灵活),可以使用 “--static”,“--transient” 或 “--pretty” 选项。

  2. 问题二,如何修改主机名是永久生效的?
    hostnamectl --static set-hostname hostname

注意,不必重启机器以激活永久主机名修改。上面的命令会立即修改内核主机名。注销并重新登入后在命令行提示来观察新的静态主机名。

  1. 问题三,如何查看到自己输入的大写主机名?
    hostnamectl status --pretty

给系统安装中文字体

yum -y install fontconfig       # 安装字体库配置工具
fc-list :lang=zh                # 查看是否有中文字体,没有任何内容代表没有
mkdir /usr/share/fonts/chinese  # 创建中文字体目录

在你的 Windows 的 C:\Windows\Fonts 目录下找到相应的字体文件 copy 到 chinese 目录下,这里添加雅黑和新宋体(msyh.ttc simsun.ttc)

fc-list :lang=zh # 再次查看是否有中文字体

设置服务器默认语言

使用 vim 修改 /etc/locale.conf 文件
LANG=en_US.UTF-8 # 默认英文
LANG=zh_CN.UTF-8 # 中文

设置服务器时区

设置系统时间为中国时区并启用 NTP 同步,需要联网

yum install ntp  # 安装 NTP 服务
systemctl enable ntpd  # 开机启动服务
systemctl start ntpd  # 启动服务
timedatectl set-timezone Asia/Shanghai  # 更改时区
timedatectl set-ntp yes  # 启用 NTP 同步
ntpq -p  # 同步时间


Never give up your dreams.