wget
我对GNU/Linux 中的工具有几个问题:
# wget http://www.jdfschool.com
--2019-04-05 02:33:44-- (Trys: 3) http://www.jdfschool.com/
Connecting www.jdfschool.com|115.28.223.13|:80... Connected.
An HTTP request has been issued, waiting for a response... Connection reset by peer.
Retrying.
Connected
inConnecting www.jdfschool.com|115.28.223.13|:80... Connected.
代表TCP连接成功吗?日志里看到了
Connection reset by peer
,有更详细的日志吗?我不知道重置问题的原因。
答案1
正如您正确假设的那样,80...已连接意味着(Web)服务正在侦听端口 80,并且您能够连接到它。
如果该网站在使用浏览器(以及其他 IP 地址)时运行良好,则connection reset by peer
只会向您提供反馈,无论您尝试做什么,都不起作用。如果您想了解更多详细信息,可以尝试嗅探连接。
然而,如果没有向网站所有者询问日志/调试,我非常怀疑您是否会获得更多有关其重置背后原因的数据。
至于原因,可能是他们有规则不接受您的用户代理/蜘蛛/具有特定页面/或配置,故意引发该错误,或者在定义的时间范围(由他们定义)内尝试/页面后阻止您)。
正如之前所评论的,这更多地与特定站点的安全措施和配置相关,而不是 Unix 问题本身。
为了监听实际的 HTTP 请求,你也可以在你的机器上运行:
# ngrep -q "." "port 80"
或者
# ngrep -q "." "port 80 and host www.jdfschool.com"
ngrep
请注意,根据配置、HTML、DNS 和基础设施设置,第二个将侦听所有 HTTP 请求并不是给定的。
正如@muru 在评论中指出的那样,使用
wget -v http://www.jdfschool.com
还可能输出更多有用的数据。
正如之前所说,准确查明发生原因的可能性很小。 (例如,在 Apache Web 服务器中,通常设置 mod_evasive 和 mod_security 来遏制蜘蛛/滥用行为)
TLDR 从网站所有者的角度来看,您的命令所发生的情况很可能是预期的行为。