1. 程式人生 > >centos7.3伺服器流量滿載排查(nginx代理被攻擊)

centos7.3伺服器流量滿載排查(nginx代理被攻擊)

一、伺服器環境

Centos 7.3 4核16G VPS 10Mbps
新伺服器,就跑了2個小業務,但是流量滿了,導致資料庫都打不開。

二、排查流程

1.檢視監控流量

提醒大家業務伺服器一定要第一時間裝上監控,阿里雲的或者zabbix。我當時沒裝,出問題的時候裝很卡,非常痛苦。
監控顯示VPS使用率已經90%了,檢視實時流量吧。

2.用iftop命令檢視實時流量傳送情況

client                                => 183.61.49.150                            0b   9.14Kb  4.53Kb

排查的時候沒有時間記錄沒上面的資料是事後的,通過iftop看到在瘋狂給17.141.5.102這個IP傳送資料,一下子就發了一個多G

3.查詢埠和程序

找到了問題IP,接下來就是通過問題IP去找埠和程序了。

這裡使用netstat命令查詢埠和程序,ss命令也可以

netstat -anput |grep '17.141.5.102'
[root@client vhosts]# netstat -anput |grep '17.141.5.102'
tcp        0      0 172.17.198.238:52022    17.141.5.102:443        TIME_WAIT   -                   
tcp        0
0 172.17.198.238:34732 17.141.5.102:443 TIME_WAIT - tcp 1 127 172.17.198.238:58518 17.141.5.102:443 CLOSING - tcp 0 0 172.17.198.238:40778 17.141.5.102:443 TIME_WAIT - tcp 0 0
172.17.198.238:48398 17.141.5.102:443 TIME_WAIT - tcp 0 0 172.17.198.238:36572 17.141.5.102:443 TIME_WAIT - tcp 0 438 172.17.198.238:54824 17.141.5.102:443 FIN_WAIT1 - tcp 0 0 172.17.198.238:49590 17.141.5.102:443 TIME_WAIT - tcp 0 1 172.17.198.238:55734 17.141.5.102:443 FIN_WAIT1 - tcp 0 196 172.17.198.238:34470 17.141.5.102:443 FIN_WAIT1 - tcp 0 1 172.17.198.238:47256 17.141.5.102:443 FIN_WAIT1 - tcp 0 191 172.17.198.238:33548 17.141.5.102:443 FIN_WAIT1 - tcp 0 1 172.17.198.238:42234 17.141.5.102:443 FIN_WAIT1 - tcp 0 0 172.17.198.238:53708 17.141.5.102:443 TIME_WAIT - tcp 1 1 172.17.198.238:55880 17.141.5.102:443 CLOSING - tcp 0 1 172.17.198.238:53100 17.141.5.102:443 FIN_WAIT1 - tcp 0 1344 172.17.198.238:53044 17.141.5.102:443 FIN_WAIT1 - tcp 0 197 172.17.198.238:45876 17.141.5.102:443 FIN_WAIT1 - tcp 0 389 172.17.198.238:46812 17.141.5.102:443 FIN_WAIT1 - tcp 0 1 172.17.198.238:43352 17.141.5.102:443 FIN_WAIT1 - tcp 0 183 172.17.198.238:43624 17.141.5.102:443 FIN_WAIT1 - tcp 0 375 172.17.198.238:58626 17.141.5.102:443 FIN_WAIT1 - tcp 0 1 172.17.198.238:53734 17.141.5.102:443 FIN_WAIT1 - tcp 0 0 172.17.198.238:51252 17.141.5.102:443 TIME_WAIT - tcp 0 0 172.17.198.238:41724 17.141.5.102:443 TIME_WAIT - tcp 0 1 172.17.198.238:53174 17.141.5.102:443 FIN_WAIT1 - tcp 0 0 172.17.198.238:40024 17.141.5.102:443 TIME_WAIT - tcp 0 0 172.17.198.238:51536 17.141.5.102:443 FIN_WAIT2 - tcp 0 0 172.17.198.238:40069 17.141.5.102:443 TIME_WAIT - tcp 0 0 172.17.198.238:51332 17.141.5.102:443 TIME_WAIT - tcp 0 389 172.17.198.238:58692 17.141.5.102:443 FIN_WAIT1 - tcp 0 1 172.17.198.238:48216 17.141.5.102:443 FIN_WAIT1 - tcp 0 0 172.17.198.238:53672 17.141.5.102:443 FIN_WAIT2 - tcp 0 0 172.17.198.238:33592 17.141.5.102:443 TIME_WAIT - tcp 0 1 172.17.198.238:45940 17.141.5.102:443 FIN_WAIT1 - tcp 0 1 172.17.198.238:34262 17.141.5.102:443 FIN_WAIT1 - tcp 125453 0 172.17.198.238:53328 17.141.5.102:443 CLOSE_WAIT 13722/nginx: worker tcp 0 167 172.17.198.238:50148 17.141.5.102:443 FIN_WAIT1 - tcp 0 1 172.17.198.238:52118 17.141.5.102:443 FIN_WAIT1 - tcp 0 197 172.17.198.238:46722 17.141.5.102:443 FIN_WAIT1 - tcp 0 195 172.17.198.238:36260 17.141.5.102:443 FIN_WAIT1 -

可以看到伺服器在瘋狂的請求17.141.5.102:443,並且通過上面可以看到nginx: worker ,這已經定位到了傳送資料的程序。

4.解決問題

突然想起來,之前業務需要配置過代理伺服器,代理目標伺服器的https請求,例如https://www.baidu.com。然後我註釋了nginx代理的虛擬主機。

server {
     listen                         80 default;
#     listen                         3128 default;

     # dns resolver used by forward proxying
     resolver                       8.8.8.8;

     # forward proxy for CONNECT request
     proxy_connect;
     proxy_connect_allow            443 563;
     proxy_connect_connect_timeout  10s;
     proxy_connect_read_timeout     10s;
     proxy_connect_send_timeout     10s;

     # forward proxy for non-CONNECT request
     location / {
         proxy_pass http://$host;
         proxy_set_header Host $host;
     }
 }

就那麼一瞬間,感覺命令列流暢了。檢視netstat發現程序慢慢少了下來。流量已經從9Mbps下降到了500Kbps以下。

三、總結

要熟練運營各種系統負載工具,如
ps
iotop
iftop
netstat
ss

相關推薦

centos7.3伺服器流量滿載排查nginx代理攻擊

一、伺服器環境 Centos 7.3 4核16G VPS 10Mbps 新伺服器,就跑了2個小業務,但是流量滿了,導致資料庫都打不開。 二、排查流程 1.檢視監控流量 提醒大家業務伺服器一定要第一時間裝上監控,阿里雲的或者zabbix。我當時沒裝

centos7.3部署django用uwsgi和nginx[未解決]

開始 centos index host mit localhost centos7.3 var span 現在nginx uwsgi django 都已經完成完畢,那麽開始 uwsgi 配置 uwsgi支持ini、xml等多種配置方式,本文以 ini 為例, 在/etc/

Linux工作筆記029---Centos7.3 伺服器下檢視tomcat服務是否啟動,重啟,檢視錯誤日誌等基本操作

首先要進入tomcat的bin目錄 cd /你的安裝目錄/tomcat/bin 檢視服務啟動情況 ps -ef|grep java 此條命令具體含義 ps:將某個程序顯示出來 -A  顯示所

CentOS7.3伺服器內網離線部署docker和容器

目錄 CentOS7.3伺服器內網離線部署docker和容器 一、離線安裝docker 1、獲取yum倉庫中的docker及其依賴包 2、安裝docker 3、安裝docker-compose 4、啟動docker

2017.7.1 nginx反向代理伺服器域名解析配置已驗證可使用

 前提:ftpserver已經開啟,並且設定為: 1.獲得安裝檔案  2.修改配置檔案 2.1 修改conf/nginx.conf 引入此資料夾內的配置檔案。   2.2 vhost資料夾 新建資料夾:vhost和相關配置檔案。  2.3 資料夾轉發 vh

伺服器搭建testlink nginx php mysql環境 心得分享

公眾號同步更新歡迎關注——測試喵之家 ​ 今天在公司伺服器上搭建了testlink,框架為nginx+php+mysql。基本操作和之 前在Mac上搭建的過程基本一致。 需要注意的是: 輸入資料庫地址,在伺服器上mysql很有可能不是和安裝地址在同一個i

最詳細Zabbix3.4部署安裝教程—基於Centos7.3,內附PHP,Nginx,MySQL等架設教程

第一步,下載Zabbix3.4原始碼包,編譯安裝    1.1原始碼包下載# wget -O zabbix-3.4.9.tar.gz http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3

阿里雲伺服器部署應用環境nginx伺服器

阿里雲伺服器的配置 1、開啟阿里雲官網,登入上自己的賬號,點選控制檯 2、點選左側的雲伺服器ECS 3、點選例項 4、選擇您所購買的伺服器的區域,選擇你要配置的伺服器,點選遠端連線。 5、輸入管理終端密碼。(如果是第一次登入,系統會告訴你初始密碼) 6、登入雲伺服

Putty連阿里雲CentOS7.3伺服器總是掉線的解決方法

申請了阿里雲的伺服器,CentOS7.3的系統,經常出現一會就掉線,需要從新登入才行。找到如下解決方案,實驗下是否可行。 1. echo ¥TMOUT 如果顯示空白,表示沒有設定,等於使用預設值0, 一般情況下應該是不超時。如果大於0,可以在如/etc/profile之類檔

nginx證書制作以及配置https並設置訪問http自動跳轉https反向代理轉發jboss

app ast mime with cati permanent bsp location admin nginx證書制作以及配置https並設置訪問http自動跳轉https 默認情況下ssl模塊並未被安裝,如果要使用該模塊則需要在編譯時指定–with

css 3 中的動畫呈現11月18日

css 3動畫一、2D/3D的轉換:transform向元素應用 2D 或 3D 轉換。(1)平移屬性:transform:translate(x,y)其中只寫一項的值為左右平移的值。(數值的正負性:左負右正,上負下正)transform:translateX()僅限左右移動。transform:transl

Python 4.3 創建數值列表動手試一試

習題 Python 4-3數到20:使用一個for循環打印數字1~20(含)如下:for numbers in range(1,21):(空格)print(numbers) 4-4一百萬:創建一個列表,其中數字包含1~1000000,再使用一個for循環將這些數字打印出來。如下:numbers=[

基於nginx-rtmp-module模塊實現的HTTP-FLV直播模塊nginx-http-flv-module

發現 app1 多播 git app 命令 避免 put 編譯 本文後續的內容將在這裏更新:《基於nginx-rtmp-module模塊實現的HTTP-FLV直播模塊(nginx-http-flv-module)續》。註意:下文的配置很多已經不能用了,因為現在的實現跟早期

Nginx+Tomcat 反向代理+負載均衡

案例 一臺Nginx做反向代理,tomcat 負載均衡 實際中 兩臺tomcat的網站應該是一樣的,不過為了實驗效果我們做不一樣的。 1、關閉防火牆,安裝JDK,配置JAVA環境。 2、安裝配置Tomcat #主要目錄說明 #配置檔案說明 3、建立java的web站

【Web】Sublime Text 3 連接sftp/ftp遠程服務器

idt src https pack tro 技術 同步 常用 tps   在 Win 下常用 Xftp 軟件來和遠程服務傳遞文件,但是要是在項目開發的時候頻繁的將遠程文件拖到本地編輯然後再傳回遠程服務器,那真是麻煩無比,但是Sublime中SFTP插件,它讓這世界美好了許

flask 專案 部署伺服器,package安裝問題無外網連結

1.安裝所需的環境/包 1) 在一臺開發機器(有網路,編譯成功)安裝package: pipreqs 語法: pipreqs <專案路徑> 將會到處專案所使用的所有包目錄將會匯出至目錄:requirems.txt 2) 離線下載所有包 pip download -d c:/pack

Nginx實現負載均衡nginx + tomcat應用分散式

一、       工具     nginx-1.8.0   apache-tomcat-6.0.33   二、    目標     實現高效能負載均衡的Tomcat

centos7 yum配置安裝Mariadb資料庫使用國內Mariadb源

CentOS 6 或早期的版本中提供的是 MySQL 的伺服器/客戶端安裝包,但 CentOS 7 已使用了 MariaDB 替代了預設的 MySQL。MariaDB資料庫管理系統是MySQL的一個分支,主要由開源社群在維護,採用GPL授權許可 MariaDB的目的是完全相容MySQL,包括AP

阿里雲中ssl配置nginx安裝https服務

1.配置      a.阿里雲伺服器      b.安裝了nginx,php等 2.申請免費ssl證數 a. b. c.產看ssl證數 d.下載證數 e,這裡我下載的是nginx(crt與key檔案) f.伺服器上配置

CentOS7.5中安裝redis5.0實踐踩坑版

CentOS7.5中安裝redis5.0(實踐踩坑版) 2018年10月22日 17:01:43 ZerahMu 閱讀數:805 標籤: centOSlinuxredisgrepvim 更多 個人分類: 專案環境 CentOS下Redis的安