Centos7 初始化环境搭建
一、主机名配置
在CentOS7中,有三种定义的主机名:
- 静态的(Static hostname)
“静态”主机名也称为内核主机名,是系统在启动时从/etc/hostname自动初始化的主机名。
- 瞬态的(Tansient hostname)
“瞬态”主机名是在系统运行时临时分配的主机名,例如,通过DHCP或mDNS服务器分配。
- 灵活的(Pretty hostname)
“灵活”主机名也有人叫做“别名”主机名。
“灵活”主机名则允许使用自由形式(包括特殊/空白字符)的主机名,以展示给终端用户(如xh01@f5)。
“静态”主机名和“瞬态”主机名都遵从作为互联网域名同样的字符限制规则。
查看主机名
--transient | 修改临时主机名 |
--static | 修改瞬态主机名 |
--pretty | 修改灵活主机名 |
status | 显示当前主机名设置 |
set-hostname NAME | 设置系统主机名 |
set-icon-name NAME | 为主机设置icon名 |
set-chassis NAME | 设置主机平台类型名 |
//查看一下当前主机名的情况
hostnamectl
//或者,查看全部三种主机名
hostnamectl status
//只查看静态、瞬态或灵活主机名,分别使用--static,--transient或--pretty选项
[root@xh00 ~]# hostnamectl --static
[root@xh00 ~]# hostnamectl --transient
[root@xh00 ~]# hostnamectl --pretty
//或者,查看到的是瞬态的(Tansient hostname)
hostname
//或者查看主机名配置文件,查看到的是静态的(Static hostname)
cat /etc/hostname
修改主机名
- 临时生效
hostname XXX //只能临时修改的主机名,当重启机器后,主机名称又变回来了。
- 永久生效
hostnamectl set-hostname xxx //永久性的修改主机名称,重启后能保持修改后的
一旦修改了静态主机名,/etc/hostname 将被自动更新。然而,/etc/hosts 不会更新以保存所做的修改,所以你每次在修改主机名后一定要手动更新/etc/hosts,之后再重启CentOS 7。否则系统再启动时会很慢。
二、时区配置
timedatectl
# timedatectl # 查看系统时间方面的各种状态Local time: Wed 2020-04-29 10:52:37 CST 当地时间Universal time: Wed 2020-04-29 02:52:37 UTC 伦敦时间RTC time: Wed 2020-04-29 02:52:37 硬件时间Time zone: Asia/Shanghai (CST, +0800) 时区:亚洲上海(东8区)UTC时间加上8等于当前时间NTP enabled: no
NTP synchronized: noRTC in local TZ: noDST active: n/atimedatectl set-time “2020-04-29 11:30:00” 设定系统时间
timedatectl list-timezones 显示系统的所有时区
timedatectl set-timezone “Asia/Shanghai” 设定系统时区
timedatectl set-local-rtc 0/1 设定系统时间计算方式,0表示使用utc时间计算方式1 设置硬件时钟为本地时间
看当前时间/日期/时区:timedatectl或者timedatectl status
查看所有可用时区:timedatectl list-timezones
设置时区:timedatectl set-timezone “Asia/Shanghai”
设置时间:timedatectl set-time HH:MM:SS
设置日期:timedatectl set-time YYYY-MM-DD
设置日期时间:timedatectl set-time “YYYY-MM-DD HH:MM:SS”
设置硬件时钟为本地时间:timedatectl set-local-rtc 1
设置硬件时钟为UTC时间:timedatectl set-local-rtc 0
启动NTP时间同步(启用NTP服务或者Chrony服务):timedatectl set-ntp true
禁用NTP时间同步:timedatectl set-ntp false
三、关闭NetworkManager、防火墙、selinux
systemctl stop NetworkManager | 关闭network管理系统 |
systemctl disable NetworkManage | 开机不启动 |
systemctl stop firewalld | 临时关闭防火墙 |
systemctl disable firewalld | 永久防火墙开机自启动 |
systemctl status firewalld | 查看防火墙状态 |
setenforce 0 | 临时关闭SELinux |
getenforce | 查看SELinux状态 |
编辑/etc/selinux/config文件,将SELINUX的值设置为disabled 永久关闭selinx |
sed -i 's/^ *SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config |
四、网络配置
修改网卡配置文件 /etc/sysconfig/network-scripts 网卡名称
简单网卡配置 | |
---|---|
TYPE=Ethernet | |
BOOTPROTO=static | IP地址静态获取 |
DEFROUTE=yes | |
DEVICE=eth0 | |
ONBOOT=yes | 开机自启 |
IPADDR= | IP地址 |
NETMASK=255.255.255.0 | 子网 |
GATEWAY= | |
DNS1= |
重启网卡
-
systemctl restart network 重启所有网卡
systemctl status network 查看网卡状态
-
单个网卡关闭、开启
ifdown eth0 ifup eth0
/etc/resolv.conf DNS配置文件
五、优化YUM源
-
安装 wget
yum -y install wget yum-utils epel-release
-
备份配置文件
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
-
下载新的配置文件
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
-
EPEL源
mv /etc/yum.repos.d/epel.repo etc/yum.repos.d/epel.repo.backup mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
-
清除并生成缓存
yum clean all && yum makecache
六、安装必要的软件
yum -y install gcc glibc gcc-c++ make cmake net-tools screen vim lrzsz tree dos2unix lsof tcpdump bash-completion ntp openssl openssl-devel
gcc glibc gcc-c++ make cmake | 编译器,编译安装的时候会用到 |
net-tools | Linux内核中配置网络功能的工具 |
screen | 用于命令行终端切换 |
vim | 编辑器 |
lrzsz | 与windows上传下载 |
tree | 树形目录 |
dos2unix | 格式转换实用命令 |
lsof | 列出当前系统打开的文件 |
tcpdump | 抓包工具 |
bash-completion | 自动补全增强 |
ntp | 同步网络事件 |
psmisc | 帮助管理/proc目录程序 |
openssl openssl-devel | web安全通讯基石 |
nc | 网络调试探测工具 |
mtr | 路由分析工具 |
nmap | 端口查看工具 |
七、sudo用户制授权
useradd why 创建why用户
echo "123456" | passwd --stdin why 非交互模式设置why密码
\cp /etc/sudoers /etc//sudoers.ori 备份sudo配置文件
echo "why ALL=(ALL)NOPASSWD:ALL" >>/etc/sudoers 修改sudo配置文件
tail -a /etc/sudoers 查看修改后的内容
visudo -c 检查语法错误
在实际应用中,因为怕造成难以挽回的失误,所以尽量会避免root用户直接操作,为了能让普通用户执行特殊命令,就需要对普通用户sudo授权。sudo的配置文件是/etc/sudoers,一般是没有写权限的,添加写权限之后再修改文件的内容。最常见的授权方式如下:hh ALL=(ALL) ALL
hh 想要授权的用记 ALL 充许从任何终端使用sudo (ALL) 切换到哪一个用户执行命令
ALL 允许用户执行任何命令,如果是多个命,用逗号分开 NOPASSWD 不用输入密码
- 示例一 hh ALL=/bin/chmod,/bin/chown
用户hh就可以在任何机器上,切换到root用户下执行/bin/chmod和/bin/chown命令,可以用 sudo -l查看用户可执行的 sudo命令。
- 示例二 hh ALL=(root)/bin/chmod,/bin/chown
这条语句和示例一产生的效果是一样的,(user)如果不写,则默认是root
- 示例三 hh ALL=/usr/sbin/,/sbin/,!/usr/sbin/fdisk
这句话表示hh用户可以在任何机器上,切换到root用户,执行/usr/sbin和/sbin目录下的任何命令,单fdisk除外。
八、同步网络时间
-
安装ntpdate
yum install ntpdate -y
-
date命令
date 查看当前时间 date -s '2021-10-29 21:57:00' 设置系统时间 hwclock -w 以系统时间为基准,修改硬件时间 hwclock -s 以硬件时间为基准,修改系统时间
-
ntpdate 命令
ntpdate -u ntp1.aliyun.com 网络时间同步命令
-
加入crontab定时任务
echo "*/20 * * * * /usr/sbin/ntpdate -u ntp1.aliyun.com >/dev/null &" >> /var/spool/cron/root
九、修改ulimit文件描述符的最大值
[Linux]系统里打开文件描述符的最大值,一般缺省值是1024,对一台繁忙的服务器来说,这个值偏小,所以有必要重新设置linux系统里打开文件描述符的最大值。那么应该在哪里设置呢?
-
永久修改 编辑
/etc/security/limits.conf
root soft nofile 65535 root hard nofile 65535 * soft nofile 65535 * hard nofile 65535
重新登录,不需要重启,ulimit -a可以看到文件打开数已经是65535了
[root@VM-123-187-centos ~]# ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 3894 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 65535 #文件打开数已经是65534了 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 3894 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
-
临时修改
[root@VM-123-187-centos ~]# ulimit -n
1024
[root@VM-123-187-centos ~]# ulimit -n 65535
[root@VM-123-187-centos ~]# ulimit -n
65535
十、配置SSH连接
使用Xshell、SecureCRT等工具登录时,发现ssh连接超级慢,解决步骤如下
p /etc/ssh/sshd_config /etc/ssh/sshd_config.bak 备份配置文件
1.su (以root用户登录)
2.vim /etc/ssh/sshd_config (编辑配置文件)
3.输入 /, 查找GSSAPIAuthentication 赋值为 no(默认为yes)
4.输入 /, 查找UseDNS,赋值为 no (该项默认不启用的,要把前面的#删除掉)
5.最后输入!wq保存文件并退出
6.systemctl restart sshd