- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
推荐给开发人员的实用命令行工具
推荐给开发人员的实用命令行工具
作为一名Web开发者,当程序出现问题时日子总不是那么好过。问题可能无处不在,可能是你发送的请求出了错,可能是回复出了错,可能是你使用的某个第三方库出了问题,又或者是一个外部API调用失败了。优秀的工具对于定位问题出在何处有着无可估量的价值,而且能在一开始就帮助我们阻止问题的出现,总的来说能使我们的工作更有效率。命令行工具尤其有用,因为它们非常易于做自动化和脚本处理,能够以各种不同的方式进行组合和重用。本文介绍了6个非常强大且灵活的工具,熟练使用这些工具能使你的生活变得更轻松一些。
Curl
Curl是一个网络传输工具,同wget非常相似。主要的区别在于wget默认是保存到文件,而curl将输出定向到命令行上。这使得curl能非常方便的查看站点的内容。比如,我们可以从ifconfig.me站点得到我们本机的IP地址:
$?curl?ifconfig.me ?
? ?
3?
Curl的-i(查看header)和-I(只显示header)选项使得调试HTTP响应以及查看服务器究竟发送给你了什么变得非常有用:
$?curl?-I? ?
HTTP/1.1?200?OK ?
Content-Type:?text/html;?charset=utf-8 ?
Cache-Control:?private?
Connection:?close?
-L选项也很有用,能让curl自动跟踪重定向。Curl支持HTTP基本认证,cookies,手动设定headers以及更多有用的功能。
Ngrep
如果要分析网络数据包,我们有Wireshark,它有着上千种设定、过滤器以及配置选项。它还有一个命令行版本Tshark。如果只是针对简单的任务,我觉得Wireshark就太重量级了,所以除非我需要更强大的功能,一般情况下就用ngrep来处理了。Ngrep可以让你像类似grep处理文件的方式来处理网络封包。
针对Web流量,你几乎总是想要加上-W byline选项,这会保留换行符,而-q选项可以抑制某些非匹配数据包而产生的输出。下面是一个抓取所有包含有GET或POST请求数据包的例子:
ngrep?–q?–W?byline?“^(GET|POST)?.*”?
你也可以传入附加的报文过滤选项,比如限制匹配的报文只针对某个特定的主机,IP或端口。这里我们把所有流经Google的流量做一个过滤,只针对80端口且报文中包含“search”。
ngrep?–q?–W?byline?“search”?host??and?port?80?
Netcat
Netcat或者叫nc,这是一个自称是网络中的瑞士军刀般的工具。它很简单但也非常强大和灵活,允许你创建任意的网络连接。这里我们来看看如何把它作为一个端口扫描器:
$?nc?–z??20-100?
Connection?to??22?port?[tcp/ssh]?succeeded! ?
Connection?to??80?port?[tcp/ssh]?succeeded!?
除了能够创建任意的连接,Netcat还能够监听传入的连接。这里我们利用nc的这个功能再配合tar来快速有效的在服务器之间拷贝文件。在服务器端,运行:
$nc?–l?9090?|?tar?–xzf?–?
在客户端运行:
$tar?–czf?dir/?|?nc?server?9090?
我们可以使用Netcat把任何应用通过网络暴露出来,这里我们通过8080端口将shell暴露出来:
$?mkfifo?backpipe ?
$?nc?–l?8080?0backpipe?|?/bin/bash??backpipe?
现在我们可以通过任意一台客户机来访问服务器了:Linode
$?nc??8080 ?
uname?–a ?
Linux?li228-162?-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服务器:
$?sshuttle?–r?server?--dns?0
文档评论(0)