CentOS SSH密钥登陆及密码密钥双重验证
一、首先登陆centos,切换用户,切换到你要免密码登陆的用户,进入到家目录,以下我以root为例,命令:
su root
cd ~
二、创建钥匙,命令:ssh-keygen -t rsa,一路按回车就搞定了(请注意提示输入密码一定不要输入不然会不成功)
三、按照流程走完后会在 ~/.ssh目录下(用户所在家目录下的.ssh目录)看到id_rsa, id_rsa.pub文件 第一个是私有密钥 第二个是公共密钥
四、修改SSH配置文件,命令:vi /etc/ssh/sshd_config
#禁用root账户登录,如果是用root用户登录请开启
PermitRootLogin yes
# 是否让 sshd 去检查用户家目录或相关档案的权限数据,
# 这是为了担心使用者将某些重要档案的权限设错,可能会导致一些问题所致。
# 例如使用者的 ~.ssh/ 权限设错时,某些特殊情况下会不许用户登入
StrictModes no
# 是否允许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2。
# 至于自制的公钥数据就放置于用户家目录下的 .ssh/authorized_keys 内
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
# 有了证书登录了,就禁用密码登录吧,安全要紧
PasswordAuthentication no
五、因为在第四步指定了AuthorizedKeysFile的放置位置为.ssh/authorized_keys,所以还需把公钥数据id_rsa.pub附加到 authorized_keys 这个档案内才行,命令:
cd ~/.ssh
cat id_ras.pub >> authorized_keys
重启SSH服务,命令:systemctl restart sshd.service
六、下载私钥,这里我使用了rz/sz工具(你也可以使用其他方式),系统默认没有安装,先安装,命令:yum -y install lrzsz
SecureCRT配置:选项→会话选项→X/Y/Zmodem,修改上传和下载的目录。
现在开始下载,命令:
cd ~/.ssh
sz id_ras
然后到你之前配置的下载目录去找,把私钥导入到SecurtCRT,方法:
选项→会话选项→SSH2,在鉴权一栏中点击公钥(注意因为前面已经禁用了密码登陆,我们还得把密码这一栏的勾去掉,否则会无法登陆),点属性,点击使用会话公钥设置,然后在下方的使用身份或证书文件中,选择你刚才下载来的私钥文件,点确定即可。
七、以上所有配置完成,看网上别的教程还说要注意各文件权限问题,我做实验的过程没有遇到,也可能我使用的是root用户的原因,如果你们在过程中有权限报错,建议权限设置:
~/.ssh/ 700
.ssh/authorized_keys 644
.ssh/id_rsa 600 且属于你当前要添加的用户
八、让服务器更安全,开启密码和证书双重验证,先修改SSH配置文件:
vi /etc/ssh/sshd_config
PasswordAuthentication yes
AuthenticationMethods publickey,password #新加入这条
重启SSH服务:systemctl restart sshd.service
SecureCRT配置:因为之前在第六步中把密码去掉了,还得把它再勾起来,选项→会话选项→SSH2,把密码这一栏勾起来即可。
PS:在配置完成后不要关闭当前SecurtCRT的连接窗口,你可以使用新建连接尝试登陆,以免配置出错,造成服务器无法登陆。
RHEL7/CentOS7系统配置和管理变化汇总(转)
RHEL 7带来了很多系统配置和管理上的变化,虽然有些不习惯,但个人认为大家应该去适应它们,而不是因循守旧,因为变化总是有原因的,它们大致都代表了未来的趋势,你不可能一直停留在原地踏步。
1、GRUB升级至2.0,bootloader的配置文件也调整至/boot/grub2/grub.cfg
查看启动项:
# cat /boot/grub2/grub.cfg |grep menuentry
menuentry ‘CentOS Linux (4.2.5-1.el7.elrepo.x86_64) 7 (Core)’ –class centos …
menuentry ‘CentOS Linux (3.10.0-229.20.1.el7.x86_64) 7 (Core)’ –class centos …
查看默认启动项:
# grub2-editenv list
saved_entry=CentOS Linux (4.2.5-1.el7.elrepo.x86_64) 7 (Core)
修改默认启动内核为4.2.5:
# grub2-set-default ‘CentOS Linux (4.2.5-1.el7.elrepo.x86_64) 7 (Core)’
2、/etc/inittab 不再使用(when using systemd)
cat /etc/inittab 看下就知道了:
# systemd uses ‘targets’ instead of runlevels. By default, there are two main targets:
#
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
#
# To view current default target, run:
# systemctl get-default
#
# To set a default target, run:
# systemctl set-default TARGET.target
3、主机名保存到了/etc/hostname 文件下
安装系统时配置的主机名,保存到了 /etc/hostname 。
4、几乎全面由systemd管理服务,SysV已经退居二线了,想配置服务得用systemctl
systemctl enable/disable sshd.service
其实启用服务就是在当前“runlevel”的配置文件目录(/etc/systemd/system/multi-user.target.wants/)里, 建立/usr/lib/systemd/system 里面对应服务配置文件的软链接;禁用服务就是删除此软链接。
有兴趣就自己看看 /usr/lib/systemd/system 里的文件,语法跟旧版/etc/init.d/ 里的服务脚本完全不同,也不能再用 /etc/init.d/sshd restart 之类的指令启动服务器了。
常用指令:
# systemctl list-unit-files -t service
# systemctl status firewalld.service
# systemctl enable/disable firewalld.service
# systemctl is-enabled firewalld.service
查看系统启动以来的message信息
# journalctl -b (类似 dmesg )
另,/etc/rc.local 文件默认没有执行权限:
# cat /etc/rc.local
系统不再建议使用此文件,而是建议创建自己的 systemd services:
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# Please note that you must run ‘chmod +x /etc/rc.d/rc.local’ to ensure
# that this script will be executed during boot.
如果希望使用该文件(在开机时运行某命令),注意记得给该文件添加执行权限。
5、/etc/sysct.conf 中的默认配置移到了/usr/lib/sysctl.d/00-system.conf
# cat /etc/sysctl.conf
# System default settings live in /usr/lib/sysctl.d/00-system.conf.
# To override those settings, enter new settings here, or in an /etc/sysctl.d/
# 在这里设置配置会覆盖 00-system.conf 下的默认配置,或者
# 在 /etc/sysctl.d/ 下创建一个
6、是否关闭IPv6:不建议完全关闭ipv6模块,否则一些组件会有问题
from Centos 7 FAQ:
Upstream employee Daniel Walsh recommends not disabling the ipv6 module, as that can cause issues with SELinux and other components, but adding the following to /etc/sysctl.conf:
# net.ipv6.conf.all.disable_ipv6 = 1 //但开启这个会导致postfix无法启动
net.ipv6.conf.default.disable_ipv6 = 1 //设置这一项还是可以的
注:总感觉没啥必要关闭ipv6了,如果有域名解析的问题,那也应该是DNS服务器去适配。
7、新的网卡命名规则(默认不再是 eth0/1 )
旧的 eth0/1 命名规则,是不确定的,机器增减网卡后,原有的网卡名字可能会变化。RHEL7支持几种新的命名规则,其中默认的基于硬件信息的规则可以保证网卡名字自动生成并且是固定的,但是会比较难以“阅读”(read),比如 enp2s0,enp3s0。
引用自Redhat官方文档:
8.3. UNDERSTANDING THE PREDICTABLE NETWORK INTERFACE DEVICE NAMES
The names have two character prefixes based on the type of interface:
en for Ethernet,
wl for wireless LAN (WLAN),
ww for wireless wide area network (WWAN).
The names have the following types:
Table 8.1. Device Name Types
Format
Description
o
s
x
p
p
更多信息参考:
新的网卡命名规则,参见:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Networking_Guide/ch-Consistent_Network_Device_Naming.html#sec-Understanding_the_Predictable_Network_Interface_Device_Names
还有Centos 7 FAQ:https://wiki.centos.org/FAQ/CentOS7
8、ll /etc/udev/rules.d/,默认不存在 70-persistent-net.rules 了
网卡MAC只在网卡配置文件里有,一旦变了我只需要改网卡配置文件?(拷贝虚拟机的情况的常见问题)
在图形界面下修改MAC后网卡不认了,测试结果是只需要改网卡配置文件的MAC,而且相关的多个配置文件都要改才行。
(注:这个我没实际测试)
9、ip / ss 指令替代 ifconfig route arp / netstat
用 ip neighbour 代替 arp -n
其他 ip 指令 大家自己看帮助吧。
10、旧的 network 脚本(service)和 ifcfg 文件
Centos7 开始,网络由 NetworkManager 服务负责管理,相对于旧的 /etc/init.d/network 脚本,NetworkManager 是动态的、事件驱动的网络管理服务。旧的 /etc/init.d/network 以及 ifup,ifdown 等依然存在,但是处于备用状态,即:NetworkManager 运行时,多数情况下这些脚本会调用 NetworkManager 去完成网络配置任务;NetworkManager没有运行时,这些脚本就按照老传统管理网络。
需要注意的是:
1)不建议 systemctl disable NetworkManager.service
2)因为旧的 network 脚本不兼容 ifcfg-* 文件里的新的配置项名称 IPADDR0/PREFIX0/GATEWAY0
3)除非把后面那个 0 去掉,否则开机是无法启动网卡的
11、网络配置
(大部分引用自网上文章)
1)nmtui 配置基本网络连接
nmtui 属于curses-based text user interface(文本用户界面), 类似 Centos6 的 setup 工具,但只能编辑连接、启用/禁用连接、更改主机名。系统初装之后可以第一时间用nmtui配置网络,挺方便。
2)nmcli 和其他网络设置
nmcli 是命令行形式的工具,功能要强大、复杂的多。
# nmcli help
Usage: nmcli [OPTIONS] OBJECT { COMMAND | help }
OBJECT和COMMAND可以用全称也可以用简称,最少可以只用一个字母,建议用头三个字母。OBJECT里面我们平时用的最多的就是connection和device,这里需要简单区分一下connection和device。
device 叫网络接口,是物理设备
connection 是连接,偏重于逻辑设置
多个connection可以应用到同一个device,但同一时间只能启用其中一个connection。
这样的好处是针对一个网络接口,我们可以设置多个网络连接,比如静态IP和动态IP,再根据需要up相应的connection。
我们可以用nmtui把两个连接改成我们熟悉的名字(nmcli也能,但比较麻烦哦),需要注意的是,enp0s3设备对应的连接名改为eth0,但对应的ifcfg文件并没有改名。
连接的配置文件 ifcfg-*,可以用 DEVICE 指定设备名,也可以用HWADDR指定设备的MAC地址,最终结果都一样的指向某个设备(网络接口)。
所以,对一个网络接口设置不同的连接,可以快速的切换不同的网络配置,这个真的满厉害的。
如果希望系统重启后仅up某个特定连接,那么可以把其他连接配置文件的ONBOOT=no,ONBOOT=no的连接也可以随时up。
3)编辑连接
用nmtui编辑连接后,ifcfg文件也会有相应的改动;手工修改ifcfg后,nmtui中也能看到。
但是,不论用nmtui还是直接修改ifcfg文件,想让新的配置生效,我们需要load连接配置文件并重新up连接。
举例,我们编辑ifcfg-enp2s0-1,把IP改为10.0.3.111,然后执行nmcli con reload 或 nmcli con load /etc/sysconfig/network-scripts/ifcfg-enp2s0-1
nmtui 手工为网卡添加多个IP(secondary IP)
新IP已经被加入到ifcfg-enp2s0中,原始地址的关键字是 IPADDR0、PREFIX0,新地址的关键字是 IPADDR1、PREFIX1 。
nmtui 添加IP后,需要执行命令来生效:
nmcli con load /etc/sysconfig/network-scripts/ifcfg-enp2s0
nmcli dev connect enp2s0
3.1)手工添加IP到ifcfg-eth0
手工添加IP到ifcfg-enp2s0后,需要执行命令来生效:
nmcli con load /etc/sysconfig/network-scripts/ifcfg-enp2s0 或 nmcli con reload
nmcli dev connect enp2s0
3.2)用ip addr add 指令添加/删除IP:即刻生效,重启不保留。
3.3)使用子连接配置文件 ifcfg-*:X(Centos5/6时代):不支持了。
但 ifconfig eth0:1 192.168.1.22 up 这种指令还是支持的!
3.4)配置DNS nameserver(不直接修改/etc/resolv.conf 了)
也是在 /etc/sysconfig/network-scripts/ifcfg-enp2s0 文件中配置,在其中添加
DNS1=”10.36.109.251″
DNS2=”10.36.112.251″
与手工添加IP到ifcfg-enp2s0一样,需要执行命令来生效:
nmcli con load /etc/sysconfig/network-scripts/ifcfg-enp2s0 或 nmcli con reload
nmcli dev connect enp2s0
这样,添加的DNS1/DNS2会同步到/etc/resolv.conf文件中。
(注:直接修改/etc/resolv.conf文件,重启系统或运行上述命令后会丢失)
4)网络配置总结:
ip addr show 中显示的IP才是有效的。
ip addr add 能在线添加IP,立即生效,但重启即丢。
ip addr del 能在线删除IP,立即生效,但重启即丢。
子连接配置文件(ifcfg-*:X)已经无效了。
配置DNS nameserver(不直接修改/etc/resolv.conf 了),同在 ifcfg-enp2s0 这类文件中。
nmtui 和 编辑ifcfg-enp2s0 文件效果基本相同,都不能立即生效,必须 load 连接再重新connect网络设备,即:
nmcli con load /etc/sysconfig/network-scripts/ifcfg-enp2s0 或 nmcli reload
nmcli dev connect enp2s0
如何在CentOS 7 / RHEL 7 运行单用户模式进行root的密码重置
步骤一,开机时随便按下键盘,进入以下菜单
步骤二: 选择第一项,按e键进行修改
步骤三,定位到 ro(
linux 16 or linuxefi
)
步骤四:把ro改成 “rw init=/sysroot/bin/sh”. 完成之后按 “Ctrl+x”
现在你可以进入单用户模式了
依次输入以下命令进行root密码修改,修改完成之后强制重启即可。
chroot /sysroot/
passwd root
touch /.autorelabel
然后强行重启就可以了。
在CentOS 7上给一个网卡分配多个IP地址
我们现在可以在CentOS/RHEL 7中给一个网卡分配多个ip地址。
如你所知,网卡的配置文件存储在 /etc/sysconfig/network-scripts/ 目录下。每个网卡的详细内容将会以不同的名字存储,比如ifcfg-enp0s3。
让我们看下ifcfg-enp0s3的细节。
cat /etc/sysconfig/network-scripts/ifcfg-enp0s3
示例输出:
TYPE=”Ethernet”
BOOTPROTO=”none”
DEFROUTE=”yes”
IPV4_FAILURE_FATAL=”no”
IPV6INIT=”yes”
IPV6_AUTOCONF=”yes”
IPV6_DEFROUTE=”yes”
IPV6_FAILURE_FATAL=”no”
NAME=”enp0s3″
UUID=”e9f9caef-cb9e-4a19-aace-767c6ee6f849″
ONBOOT=”yes”
HWADDR=”08:00:27:80:63:19″
IPADDR0=”192.168.1.150″
PREFIX0=”24″
GATEWAY0=”192.168.1.1″
DNS1=”192.168.1.1″
IPV6_PEERDNS=”yes”
IPV6_PEERROUTES=”yes”
好的,现在我们将在相同的子网中分配多个地址了。
编辑文件 /etc/sysconfig/network-scripts/ifcfg-enp0s3:
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
像下面那样加入额外的IP地址。
TYPE=”Ethernet”
BOOTPROTO=”none”
DEFROUTE=”yes”
IPV4_FAILURE_FATAL=”no”
IPV6INIT=”yes”
IPV6_AUTOCONF=”yes”
IPV6_DEFROUTE=”yes”
IPV6_FAILURE_FATAL=”no”
NAME=”enp0s3″
UUID=”933cdc9b-b383-4ddd-b219-5a72c69c9cf0″
ONBOOT=”yes”
HWADDR=”08:00:27:3F:AB:68″
IPADDR0=”192.168.1.150″
IPADDR1=”192.168.1.151″
IPADDR2=”192.168.1.152″
PREFIX0=”24″
GATEWAY0=”192.168.1.1″
DNS1=”192.168.1.1″
IPV6_PEERDNS=”yes”
IPV6_PEERROUTES=”yes”
如你所见,我已经加了两个IP地址:IPADDR1=”192.168.1.151″ & IPADDR2=”192.168.1.152″
类似地,你可以加入更多的ip地址。
最后,保存并退出文件。重启网络服务来使更改生效。
systemctl restart network
现在,让我们检查是否已经加入了ip地址。
ip addr
怎么查看系统安装日期
很多朋友在使用电脑及服务器的时候都有反映越用越卡,今天,就为大家分享一下怎么查看电脑及服务器系统的安装日期,以初步判定电脑及服务器大概是由于什么情况导致的卡慢。
找到运行后,在运行栏里输入“cmd”,然后回车。
然后,我们在该界面下输入”systeminfo”,然后回车,等待系统自动运行。
系统运行完毕,找到如下界面,你就能看到如图所示的信息,即可查询到系统安装日期!
各国NTP服务器列表
当前已提供的各国NTP服务器列表
[INTERNATIONAL NTP server list.]
区域[zone] 域名[Domain] IP池[IP Pool]
中国[China] cn.ntp.org.cn [202.108.6.95] [202.112.29.82] [110.75.190.198] [115.28.122.198] [182.92.12.11]
[120.25.108.11] [110.75.186.249] [110.75.186.248] [110.75.186.247]
中国台湾[ChinaTaiwan] tw.ntp.org.cn [120.119.28.1]
美国[America] us.ntp.org.cn [24.56.178.140] [131.107.13.100]
新加坡[Singapore] sgp.ntp.org.cn [139.162.20.174] [103.11.143.248]
韩国[korea] kr.ntp.org.cn [218.234.23.44] [211.233.40.78]
德国[Germany] de.ntp.org.cn [131.188.3.220] [131.188.3.223]
日本[Japan] jp.ntp.org.cn [133.243.238.243] [157.7.152.213]
-注:多组IP则为多IP轮询[Group IP was using IP-list polling]。
修改默认安装XenServer系统盘(4G)大小
安装XenServer系统盘默认大小为4G,安装前我们可以调整大小。
注:此教程只适用于在全新安装XenServer的时候使用,已经安装过XenServer的无法修改系统盘(4G)大小。
注:如果带数据重装,安装的时候一定要保证XenServer系统盘的大小一定要和以前一样大,否则数据就会丢失。
1、进入XenServer系统安装界面。
2、进入高级安装菜单界面,按F2键。
3、进入命令模式
进入命令行,输入“shell”,按回车键。
4、编辑系统安装管理配置文件
编辑“constants.py”文件,在bash-3.2#后面输入如下命令:
vi /opt/xensource/installer/constants.py
5、修改安装系统盘大小
修改默认的系统盘大小,在92行,找到root_size=4096,修改为需要安装的系统盘大小 (备注:单位为MB)
6、保存并退出
“ESC”退出编辑—>输入“:wq”冒号+wq保存退出。
7、退出命令模式
退出命令模式,输入“exit” 。
8、开始安装XenServer系统
9、查看结果
安装完毕后,通过以下命令查看系统分区大小:
df -hal
CentOS下一网卡多IP设置
方法1:少量IP手动绑定(这里以绑定IP到eth0为例,其它网卡的话修改相应的文件名即可)
1.复制ifcfg-eth0的网卡配置文件并改名为ifcfg-eth0:0
[root@akinlau /]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:0
2.编辑ifcfg-eth0:0文件
[root@akinlau /]# vim /etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE=”eth0:0″ //这里修改为eth0:0跟文件名保持一致
BOOTPROTO=”static” //协议为静态,用none也可以
HWADDR=”00:0C:29:6F:62:A7″ //MAC地址
ONBOOT=”yes” //开机启用此网卡
IPADDR=192.168.1.3 //新绑定的IP
NETMASK=255.255.255.0 //子网掩码
GATEWAY=192.168.1.1 //网关
修改好后保存退出,然后启用这张网卡
[root@akinlau /]# ifup eth0:0
注:有人在这一步喜欢用service network restart重启网络,其实这是没必要的,只需要启用这张网卡就可以了
然后再试ping 一下,如果能ping通的话,就可以了。
方法2:自动绑定一个IP段或多个IP段(同样这里以eth0为例,其它网卡的话修改相应的文件名即可)
1.新建ifcfg-eth0-range0文件(注意这里的文件名不要调换range的位置或写错单词,不然的话绑定的IP是不会生效的,如果你还有几段IP要绑定到eth0上的话,你可以再新建ifcfg-eth0-range1, ifcfg-eth0-range2等文件,不过这里要注意每个range文件中的定义的CLONENUM_START值不能重叠,不然的话会出问题。 )
[root@akinlau /]# /etc/sysconfig/network-scripts/ifcfg-eth0-range0
#写入以下内容
DEVICE=eth0 //绑定IP段的网卡名称
ONBOOT=yes //开机启用此网卡
BOOTPROTO=static //协议为静态
IPADDR_START=192.168.0.101 //网段的起始IP
IPADDR_END=192.168.0.120 //网段的截止IP
NETMASK=255.255.255.255 //子网掩码
CLONENUM_START=0 //这个数字是网卡别名的开始位置,比如这里的3是指eth0:0,并且会把IPADDR_START设置的IP192.168.0.101绑定到eth0:0上,以此类推
NO_ALIASROUTING=yes //这个参数的作用是数据包始终通过eth0进出,不走网卡别名(如eth0:0),设置这个参数可以加快路由的响应速度,所以强烈建议配置。
修改好后保存退出,然后重启网络:
[root@akinlau /]# service network restart
再测试一下,能不能ping就大功告成了。
centos7与centos6区别
CentOS 7 vs CentOS 6的不同
(1)桌面系统
[CentOS6] GNOME 2.x
[CentOS7] GNOME 3.x(GNOME Shell)
(2)文件系统
[CentOS6] ext4
[CentOS7] xfs
(3)内核版本
[CentOS6] 2.6.x-x
[CentOS7] 3.10.x-x
(4)启动加载器
[CentOS6] GRUB Legacy (+efibootmgr)
[CentOS7] GRUB2
(5)防火墙
[CentOS6] iptables
[CentOS7] firewalld
(6)默认数据库
[CentOS6] MySQL
[CentOS7] MariaDB
(7)文件结构
[CentOS6] /bin, /sbin, /lib, and /lib64在/下
[CentOS7] /bin, /sbin, /lib, and /lib64移到/usr下
(8)主机名
[CentOS6] /etc/sysconfig/network
[CentOS7] /etc/hostname
(9)时间同步
[CentOS6]
$ ntp
$ ntpq -p
[CentOS7]
$ chrony
$ chronyc sources
(10)修改时间
[CentOS6]
$ vim /etc/sysconfig/clock
ZONE=”Asia/Tokyo”
UTC=fales
$ sudo ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
[CentOS7]
$ timedatectl set-timezone Asia/Tokyo
$ timedatectl status
(11)修改地区
[CentOS6]
$ vim /etc/sysconfig/i18n
LANG=”ja_JP.utf8″
$ /etc/sysconfig/i18n
$ locale
[CentOS7]
$ localectl set-locale LANG=ja_JP.utf8
$ localectl status
(12)服务相关
1)启动停止
[CentOS6]
$ service service_name start
$ service service_name stop
$ service sshd restart/status/reload
[CentOS7]
$ systemctl start service_name
$ systemctl stop service_name
$ systemctl restart/status/reload sshd
自启动
[CentOS6]
$ chkconfig service_name on/off
[CentOS7]
$ systemctl enable service_name
$ systemctl disable service_name
服务一览
[CentOS6]
$ chkconfig –list
[CentOS7]
$ systemctl list-unit-files
$ systemctl –type service
强制停止
[CentOS6]
$ kill -9
[CentOS7]
$ systemctl kill –signal=9 sshd
(13)网络
1)网络信息
[CentOS6]
$ netstat
$ netstat -I
$ netstat -n
[CentOS7]
$ ip n
$ ip -s l
$ ss
2)IP地址MAC地址
[CentOS6]
$ ifconfig -a
[CentOS7]
$ ip address show
3)路由
[CentOS6]
$ route -n
$ route -A inet6 -n
[CentOS7]
$ ip route show
$ ip -6 route show
(14)重启关闭
1)关闭
[CentOS6]
$ shutdown -h now
[CentOS7]
$ poweroff
$ systemctl poweroff
2)重启
[CentOS6]
$ reboot
$ shutdown -r now
[CentOS7]
$ reboot
$ systemctl reboot
3)单用户模式
[CentOS6]
$ init S
[CentOS7]
$ systemctl rescue
4)启动模式
[CentOS6]
[GUICUI]
$ vim /etc/inittab
id:3:initdefault:
[CUIGUI]
$ startx
[CentOS7]
[GUICUI]
$ systemctl isolate multi-user.target
[CUIGUI]
$systemctl isolate graphical.target
默认
$ systemctl set-default graphical.target
$ systemctl set-default multi-user.target
当前
$ systemctl get-default
CentOS 7 网络状态工具ss命令使用详解
ss命令用于显示socket状态. 他可以显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix domain sockets等等统计. 它比其他工具展示等多tcp和state信息. 它是一个非常实用、快速、有效的跟踪IP连接和sockets的新工具.SS命令可以提供如下信息:
所有的TCP sockets
所有的UDP sockets
所有ssh/ftp/ttp/https持久连接
所有连接到Xserver的本地进程
使用state(例如:connected, synchronized, SYN-RECV, SYN-SENT,TIME-WAIT)、地址、端口过滤
所有的state FIN-WAIT-1 tcpsocket连接以及更多
很多流行的Linux发行版都支持ss以及很多监控工具使用ss命令.熟悉这个工具有助于您更好的发现与解决系统性能问题.本人强烈建议使用ss命令替代netstat部分命令,例如netsat -ant/lnt等.
展示他之前来做个对比,统计服务器并发连接数
netstat
# time netstat -ant | grep EST | wc -l
3100
real 0m12.960s
user 0m0.334s
sys 0m12.561s
# time ss -o state established | wc -l
3204
real 0m0.030s
user 0m0.005s
sys 0m0.026s
结果很明显ss统计并发连接数效率完败netstat,在ss能搞定的情况下, 你还会在选择netstat吗, 还在犹豫吗, 看以下例子,或者跳转到帮助页面.
常用ss命令:
ss -l 显示本地打开的所有端口
ss -pl 显示每个进程具体打开的socket
ss -t -a 显示所有tcp socket
ss -u -a 显示所有的UDP Socekt
ss -o state established ‘( dport = :smtp or sport = :smtp )’ 显示所有已建立的SMTP连接
ss -o state established ‘( dport = :http or sport = :http )’ 显示所有已建立的HTTP连接
ss -x src /tmp/.X11-unix/* 找出所有连接X服务器的进程
ss -s 列出当前socket详细信息:
显示sockets简要信息
列出当前已经连接,关闭,等待的tcp连接
# ss -s
Total: 3519 (kernel 3691)
TCP: 26557 (estab 3163, closed 23182, orphaned 194, synrecv 0, timewait 23182/0), ports 1452
Transport Total IP IPv6
* 3691 – -
RAW 2 2 0
UDP 10 7 3
TCP 3375 3368 7
INET 3387 3377 10
FRAG 0 0 0
列出当前监听端口
# ss -l
Recv-Q Send-Q Local Address:Port Peer Address:Port
0 10 :::5989 :::*
0 5 *:rsync *:*
0 128 :::sunrpc :::*
0 128 *:sunrpc *:*
0 511 *:http *:*
0 128 :::ssh :::*
0 128 *:ssh *:*
0 128 :::35766 :::*
0 128 127.0.0.1:ipp *:*
0 128 ::1:ipp :::*
0 100 ::1:smtp :::*
0 100 127.0.0.1:smtp *:*
0 511 *:https *:*
0 100 :::1311 :::*
0 5 *:5666 *:*
0 128 *:3044 *:*
ss列出每个进程名及其监听的端口
# ss -pl
ss列所有的tcp sockets
# ss -t -a
ss列出所有udp sockets
# ss -u -a
ss列出所有http连接中的连接
# ss -o state established ‘( dport = :http or sport = :http )’
·以上包含对外提供的80,以及访问外部的80
·用以上命令完美的替代netstat获取http并发连接数,监控中常用到
ss列出本地哪个进程连接到x server
# ss -x src /tmp/.X11-unix/*
ss列出处在FIN-WAIT-1状态的http、https连接
# ss -o state fin-wait-1 ‘( sport = :http or sport = :https )’
ss常用的state状态:
established
syn-sent
syn-recv
fin-wait-1
fin-wait-2
time-wait
closed
close-wait
last-ack
listen
closing
all : All of the above states
connected : All the states except for listen and closed
synchronized : All the connected states except for syn-sent
bucket : Show states, which are maintained as minisockets, i.e. time-wait and syn-recv.
big : Opposite to bucket state.
ss使用IP地址筛选
ss src ADDRESS_PATTERN
src:表示来源
ADDRESS_PATTERN:表示地址规则
如下:
ss src 120.33.31.1 # 列出来之20.33.31.1的连接
# 列出来至120.33.31.1,80端口的连接
ss src 120.33.31.1:http
ss src 120.33.31.1:80
ss使用端口筛选
ss dport OP PORT
OP:是运算符
PORT:表示端口
dport:表示过滤目标端口、相反的有sport
OP运算符如下:
<= or le : 小于等于 >= or ge : 大于等于
== or eq : 等于
!= or ne : 不等于端口
< or lt : 小于这个端口 > or gt : 大于端口
OP实例
ss sport = :http 也可以是 ss sport = :80
ss dport = :http
ss dport \> :1024
ss sport \> :1024
ss sport \< :32000
ss sport eq :22
ss dport != :22
ss state connected sport = :http
ss \( sport = :http or sport = :https \)
ss -o state fin-wait-1 \( sport = :http or sport = :https \) dst 192.168.1/24
为什么ss比netstat快:
netstat是遍历/proc下面每个PID目录,ss直接读/proc/net下面的统计信息。所以ss执行的时候消耗资源以及消耗的时间都比netstat少很多
ss命令帮助
# ss -h
Usage: ss [ OPTIONS ]
ss [ OPTIONS ] [ FILTER ]
-h, –help this message
-V, –version output version information
-n, –numeric don’t resolve service names
-r, –resolve resolve host names
-a, –all display all sockets
-l, –listening display listening sockets
-o, –options show timer information
-e, –extended show detailed socket information
-m, –memory show socket memory usage
-p, –processes show process using socket
-i, –info show internal TCP information
-s, –summary show socket usage summary
-4, –ipv4 display only IP version 4 sockets
-6, –ipv6 display only IP version 6 sockets
-0, –packet display PACKET sockets
-t, –tcp display only TCP sockets
-u, –udp display only UDP sockets
-d, –dccp display only DCCP sockets
-w, –raw display only RAW sockets
-x, –unix display only Unix domain sockets
-f, –family=FAMILY display sockets of type FAMILY
-A, –query=QUERY, –socket=QUERY
QUERY := {all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]
-D, –diag=FILE Dump raw information about TCP sockets to FILE
-F, –filter=FILE read filter information from FILE
FILTER := [ state TCP-STATE ] [ EXPRESSION ]