成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

推薦給開發人員的實用命令行工具

開發 前端
作為一名Web開發者,當程序出現問題時日子總不是那么好過。問題可能無處不在,可能是你發送的請求出了錯,可能是回復出了錯,可能是你使用的某個第三方庫出了問題,又或者是一個外部API調用失敗了。優秀的工具對于定位問題出在何處有著無可估量的價值,而且能在一開始就幫助我們阻止問題的出現,總的來說能使我們的工作更有效率。

作為一名Web開發者,當程序出現問題時日子總不是那么好過。問題可能無處不在,可能是你發送的請求出了錯,可能是回復出了錯,可能是你使用的某個第三方庫出了問題,又或者是一個外部API調用失敗了。優秀的工具對于定位問題出在何處有著無可估量的價值,而且能在一開始就幫助我們阻止問題的出現,總的來說能使我們的工作更有效率。命令行工具尤其有用,因為它們非常易于做自動化和腳本處理,能夠以各種不同的方式進行組合和重用。本文介紹了6個非常強大且靈活的工具,熟練使用這些工具能使你的生活變得更輕松一些。

Curl

Curl是一個網絡傳輸工具,同wget非常相似。主要的區別在于wget默認是保存到文件,而curl將輸出定向到命令行上。這使得curl能非常方便的查看站點的內容。比如,我們可以從ifconfig.me站點得到我們本機的IP地址:

  1. $ curl ifconfig.me  
  2.    
  3. 93.96.141.93 

Curl的-i(查看header)和-I(只顯示header)選項使得調試HTTP響應以及查看服務器究竟發送給你了什么變得非常有用:

  1. $ curl -I news.ycombinator.com  
  2. HTTP/1.1 200 OK  
  3. Content-Type: text/html; charset=utf-8  
  4. Cache-Control: private 
  5. Connection: close 

-L選項也很有用,能讓curl自動跟蹤重定向。Curl支持HTTP基本認證,cookies,手動設定headers以及更多有用的功能。

 

Ngrep

如果要分析網絡數據包,我們有Wireshark,它有著上千種設定、過濾器以及配置選項。它還有一個命令行版本Tshark。如果只是針對簡單的任務,我覺得Wireshark就太重量級了,所以除非我需要更強大的功能,一般情況下就用ngrep來處理了。Ngrep可以讓你像類似grep處理文件的方式來處理網絡封包。

針對Web流量,你幾乎總是想要加上-W byline選項,這會保留換行符,而-q選項可以抑制某些非匹配數據包而產生的輸出。下面是一個抓取所有包含有GET或POST請求數據包的例子:

  1. ngrep –q –W byline “^(GET|POST) .*” 

你也可以傳入附加的報文過濾選項,比如限制匹配的報文只針對某個特定的主機,IP或端口。這里我們把所有流經Google的流量做一個過濾,只針對80端口且報文中包含“search”。

  1. ngrep –q –W byline “search” host www.google.com and port 80 

Netcat

Netcat或者叫nc,這是一個自稱是網絡中的瑞士軍刀般的工具。它很簡單但也非常強大和靈活,允許你創建任意的網絡連接。這里我們來看看如何把它作為一個端口掃描器:

  1. $ nc –z example.com 20-100 
  2. Connection to example.com 22 port [tcp/ssh] succeeded!  
  3. Connection to example.com 80 port [tcp/ssh] succeeded! 

除了能夠創建任意的連接,Netcat還能夠監聽傳入的連接。這里我們利用nc的這個功能再配合tar來快速有效的在服務器之間拷貝文件。在服務器端,運行:

  1. $nc –l 9090 | tar –xzf – 

在客戶端運行:

  1. $tar –czf dir/ | nc server 9090 

我們可以使用Netcat把任何應用通過網絡暴露出來,這里我們通過8080端口將shell暴露出來:

  1. $ mkfifo backpipe  
  2. $ nc –l 8080 0<backpipe | /bin/bash > backpipe 

現在我們可以通過任意一臺客戶機來訪問服務器了:Linode

  1. $ nc example.com 8080  
  2. uname –a  
  3. Linux li228-162 2.6.39.1-linode34 ##1 SMP Tue Jun 21 10:29:24 EDT 2011 i686 GNU/Linux 

盡管后面這兩個例子有些投機取巧的成分(現實中你應該使用類似rsync這樣的工具來拷貝文件,用SSH來遠程登錄服務器),它們還是展示出了Netcat的強大和靈活,通過結合netcat和其它的應用你可以實現很多不同的事情。

Sshuttle

Sshuttle允許你通過任意一臺可SSH訪問的服務器來為你的流量建立安全的隧道。搭建和使用都非常簡單,不需要你在服務器上安裝任何軟件或者修改任何本地代理設定。當你在非安全的公共WiFi或其他不受信任的網絡中時,通過SSH讓流量走安全隧道,這樣就可避免類似Firesheep或dsniff這樣的工具的侵擾。所有的網絡通訊,包括DNS請求都會發送到你的SSH服務器:

  1. $ sshuttle –r <server> --dns 0/0 

如果你提供了—daemon參數,sshuttle會以守護進程的形式在后臺運行。結合一些其他的選項,你可以使用別名形式來簡單快速的啟動和停止安全隧道:

  1. alias tunnel=’sshuttle –D –pidfile=/tmp/sshuttle.pid –r <server> --dns 0/0’  
  2. alias stoptunnel=’[[ -f /tmp/sshuttle.pid ]] && kill `cat /tmp/sshuttle.pid`’ 

你也可以使用sshuttle來解決一些基于IP的地理定位篩選的問題,如今有很多服務都在使用這種應用比如BBC的iPlayer就需要你在英國,還有Turntable,需要你在美國。要繞過這種限制,你需要訪問到位于該國的某個服務器。Amazon在許多國家都有免費的E2C微實例,或者你也可以找一個便宜的vps,幾乎世界上任何國家都有。

在這個例子中,我們不需要讓所有的流量都走隧道,我們只需要針對目標服務的流量就行了。

不幸的是sshuttle只接受IP地址作為參數,不支持主機名,所以我們還得先用dig來解析出主機名。

  1. $ sshuttle –r <server> `dig +short <hostname>` 

Siege

Siege是一個HTTP基準測試工具。除了負載測試功能外,它還有一個很方便的-g選項,這非常類似于curl的-iL,只是這里Siege也會輸出請求header。這里是針對Google的一個例子(為了簡潔我拿掉了一些header)

  1. $ siege -g www.google.com  
  2. GET / HTTP/1.1  
  3. Host: www.google.com  
  4. User-Agent: JoeDog/1.00 [en] (X11; I; Siege 2.70)  
  5. Connection: close   
  6.    
  7. HTTP/1.1 302 Found  
  8. Location: http://www.google.co.uk/  
  9. Content-Type: text/html; charset=UTF-8  
  10. Server: gws  
  11. Content-Length: 221  
  12. Connection: close   
  13.    
  14. GET / HTTP/1.1  
  15. Host: www.google.co.uk  
  16. User-Agent: JoeDog/1.00 [en] (X11; I; Siege 2.70)  
  17. Connection: close   
  18.    
  19. HTTP/1.1 200 OK  
  20. Content-Type: text/html; charset=ISO-8859-1  
  21. X-XSS-Protection: 1; mode=block 
  22. Connection: close 

Siege真正在行的是服務器的負載測試。就像ab(一款Apache HTTP服務基準測試工具)一樣,你可以向站點發送并發請求,并查看它如何處理流量。用下面的命令,我們會在30秒內向Google發起20個并發連接,最后會得到一個漂亮的測試報告。

  1. $ siege -c20 www.google.co.uk -b -t30s  
  2. ...  
  3. Lifting the server siege... done.  
  4. Transactions: 1400 hits  
  5. Availability: 100.00 %  
  6. Elapsed time: 29.22 secs  
  7. Data transferred: 13.32 MB  
  8. Response time: 0.41 secs  
  9. Transaction rate: 47.91 trans/sec  
  10. Throughput: 0.46 MB/sec  
  11. Concurrency: 19.53  
  12. Successful transactions: 1400  
  13. Failed transactions: 0  
  14. Longest transaction: 4.08  
  15. Shortest transaction: 0.08 

Siege最有用的一個特性是它可以把一個記錄URL的文件作為輸入,然后“點擊”這些URL,而不是只處理一個單獨的頁面。這對于負載測試來說很有用,因為你可以對站點重現真實的流量并觀察站點如何處理,而不必一遍又一遍重復點擊同一個URL。下面是你用Siege來重現Apache對另一臺服務器的日志記錄,以做負載測試的例子:

  1. $ cut -d ' ' -f7 /var/log/apache2/access.log > urls.txt  
  2. $ siege -c<concurrency rate> -b -f urls.txt 

Mitmproxy

Mitmproxy是一個支持SSL的HTTP中間人代理工具,它允許你檢查HTTP和HTTPS流量并支持直接改寫請求。這個應用曾經在一些有關iOS應用的隱私丑聞中都出現過,包括Path的地址簿上傳丑聞。它的直接改寫請求的能力也被用來針對iOS平臺,其應用包括在GameCenter中偽造一個虛假的高分數值。

Mitmproxy可不只是用來查看移動應用發送了些什么內容或者是偽造幾個高分數值那么簡單。它同樣可以為Web開發者解決很多問題。比如,之前我們需要不停點擊F5鍵或者清除緩存才能保證看到最新的內容,現在你可以運行:

  1. $ mitmproxy --anticache 

然后跑一遍用戶注冊流程,目前為止應該能如預期般的工作。用Ctrl+C來停止記錄。在任意時刻我們都能重現剛剛記錄到的交互過程,并檢查200狀態碼:

  1. $ mitmdump -c user-signup | tail -n1 | grep 200 && echo "OK" || echo "FAIL" 

如果注冊流程中的任意一點出了問題,我們將看到FAIL消息而不是OK。你可以創建一整套這類測試套件,并經常執行這類測試以確保當站點突然出現故障時你會得到提示。

 

作者簡介

Ben Dowling是一名英國的軟件工程師,現居住在加州的Mountain View。他的博客地址是coderholic.com 推特賬號是@coderholic

英文原文:Ben Dowling

譯文鏈接:http://blog.jobbole.com/30251/

責任編輯:林師授 來源: 伯樂在線
相關推薦

2012-03-20 13:58:50

JavaScript

2021-11-16 19:19:07

API接口前端開發

2020-06-16 13:58:20

Web開發工具

2022-01-21 10:18:53

VSCode擴展插件

2022-02-21 00:11:24

Java工具開發

2023-04-07 16:11:56

前端開發

2015-06-26 09:34:29

CSS開發框架及工具

2024-10-28 16:06:50

2020-12-13 17:54:36

開發人員

2012-07-27 10:17:05

開發

2012-09-12 10:10:11

Web工具jQuery

2020-06-09 07:57:47

前端開發代碼

2012-07-20 10:46:44

Web

2017-08-14 10:27:51

Web 開源可視化

2009-04-03 10:00:56

2017-08-07 08:47:31

開源圖形庫數據可視化

2015-07-29 11:05:58

IE開發人員實用功能

2012-12-28 10:10:18

2019-07-26 12:18:41

JavaSQL網絡硬盤

2013-06-05 10:16:53

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧洲一级毛片 | 欧美一级片中文字幕 | 激情久久网 | 久久在线精品 | 91精品久久久久久综合五月天 | 日本a∨视频 | 国产精品久久午夜夜伦鲁鲁 | www.日韩av.com| 国产在线精品一区二区三区 | 狠狠干天天干 | 自拍偷拍在线视频 | 亚洲精品乱码久久久久久按摩观 | 超碰成人在线观看 | 国产成人在线一区二区 | 亚洲精品一区二区久 | 日韩av在线不卡 | 国产精品久久亚洲7777 | 特黄一级 | 狠狠干av| 欧美一区二区三区大片 | 国产欧美在线 | 久久精品一区二区三区四区 | 亚洲高清av在线 | 在线视频第一页 | 欧美精品久久 | 免费观看视频www | 国精产品一区二区三区 | 在线观看av网站永久 | 天天插天天舔 | 韩国精品一区二区三区 | 国产精品久久久久久久久久久免费看 | 国产日韩欧美在线观看 | 亚洲欧美成人在线 | h视频在线观看免费 | 国产精品18毛片一区二区 | 精品久久香蕉国产线看观看亚洲 | 欧美精品第一区 | 精品国产乱码久久久久久丨区2区 | 国产精品日韩一区二区 | xx视频在线观看 | av一区二区三区四区 |