【转】CentOS 6.5 生产环境优化指南
原文链接:https://www.deepwebcn.com/82.html
centos6.5
CentOS 6.5 系统安装之后并不能立即投入生产环境使用,常常需要先经过我们运维人员的优化才行。
优化内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
修改ip地址、网关、主机名、DNS等
关闭selinux,清空iptables
添加普通用户并进行sudo授权管理
更新yum源及必要软件安装
定时自动更新服务器时间
精简开机自启动服务
定时自动清理/var/spool/clientmqueue/目录垃圾文件,放置inode节点被占满
变更默认的ssh服务端口,禁止root用户远程连接
锁定关键文件系统
调整文件描述符大小
调整字符集,使其支持中文
去除系统及内核版本登录前的屏幕显示
内核参数优化
|
1、修改ip地址、网关、主机名、DNS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 #网卡名字
BOOTPROTO=static #静态IP地址获取状态 如:DHCP表示自动获取IP地址
IPADDR=192.168.1.100 #IP地址
NETMASK=255.255.255.0 #子网掩码
ONBOOT=yes#引导时是否激活
GATEWAY=192.168.1.1
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
ONBOOT=yes
GATEWAY=192.168.1.1
[root@localhost ~]# vi /etc/sysconfig/network
HOSTNAME=c64 #修改主机名,重启生效
GATEWAY=192.168.1.1 #修改默认网关,如果上面eth0里面不配置网关的话,默认就使用这里的网关了。
[root@localhost ~]# cat /etc/sysconfig/network
HOSTNAME=c64
GATEWAY=192.168.1.1
我们也可以用 hostnamec64 来临时修改主机名,重新登录生效
修改DNS
[root@localhost ~]# vi /etc/resolv.conf #修改DNS信息
nameserver 114.114.114.114
nameserver 8.8.8.8
[root@localhost ~]# cat /etc/resolv.conf #查看修改后的DNS信息
nameserver 114.114.114.114
nameserver 8.8.8.8
[root@localhost ~]# service network restart #重启网卡,生效
重启网卡,也可以用下面的命令
[root@localhost ~]# /etc/init.d/network restart
|
2、关闭selinux,清空iptables
1
2
3
4
5
6
|
[root@c64 ~]# sed –i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config #修改配置文件则永久生效,但是必须要重启系统。
[root@c64 ~]# grep SELINUX=disabled /etc/selinux/config
SELINUX=disabled #查看更改后的结果
[root@c64 ~]# setenforce 0#临时生效命令
[root@c64 ~]# getenforce #查看selinux当前状态
Permissive
|
1
2
3
4
5
6
7
8
9
|
[root@c64 ~]# iptables –F #清理防火墙规则
[root@c64 ~]# iptables –L #查看防火墙规则
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@c64 ~]#/etc/init.d/iptables save #保存防火墙配置信息
|
3、添加用户并进行sudo授权管理
1
2
3
4
5
|
[root@c64 ~]# useradd sunsky
[root@c64 ~]# echo "123456"|passwd --stdin deepweb&&history –c
[root@c64 ~]# visudo
在root ALL=(ALL) ALL此行下,添加如下内容
sunsky ALL=(ALL) ALL
|
4、更新yum源及必要软件安装
1
2
3
|
[root@c64 ~]# cd /etc/yum.repos.d/
[root@c64 yum.repos.d]# /bin/mv CentOS-Base.repo CentOS-Base.repo.bak
[root@c64 yum.repos.d]# wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
|
接下来执行如下命令,检测yum是否正常
1
2
|
[root@c64 yum.repos.d]# yum clean all #清空yum缓存
[root@c64 yum.repos.d]# yum makecache #建立yum缓存
|
然后使用如下命令将系统更新到最新
1
2
|
[root@c64 yum.repos.d]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY* #导入签名KEY到RPM
[root@c64 yum.repos.d]# yum upgrade-y #更新系统内核到最新
|
安装几个必要的软件
1
|
[root@c64 yum.repos.d]# yum install lrzsz ntpdate sysstat -y
|
lrzsz是一个上传下载的软件
sysstat是用来检测系统性能及效率的工具
5、定时自动更新服务器时间
1
2
|
[root@c64 ~]# echo '*/5 * * * * /usr/sbin/ntpdate time.windows.com >/dev/null 2 >&1' >>/var/spool/cron/root
[root@c64 ~]# echo '*/10 * * * * /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1' >>/var/spool/cron/root
|
6、精简开机自启动服务
操作系统可以只保留crond,network,syslog,sshd这四个服务
1
2
3
4
5
6
7
|
[root@c64 ~]# for sun in `chkconfig --list|grep 3:on|awk '{print $1}'`;do chkconfig --level 3 $sun off;done
[root@c64 ~]# for sun in crond rsyslog sshd network;do chkconfig --level 3 $sun on;done
[root@c64 ~]# chkconfig --list|grep 3:on
crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
|
7、定时自动清理 /var/spllo/clientmqueue/ 目录垃圾文件 防止inode被占满 (6.5版本以上不需要)
1
2
3
4
|
[root@c64 ~]# mkdir /server/scripts -p
[root@c64 ~]# vi /server/scripts/spool_clean.sh
#!/bin/sh
find/var/spool/clientmqueue/-typef -mtime +30|xargsrm-f
|
然后将其加入到crontab定时任务中
1
|
[root@c64 ~]# echo '*/30 * * * * /bin/sh /server/scripts/spool_clean.sh >/dev/null 2>&1'>>/var/spool/cron/root
|
8、更改默认的 ssh 端口 禁止rooton过户远程连接
1
2
3
4
5
6
7
8
9
|
[root@c64 ~]# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
[root@c64 ~]# vim /etc/ssh/sshd_config
Port 52113#ssh连接默认的端口
PermitRootLogin no #root用户黑客都知道,禁止它远程登录
PermitEmptyPasswords no #禁止空密码登录
UseDNS no #不使用DNS
[root@c64 ~]# /etc/init.d/sshd reload #从新加载配置
[root@c64 ~]# netstat -lnt #查看端口信息
[root@c64 ~]# lsof -i tcp:52113
|
9、锁定关键文件系统
1
2
3
4
5
|
[root@c64 ~]# chattr +i /etc/passwd
[root@c64 ~]# chattr +i /etc/inittab
[root@c64 ~]# chattr +i /etc/group
[root@c64 ~]# chattr +i /etc/shadow
[root@c64 ~]# chattr +i /etc/gshadow
|
使用chattr命令后,为了安全我们需要将其改名
1
|
[root@c64 ~]# /bin/mv /usr/bin/chattr /usr/bin/任意名称
|
10、调整文件描述符大小
1
2
3
|
[root@localhost ~]# ulimit –n #查看文件描述符大小
1024
[root@localhost ~]# echo '* - nofile 65535' >> /etc/security/limits.conf
|
配置完成后,重新登录查看。
11、调整字符集,使其支持中文
1
2
|
sed-i 's#LANG="en_US.UTF-8"#LANG="zh_CN.GB18030"#'/etc/sysconfig/i18n
source/etc/sysconfig/i18n
|
12、去除系统及内核版本登录前的屏幕显示
1
2
|
[root@c64 ~]# >/etc/redhat-release
[root@c64 ~]# >/etc/issue
|
13、内核参数优化
说明:本优化适合apache,nginx,squid多种等web应用,特殊的业务也可能需要略作调整。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
[root@c64 ~]# vi /etc/sysctl.conf
#by sun in 20131001
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_keepalive_time =600
net.ipv4.ip_local_port_range = 4000 65000
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.core.somaxconn = 16384
net.core.netdev_max_backlog = 16384
net.ipv4.tcp_max_orphans = 16384
|
防火墙
1
2
3
4
5
6
|
net.nf_conntrack_max = 25000000
net.netfilter.nf_conntrack_max = 25000000
net.netfilter.nf_conntrack_tcp_timeout_established = 180
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
|
另外,在此优化过程中可能会有报错:
1
2
3
4
5
6
|
error: "net.nf_conntrack_max"isan unknown key
error: "net.netfilter.nf_conntrack_max"isan unknown key
error: "net.netfilter.nf_conntrack_tcp_timeout_established"isan unknown key
error: "net.netfilter.nf_conntrack_tcp_timeout_time_wait"isan unknown key
error: "net.netfilter.nf_conntrack_tcp_timeout_close_wait"isan unknown key
error: "net.netfilter.nf_conntrack_tcp_timeout_fin_wait"isan unknown key
|
这个错误可能是你的防火墙没有开启或者自动处理可载入的模块ip_conntrack没有自动载入,解决办法有二,一是开启防火墙,二是自动处理开载入的模块ip_conntrack
1
|
这个错误可能是你的防火墙没有开启或者自动处理可载入的模块ip_conntrack没有自动载入,解决办法有二,一是开启防火墙,二是自动处理开载入的模块ip_conntrack
|
1
2
3
|
error: "net.bridge.bridge-nf-call-ip6tables"isan unknown key
error: "net.bridge.bridge-nf-call-iptables"isan unknown key
error: "net.bridge.bridge-nf-call-arptables"isan unknown key
|
这个错误是由于自动处理可载入的模块bridge没有自动载入,解决办法是自动处理开载入的模块ip_conntrack
1
2
|
modprobe bridge
echo "modprobe bridge">> /etc/rc.local
|
到此,我们Linux系统安装后的基础优化已经操作的差不多了,一共有13个优化点需要我们来熟知。
以上优化请大家根据实际情况使用。
【转】CentOS 6.5 生产环境优化指南的更多相关文章
- Docker生产环境实践指南
技术栈:1. 构建系统2. 镜像仓库3. 宿主机管理4. 配置管理5. 部署6. 编排7. 日志8. 监控 镜像:1. 如果用户像往常一样运行包安装命令,这些永远也用不上的缓存包文件将会永远地成为镜像 ...
- CentOS 6.5 生产环境编译安装LNMP
一.环境准备 1.操作系统安装:CentOS 6.5 64位最小化安装. 2.配置好IP.DNS.网关.主机名 3.配置防火墙,开启80.3306端口 vim /etc/sysconfig/iptab ...
- CentOS服务器下JavaEE环境搭建指南(远程桌面+JDK+Tomcat+MySQL)
--------------------------------------------------------------------------------1 系统设置:1.1 远程桌面设置:通过 ...
- CentOS(5.8/6.7)linux生产环境若干优化实战
CentOS系统安装之后并不能立即投入生产环境使用,往往需要先经过我们运维人员的优化才行.在此讲解几点关于Linux系统安装后的基础优化操作.注意:本次优化都是基于CentOS(5.8/6.7). 下 ...
- (转)CentOS(5.8/6.4)linux生产环境若干优化实战
CentOS(5.8/6.4)linux生产环境若干优化实战 原文:http://blog.51cto.com/oldboy/1336488 特别说明:本文来自老男孩linux培训VIP学生学习笔记. ...
- (转)centos 7 Tomcat 8.5 的安装及生产环境的搭建调优
原文:https://www.cnblogs.com/linhankbl/articles/9149804.html#top JVM菜鸟进阶高手之路七(tomcat调优以及tomcat7.8性能对比) ...
- Centos6.5生产环境最小化优化配置
Centos6.5生产环境最小化优化配置,满足业务需求! 01.启动网卡 #centos6.x最小化安装后,网卡默认不是启动状态 ifup eth0 // ifconfig eth0 up /et ...
- linux iptables常用命令之配置生产环境iptables及优化
在了解iptables的详细原理之前,我们先来看下如何使用iptables,以终为始,有可能会让你对iptables了解更深 所以接下来我们以配置一个生产环境下的iptables为例来讲讲它的常用命令 ...
- Asp.Net Core 程序部署到Linux(centos)生产环境(二):docker部署
运行环境 照例,先亮环境:软件的话我这里假设你已经批准好了.net core 运行环境,未配置可以看我的这篇[linux(centos)搭建.net core 运行环境] 腾讯云 centos:7.2 ...
随机推荐
- jquery ajax 使用
异步刷新实现方式有多种,也可以借助JS的多种框架,下面是使用JQuery框架实现的AJAX 验证用户名是否存在 jQuery.ajax概述 HTTP 请求加载远程数据. 通过jQuery 底层 AJA ...
- C#文本文件读写
算机在最初只支持ASCII编码,但是后来为了支持其他语言中的字符(比如汉字)以及一些特殊字符(比如€),就引入了Unicode字符集.基于Unicode字符集的编码方式有很多,比如UTF-.UTF-. ...
- C++ 面向对象学习2 构造方法
Date.h #ifndef DATE_H #define DATE_H class Date{ public: Date(,,);//自定义了构造方法 会覆盖掉默认的无参构造方法 void setD ...
- oracle复制表数据,复制表结构
1.不同用户之间的表数据复制 2.同用户表之间的数据复制 3.B.x中个别字段转移到B.y的相同字段 4.只复制表结构 加入了一个永远不可能成立的条件1=2,则此时表示的是只复制表结构,但是不复制表内 ...
- Delphi调试DLL 不能调试 不能进入调试 注意!!!
如何调试DLL,在这里就不再赘述了,但是,今天就碰到了一个特别奇怪的问题,参数设置正确,就是不能调试?? 通过上网查资料,发现了问题,注意: 1, 将Project主菜单的Project Option ...
- 1.Getting Started
Elasticsearch 是一个高度扩展的开源的全文搜索和分析引擎,它允许你存储,搜索和分析大量的数据和几乎实时. 它通常用于底层的存储.技术,提供应用实现负载的搜索功能和需求. 这里有一些使用的示 ...
- 将MFC Grid control封装为DLL的做法及其在DLL中的使用方法
MFCGrid control是一款非常优秀的网格控件,支持非常丰富的界面元素,如下图: 因而在数据库程序及报表程序应用较为广泛,其源码可以在下面下载到: MFC Grid control2.27源码 ...
- oracle数据库存储过程中NO_DATA_FOUND不起作用?
1.首先创建一个表lengzijiantest,表中只有一个字段f_id CREATE TABLE LENGZIJIANTEST ( F_ID NUMBER NOT NULL ) 2.插入一条数据 i ...
- Android 中文API (69) —— BluetoothAdapter[蓝牙]
前言 本章内容是 android.bluetooth.BluetoothAdapter,为Android蓝牙部分的章节翻译.本地蓝牙设备的适配类,所有的蓝牙操作都要通过该类完成.版本为 Androi ...
- Java中有关构造函数的一道笔试题解析
Java中有关构造函数的一道笔试题解析 1.详细题目例如以下 下列说法正确的有() A. class中的constructor不可省略 B. constructor必须与class同名,但方法不能与c ...