排查服务器异常金沙官网线上:

 

Linux基础介绍【第三篇】,linux基础第三篇

金沙官网线上 1

昨天关闭了ESC,今天开启后服务器无法连接,尝试了重启也不行

更改SSH服务端远程登录的配置

windows服务端的默认远程管理端口是3389,管理员用户是administrator,普通用户是guest。Linux的管理用户是root,普通用户默认有很多个,远程连接默认端口是22。

修改配置文件/etc/ssh/sshd_config,13行Port 22(默认端口22),改为Port 52113(范围0——65535);15行ListenAddress 0.0.0.0 (监听ip地址),改为ListenAddress 192.168.131.1;43行PermitRootLogion yes(root用户远程连接),改为PermitRootLogion no;122行UseDNS yes(DNS解析),改为UseDNS no;GSSAPIAuthentication yes(SSH连接慢),改为GSSAPIAuthentication no;

cat –n:查看行号

vim à:set nu à显示行号

diff比较2个文件的不同之处。

[[email protected] ssh]# diff sshd_config sshd_config.oldboy.20161204

vimdiff以高亮方式比较2个文件的不同之处。

[[email protected] ssh]# vimdiff sshd_config sshd_config.oldboy.20161204

sed替换:

重启生效:/etc/init.d/sshd restart(可能影响用户)或/etc/init.d/sshd reload(平滑重启)。

查看端口:

netstat -lntup|grep sshd

排查:ssh无法连接,网页无法访问
登录阿里云控制台远程连接

利用sudo控制用户对系统命令的使用权限

管理sudo命令:

visudo或vi /etc/sudoers,visudo更好。vi命令模式直接输入行数+gg到固定的行数,显示行号:set nu,yy(复制)+p(粘贴)复制当前行到下一行,shift+a到结尾处于编辑状态。

98+gg: 98 root ALL=(ALL) ALL

给oldboy授予root权限:

oldboy ALL=(ALL) ALL

oldboy ALL=(ALL) NOPASSWD:ALL(不提示输入密码)

用oldboy添加一个用户oldgirl:

给oldboy授予固定权限:

oldboy ALL=(ALL) /bin/touch,/usr/sbin/useradd

注意:需要命令的全路径,查看命令全路径which 命令,例如:

find查找:find / -type f -name "useradd"

whereis查找:whereis -b useradd

locate查找:locate useradd

环境变量:

PATH系统路径变量,执行ls、cp等非内置命令时,系统会查找PATH里对应的路径是否存在,如果没有就报告找不到该命令。当执行which cp来查看命令所在路径的时候,也就是从PATH变量去搜索。

PATH变量的临时修改 export PATH="/tmp:$PATH",永久生效将命令放到/etc/profile下,使用source /etc/profile 使得立刻生效。

ssh无法连接,查看ssh是否开启
ps -ef | grep sshd

Linux中文显示设置

查看当前字符编码:

操作前先进行备份:cp /etc/sysconfig/i18n /etc/sysconfig/i18n.oldboy.20161205

注意:客户端字符集需改为UTF-8。

查看nginx是否启动
ps -ef | grep nginx

设置Linux服务器时间同步

显示时间:date

修改时间:date –s "时间" àhwclock

显示日历:cal

同步互联网时间:

定时任务执行同步:

下面三种方法是等价的:

/dev/null 空设备(黑洞)

错误和正确都输出到/dev/null:

1、1>/dev/null 2>/dev/null

2、1>/dev/null 2&1

3、&>/dev/null

nginx与sshd都未启动,说明linux开机后没有自动启动nginx与ssh,所以ssh与网页都无法访问

时间同步架构

小规模时间同步架构:

金沙官网线上 2

大规模时间同步架构:

金沙官网线上 3

之前有修改过开机启动的文件,加了NAS挂载命令,所以首先将该命令删除,再重启,排查是否是因为此命令,nginx无法自动开启。

设置Linux默认历史记录数

命令如下,注意此时的配置仅临时生效。

把配置参数放入配置文件,使得永久生效。

TMOUT=10:连接的超时时间控制变量。

HISTSIZE=5:命令行的历史记录数量变量。

HISTFILESIZE=10:历史记录文件的命令行数量变量(~/.bash_history)。

历史记录清空:history -c。

删除指定历史记录:history -d 10(删除10号历史记录)。

修改了开机启动文件,所有程序正常启动

加大服务器文件描述符

文件描述符的概念

1、表示形式为整数数字(0——65535)。

2、进程使用的时候会占用文件描述符(标识打开的文件)。

查看默认文件描述符

3、调整文件描述符

方法一:

直接把ulimit -SHn 65535命令加入到/etc/rc.local,然后每次开机启动的时候生效。

写入rc.local:

方法二:

在/etc/sercurity/limits.conf里面配置。

但需要解决NAS自动挂载问题

调整内核参数文件/etc/sysctl.conf

vim编辑:shift+g切换到文件结尾

优化参数:

执行生效:sysctl -p

查看网络状态:netstat -an

修改etc/rc.local文件,在里面添加mount命令,即可实现ecs启动自动挂载
Vi etc/rc.local

隐藏Linux版本信息

控制Linux显示版本信息的文件

清空这个两个文件就可以了。

添加mount命令

锁定关键系统文件,防止提权被篡改

命令:

解除锁定:chattr -i

重启nginx

为grub菜单加密码

为grub菜单加密码的目的是防止他人修改grub做内核等启动设置。

1、先用/sbin/grub-md5-crypt产生一个MD5密码串。

2、修改grub.conf文件添加

password --md5 $1$T2zU4/$KmlABHIkQGczWjh1DdwWU.。

注意:password要加在splashimage和title之间,否则可能不生效。

df -h可以看见NAS已成功挂载

禁止Linux系统被ping

命令:

在阿里云控制台中重启ECS

升级具有典型漏洞的软件版本

首先查看相关软件的版本号

执行升级已知漏洞的软件版本到最新。

重启之后ssh登录,查看挂载df -h
发现NAS并没有被挂载,怀疑是rc.local这个启动脚本没有生效

配置yum源

查看当前yum源

配置阿里云的yum源

wget:下载,wget http://url;-O:下载到指定路径并改名;--spider:爬虫,检查网站是不是好的,不会下载只是检查;-T(--timeout):指定超时时间(--timeout=seconds);--tries:指定重试的次数(--tries=2);-q(--quiet):后台下载,关闭输出;

总结:

1、不用root管理,以普通用户的名义通过sudo授权管理。

2、更改默认的远程连接SSH服务端口,禁止root用户远程连接,甚至要更改为只监听内网IP。

3、定时自动更新服务器时间,使其和互联网时间同步。

4、配置yum更新域,从国内更新源下载安装软件包。

5、关闭SELinux及iptables(在生产场景中,如果有外部IP一般要打开)

6、调整文件描述符的数量,进程及文件的打开都会消耗文件描述符。

7、定时自动清理邮件目录垃圾文件,防止inodes节点被占满。

8、精简并保留必要的开机自启动服务(如crond、sshd、network、rsyslog、stsstat)。

9、Linux内核参数优化/etc/sysctl.conf,执行sysctl -p 生效。

10、更改字符集,使其支持中文。

11、锁定关键系统文件如/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow、/etc/inittab,处理后把chattr、lasttr改名。

12、清空/etc/issue、/etc/issue.net,去除系统及内核版本登录前的屏幕显示。

13、清楚多余的系统虚拟账号。

14、为grub菜单加密码。

15、禁止被ping。

16、升级漏洞软件。

 

less:按屏(空格、page up/page down)或按行(回车)查看文件。

more:按屏(空格)或按行(回车)查看文件,不能向上翻。

执行
chmod +x /etc/rc.local【该命令在每次修改完rc.local后都需要执行一次,否则本次不生效】

Linux目录结构

linux只有一个顶点/(根),其他所有目录都在根下。根下面的所有目录是一个有层次的树状结构,像一颗倒挂着的大树。

tree:显示目录结构,-L:指定显示多少层;-d:只显示目录。

linux的目录结构和磁盘分区是分离的,可以自由组合。

/

├── bin    àEssential command binaries

├── boot    àStatic files of the boot loader

├── dev    àDevice files

├── etc    àHost-specific system configuration

├── home    àUser home directories(optional)

├── lib    àEssential shared libraries and kernel modules

├── lib64

├── lost+found

├── media

├── mnt    àMount point for mounting a filesystem temporarily

├── oldboy

├── opt    àAdd-on application software packages

├── proc    à进程信息及内核信息(cpu、硬盘分区、内存信息等)

├── root    àHome directory for the root user(optional)

├── sbin    àEssential system binaries

├── selinux

├── srv

├── sys

├── tmp    àTemporary files

├── usr    àSecondary hierarchy

└── var    àVariable data

cat /proc/meminfo    à内存信息

cat /proc/cpuinfo àcpu信息

cat /proc/mounts     à挂载信息

cat /proc/loadavg à负载(系统繁忙程度)

小结:

1、linux系统的所有目录时一个有层次的倒着的树状目录结构,/根是所有目录的起点。

2、不同的目录数据可以跨越不同的磁盘分区或不同的磁盘设备。

/dev/ 设备目录

/etc/ 系统配置即服务配置文件、启动命令的目录

/proc 显示内核及进程信息的虚拟文件系统

/tmp 临时文件目录

/home 普通用户家目录

/root 超级管理员的家目录

/var 变化的目录,一般是日志文件,cache的目录

/usr 用户程序及数据、帮助文件、二进制命令等的目录

/bin、/sbin、/usr/sbin 用户命令的目录

再次重启ECS

Linux重要目录路径

ssh登录后,df -h查看挂载

/etc/sysconfig/network-scripts/ifcfg-eth0:配置网络地址及GW等。

IPADDR=10.0.0.7 #addr是IP地址

NETMASK=255.255.255.0 #子网掩码,划分网络位和主机位10.0.0.0/24

GATEWAY=10.0.0.254 #网关地址,路由器的地址

修改配置生效命令:

ifup:启动

ifdown:关闭

NAS成功自动挂载

/etc/resolv.conf:DNS管理

小结:

1、客户端DNS可以在网卡配置文件里设置(ifcfg-eth0)。

2、客户端DNS也可以在/etc/resolv.conf里设置。

3、网卡里的设置DNS优先于/etc/resolv.conf。

排查完成

/etc/hosts:设定用户IP与域名的对应解析表

对应windows的文件C:WindowsSystem32driversetchosts。

hosts在企业里的作用:

1、开发、产品、测试等人员,用于通过正式的域名测试产品。

2、服务器之间的调用可以用域名(内部的DNS),方便迁移。

本文由金沙官网线上发布于操作系统,转载请注明出处:排查服务器异常金沙官网线上:

您可能还会对下面的文章感兴趣: