centos 工具w,在线ssh工具
大家好,今天给各位分享centos 工具w的一些知识,其中也会对在线ssh工具进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!
CentOS网络状态工具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 ]
在CentOS系统上查看用户登录记录的方法
保留、维护和分析日志(如某个特定时期内发生过的,或正在发生的帐号事件),是Linux系统管理员最基础和最重要的任务之一。对于用户管理,检查用户的登入和登出日志(不管是失败的,还是成功的)可以让我们对任何潜在的安全隐患或未经授权使用系统的情况保持警惕。例如,工作时间之外或放假期间的来自未知IP地址或帐号的远程登录应当发出红色警报。
在CentOS系统上,用户登录历史存储在以下这些文件中:
/var/run/utmp(用于记录当前打开的会话)被who和w工具用来记录当前有谁登录以及他们正在做什么,而uptime用来记录系统启动时间。
/var/log/wtmp(用于存储系统连接历史记录)被last工具用来记录最后登录的用户的列表。
/var/log/btmp(记录失败的登录尝试)被lastb工具用来记录最后失败的登录尝试的列表。
在本文中,我将介绍如何使用utmpdump,这个小程序来自sysvinit-tools包,可以用于转储二进制日志文件到文本格式的文件以便检查。此工具默认在CentOS 6和7系列上可用。utmpdump收集到的信息比先前提到过的工具的输出要更全面,这让它成为一个胜任该工作的很不错的工具。除此之外,utmpdump可以用于修改utmp或wtmp。如果你想要修复二进制日志中的任何损坏条目,它会很有用(LCTT译注:我怎么觉得这像是做坏事的前奏?)。
Utmpdump的使用及其输出说明
正如我们之前提到的,这些日志文件,与我们大多数人熟悉的其它日志相比(如/var/log/messages,/var/log/cron,/var/log/maillog),是以二进制格式存储的,因而我们不能使用像less或more这样的文件命令来查看它们的内容。所以,utmpdump的出现拯救了世界。
为了要显示/var/run/utmp的内容,请运行以下命令:
代码如下:
# utmpdump/var/run/utmp
同样要显示/var/log/wtmp的内容:
代码如下:
# utmpdump/var/log/wtmp| tail-15[code]
最后,对于/var/log/btmp:
[code]# utmpdump/var/log/btmp
正如你所能看到的,三种情况下的输出结果是一样的,除了utmp和btmp的记录是按时间排序,而wtmp的顺序是颠倒的这个原因外(LCTT译注:此处原文有误,实际上都是按照时间顺序排列的)。
每个日志行格式化成了多列,说明如下。第一个字段显示了会话识别符,而第二个字段则是PID。第三个字段可以是以下值:--(表示运行等级改变或系统重启),bw(启动守候进程),数字(表示TTY编号),或者字符和数字(表示伪终端)。第四个字段可以为空或用户名、重启或运行级别。第五个字段是主TTY或PTY(伪终端),如果此信息可获得的话。第六个字段是远程主机名(如果是本地登录,该字段为空,运行级别信息除外,它会返回内核版本)。第七个字段是远程系统的IP地址(如果是本地登录,该字段为0.0.0.0)。如果没有提供DNS解析,第六和第七字段会显示相同的信息(远程系统的IP地址)。最后一个(第八)字段指明了该记录创建的日期和时间。
Utmpdump使用样例
下面提供了一些utmpdump的简单使用情况。
1、检查8月18日到9月17日之间某个特定用户(如gacanepa)的登录次数。
代码如下:
# utmpdump/var/log/wtmp| grep gacanepa
如果你需要回顾先前日期的登录信息,你可以检查/var/log下的wtmp-YYYYMMDD(或wtmp.[1...N])和btmp-YYYYMMDD(或btmp.[1...N])文件,这些是由logrotate生成的旧wtmp和btmp的归档文件。
2、统计来自IP地址192.168.0.101的登录次数。
代码如下:
# utmpdump/var/log/wtmp| grep 192.168.0.101
3、显示失败的登录尝试。
代码如下:
# utmpdump/var/log/btmp
在/var/log/btmp输出中,每个日志行都与一个失败的登录尝试相关(如使用不正确的密码,或者一个不存在的用户ID)。上面图片中高亮部分显示了使用不存在的用户ID登录,这警告你有人尝试猜测常用帐号名来闯入系统。这在使用tty1的情况下是个极其严重的问题,因为这意味着某人对你机器上的终端具有访问权限(该检查一下谁拿到了进入你数据中心的钥匙了,也许吧?)
4、显示每个用户会话的登入和登出信息
代码如下:
# utmpdump/var/log/wtmp
在/var/logwtmp中,一次新的登录事件的特征是,第一个字段为‘7’,第三个字段是一个终端编号(或伪终端id),第四个字段为用户名。相关的登出事件会在第一个字段显示‘8’,第二个字段显示与登录一样的PID,而终端编号字段空白。例如,仔细观察上面图片中PID 1463的行。
在 [Fri Sep 19 11:57:40 2014 ART],TTY1上显示登录提示符。
在 [Fri Sep 19 12:04:21 2014 ART],用户 root登入。
在 [Fri Sep 19 12:07:24 2014 ART],用户 root登出。
旁注:第四个字段的LOGIN意味着出现了一次登录到第五字段指定的终端的提示。
到目前为止,我介绍一些有点琐碎的例子。你可以将utmpdump和其它一些文本处理工具,如awk、sed、grep或cut组合,来产生过滤和加强的输出。
例如,你可以使用以下命令来列出某个特定用户(如gacanepa)的所有登录事件,并发送输出结果到.csv文件,它可以用像LibreOffice Calc或Microsoft Excel之类的文字或工作簿应用程序打开查看。让我们只显示PID、用户名、IP地址和时间戳:
代码如下:
# utmpdump/var/log/wtmp| grep-E"/[7].*gacanepa"| awk-v OFS=","'BEGIN{FS="]"};{print$2,$4,$7,$8}'| sed-e's//[//g'-e's//]//g'
就像上面图片中三个高亮区域描绘的那样,过滤逻辑操作是由三个管道步骤组成的。第一步用于查找由用户gacanepa触发的登录事件([7]);第二步和第三部用于选择期望的字段,移除utmpdump输出的方括号并设置输出字段分隔符为逗号。
当然,如果你想要在以后打开来看,你需要重定向上面的命令输出到文件(添加“[文件名].csv”到命令后面)。
在更为复杂的例子中,如果你想要知道在特定时间内哪些用户(在/etc/passwd中列出)没有登录,你可以从/etc/passwd中提取用户名,然后运行grep命令来获取/var/log/wtmp输出中对应用户的列表。就像你看到的那样,有着无限可能。
在进行总结之前,让我们简要地展示一下utmpdump的另外一种使用情况:修改utmp或wtmp。由于这些都是二进制日志文件,你不能像编辑文件一样来编辑它们。取而代之是,你可以将其内容输出成为文本格式,并修改文本输出内容,然后将修改后的内容导入回二进制日志中。如下:
代码如下:
# utmpdump/var/log/utmp tmp_output
使用文本编辑器修改 tmp_output
# utmpdump-r tmp_output/var/log/utmp
这在你想要移除或修复二进制日志中的任何伪造条目时很有用。
下面小结一下,utmpdump从utmp、wtmp和btmp日志文件或轮循的旧归档文件来读取详细的登录事件,来补充如who,w,uptime,last,lastb之类的标准工具的不足,这也使得它成为一个很棒的工具。
centos 查看系统有哪些用户
保留、维护和分析日志(如某个特定时期内发生过的,或正在发生的帐号事件),是Linux系统管理员最基础和最重要的任务之一。对于用户管理,检查用户的登入和登出日志(不管是失败的,还是成功的)可以让我们对任何潜在的安全隐患或未经授权使用系统的情况保持警惕。例如,工作时间之外或放假期间的来自未知IP地址或帐号的远程登录应当发出红色警报。在CentOS系统上,用户登录历史存储在以下这些文件中:/var/run/utmp(用于记录当前打开的会话)被who和w工具用来记录当前有谁登录以及他们正在做什么,而uptime用来记录系统启动时间。/var/log/wtmp(用于存储系统连接历史记录)被last工具用来记录最后登录的用户的列表。/var/log/btmp(记录失败的登录尝试)被lastb工具用来记录最后失败的登录尝试的列表。在本文中,我将介绍如何使用utmpdump,这个小程序来自sysvinit-tools包,可以用于转储二进制日志文件到文本格式的文件以便检查。此工具默认在CentOS 6和7系列上可用。utmpdump收集到的信息比先前提到过的工具的输出要更全面,这让它成为一个胜任该工作的很不错的工具。除此之外,utmpdump可以用于修改utmp或wtmp。如果你想要修复二进制日志中的任何损坏条目,它会很有用(LCTT译注:我怎么觉得这像是做坏事的前奏?)。 Utmpdump的使用及其输出说明正如我们之前提到的,这些日志文件,与我们大多数人熟悉的其它日志相比(如/var/log/messages,/var/log/cron,/var/log/maillog),是以二进制格式存储的,因而我们不能使用像less或more这样的文件命令来查看它们的内容。所以,utmpdump的出现拯救了世界。为了要显示/var/run/utmp的内容,请运行以下命令:代码如下:# utmpdump/var/run/utmp同样要显示/var/log/wtmp的内容:代码如下:# utmpdump/var/log/wtmp tail-15[code]最后,对于/var/log/btmp: [code]# utmpdump/var/log/btmp正如你所能看到的,三种情况下的输出结果是一样的,除了utmp和btmp的记录是按时间排序,而wtmp的顺序是颠倒的这个原因外(LCTT译注:此处原文有误,实际上都是按照时间顺序排列的)。每个日志行格式化成了多列,说明如下。第一个字段显示了会话识别符,而第二个字段则是PID。第三个字段可以是以下值:--(表示运行等级改变或系统重启),bw(启动守候进程),数字(表示TTY编号),或者字符和数字(表示伪终端)。第四个字段可以为空或用户名、重启或运行级别。第五个字段是主TTY或PTY(伪终端),如果此信息可获得的话。第六个字段是远程主机名(如果是本地登录,该字段为空,运行级别信息除外,它会返回内核版本)。第七个字段是远程系统的IP地址(如果是本地登录,该字段为0.0.0.0)。如果没有提供DNS解析,第六和第七字段会显示相同的信息(远程系统的IP地址)。最后一个(第八)字段指明了该记录创建的日期和时间。 Utmpdump使用样例下面提供了一些utmpdump的简单使用情况。 1、检查8月18日到9月17日之间某个特定用户(如gacanepa)的登录次数。代码如下:# utmpdump/var/log/wtmp grep gacanepa如果你需要回顾先前日期的登录信息,你可以检查/var/log下的wtmp-YYYYMMDD(或wtmp.[1...N])和btmp-YYYYMMDD(或btmp.[1...N])文件,这些是由logrotate生成的旧wtmp和btmp的归档文件。 2、统计来自IP地址192.168.0.101的登录次数。代码如下:# utmpdump/var/log/wtmp grep 192.168.0.101 3、显示失败的登录尝试。代码如下:# utmpdump/var/log/btmp在/var/log/btmp输出中,每个日志行都与一个失败的登录尝试相关(如使用不正确的密码,或者一个不存在的用户ID)。上面图片中高亮部分显示了使用不存在的用户ID登录,这警告你有人尝试猜测常用帐号名来闯入系统。这在使用tty1的情况下是个极其严重的问题,因为这意味着某人对你机器上的终端具有访问权限(该检查一下谁拿到了进入你数据中心的钥匙了,也许吧?) 4、显示每个用户会话的登入和登出信息代码如下:# utmpdump/var/log/wtmp在/var/logwtmp中,一次新的登录事件的特征是,第一个字段为‘7’,第三个字段是一个终端编号(或伪终端id),第四个字段为用户名。相关的登出事件会在第一个字段显示‘8’,第二个字段显示与登录一样的PID,而终端编号字段空白。例如,仔细观察上面图片中PID 1463的行。在 [Fri Sep 19 11:57:40 2014 ART],TTY1上显示登录提示符。在 [Fri Sep 19 12:04:21 2014 ART],用户 root登入。在 [Fri Sep 19 12:07:24 2014 ART],用户 root登出。旁注:第四个字段的LOGIN意味着出现了一次登录到第五字段指定的终端的提示。到目前为止,我介绍一些有点琐碎的例子。你可以将utmpdump和其它一些文本处理工具,如awk、sed、grep或cut组合,来产生过滤和加强的输出。例如,你可以使用以下命令来列出某个特定用户(如gacanepa)的所有登录事件,并发送输出结果到.csv文件,它可以用像LibreOffice Calc或Microsoft Excel之类的文字或工作簿应用程序打开查看。让我们只显示PID、用户名、IP地址和时间戳:代码如下:# utmpdump/var/log/wtmp grep-E"[7].*gacanepa" awk-v OFS=","'BEGIN{FS="]"};{print$2,$4,$7,$8}' sed-e's/[//g'-e's/]//g'就像上面图片中三个高亮区域描绘的那样,过滤逻辑操作是由三个管道步骤组成的。第一步用于查找由用户gacanepa触发的登录事件([7]);第二步和第三部用于选择期望的字段,移除utmpdump输出的方括号并设置输出字段分隔符为逗号。当然,如果你想要在以后打开来看,你需要重定向上面的命令输出到文件(添加“>[文件名].csv”到命令后面)。在更为复杂的例子中,如果你想要知道在特定时间内哪些用户(在/etc/passwd中列出)没有登录,你可以从/etc/passwd中提取用户名,然后运行grep命令来获取/var/log/wtmp输出中对应用户的列表。就像你看到的那样,有着无限可能。在进行总结之前,让我们简要地展示一下utmpdump的另外一种使用情况:修改utmp或wtmp。由于这些都是二进制日志文件,你不能像编辑文件一样来编辑它们。取而代之是,你可以将其内容输出成为文本格式,并修改文本输出内容,然后将修改后的内容导入回二进制日志中。如下:代码如下:# utmpdump/var/log/utmp> tmp_output<使用文本编辑器修改 tmp_output># utmpdump-r tmp_output>/var/log/utmp这在你想要移除或修复二进制日志中的任何伪造条目时很有用。下面小结一下,utmpdump从utmp、wtmp和btmp日志文件或轮循的旧归档文件来读取详细的登录事件,来补充如who,w,uptime,last,lastb之类的标准工具的不足,这也使得它成为一个很棒的工具。