我想知道是否是正常的,当我运行时,从我自己的服务器IP有很多连接:
netstat -tn 2>/dev/null | grep :80 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head
命令的解释可以在这里find: http : //www.mkyong.com/linux/list-all-ip-addresses-connected-to-your-server/ (我发布的链接,我发现后命令谷歌search一下之前我在这里问过,这个博客上有很多关于这个命令的解释,但是不知何故,我缺乏经验,需要更多关于这个问题的信息,请向我提供帮助和耐心。
我懂了:
223 MY OWN SERVER IP 6 36.83.145.0 6 141.0.11.183 6 118.96.107.46 5 114.121.128.224 4 139.194.112.178 4 125.162.210.152 3 114.121.130.92 2 82.145.211.30 1 95.128.246.45
我感谢你的时间来看看和回应。 如果你不想帮助我的话,请不要理睬这个问题,那对我来说比对自己的假设给予无益的评论更有意义,因为这会导致“思维build构”,而其他人可能会认为我根本听不懂,或者没有search到。 非常感谢您的好意!
正如Tero Kilkanen在其评论中所述:“ …完全取决于您在服务器上运行的应用程序… ”。
根据你的问题,我认为要想得到你的系统的整体数据,以确定你的223连接是否“正常” 并不容易。
为了帮助你做出决定,你需要明确地理解这个223(我的意思是这个数字,是你根据你的整个问题的数量)所说的。
你所执行的(…和你的问题中的粘贴)是8条命令的链,其中第n条命令的输出作为第n + 1条的input,唯一的例外是第一个(从无处获得input)和最后一个(其输出显示给你)。
让我们逐个检查这些命令:
grep:80 :这将parsing来自前一个输出的每一行,并仅过滤包含文本“:80”的行。 通常这意味着只select与HTTP有关的连接 。 请注意:
awk'{print $ 5}' :根据上面过滤的行,这将select第五列。 这个列包含DESTINATION IP地址以及DESTINATION TCP端口,forms如1.2.3.4:5678。 请注意,根据以上所述,目标TCP端口不一定是80;
cut -d:-f1 :这将拆分上面的几个(:)并提取第一部分(IP地址);
sorting :这将得到上述命令的输出,并产生一个字典顺序输出;
uniq -c :这将对进入的行(被sorting)进行分组并计数每个组的出现次数,并将这个数字(计数)加到每个组的值上;
sort -nr :这将根据应该在每行的开头的数字对数值进行数字sorting。 顺序也颠倒了(从最高到最低)。
头 :这将显示(在输出)只有前10行的input。
综上所述,应该清楚的是:“当你启动上面的命令时,在你的TCP /堆栈中,有223个套接字,处于不同的状态,包括ESTABLISHED状态,指的是有源端口80或目的地港口80“。
无论这是否正常……“ ……完全取决于您在服务器上运行的应用程序…… ”。
作为最后的说明:
请注意,鉴于当前AJAX /asynchronousHTTP请求的趋势,对于单个网页来说,打开并保持打开几个并发的TCP /连接到同一目标IP是完全常见的;
单个传出(或传入) DOS攻击可以产生非常多的IP(包括TCP或UDP)套接字。
PS:在你的评论中你写道:“ 让我知道,如果我在错误的地方问这个答案,那么罚款,我很抱歉 ”。 我真的觉得这个地方是对的。 但是,我认为你正在掌握TCP / IP协议栈以及一般的networking和系统pipe理,所以我可能在浪费时间写下这个答案:-)
希望你会喜欢这个(…并开始花更多的时间研究,而不是在ServerFault上询问这类问题)
通过2年,但我认为这个cmd可能更像这样:
netstat -polenta | awk '{print $5}' | awk -F ":" '{print $1}' | sort | uniq -c | sort -nr | head
因为它更容易理解,所以我只添加了另一个删除分隔符“:”后的所有部分的awk。 在这种方式下,使用1(cut -d:-f1和grep:80变为awk -F“:”'{print $ 1}')删除2厘米。
最后结果是一样的,我知道,但是我认为你至less要在terminal上写下一厘的logging。