我想https://example.com
使用该wget
命令下载,但它显示“不支持/无法识别的协议”。我尝试使用--secure protocol=''
但不起作用。我从 GNU wget 下载了 tar 文件并尝试配置它,但失败了。
这是我所看到的示例:
bash-2.05$ wget https://www.facebook.com/
https://www.facebook.com/: Unknown/unsupported protocol.
bash-2.05$
大家好,感谢您的回答,验证了我的 wget 版本,如下所示
bash-2.05$ wget -V
GNU Wget 1.6
Copyright (C) 1995, 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
Originally written by Hrvoje Niksic <[email protected]>.
我不知道我的 wget 是否是由 SSL 编译的以及 SSL 是否启用。您能告诉我如何编译该wget
命令吗?我尝试运行该configure
文件,然后输入make
命令,这给了我命令未找到错误。即使运行配置文件后,它也没有给我任何wget
在/usr/local/
.
bash-2.05$ cd wget-1.10.1
bash-2.05$ ./configure --prefix=/usr/local --with-ssl
bash-2.05$ make
bash: make: command not found
我下载的版本是
wget-1.10.1.tar
答案1
解决方案
验证您的wget
二进制文件是在启用 SSL 支持的情况下编译的。当我尝试你给出的命令时我的输出:
$ wget https://www.facebook.com
--2015-07-19 15:27:17-- https://www.facebook.com/
Resolving www.facebook.com (www.facebook.com)... 31.13.66.1, 2a03:2880:f013:1:face:b00c:0:1
Connecting to www.facebook.com (www.facebook.com)|31.13.66.1|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://www.facebook.com/unsupportedbrowser [following]
--2015-07-19 15:27:18-- https://www.facebook.com/unsupportedbrowser
Reusing existing connection to www.facebook.com:443.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘index.html’
index.html [ <=> ] 29.21K --.-KB/s in 0.04s
2015-07-19 15:27:18 (775 KB/s) - ‘index.html’ saved [29916]
$
如果没有完全限定的 URL,则会下载包含标签等的默认页面index.html
。当通过浏览器查看时,所有此页面都会告诉我,我的浏览器不受支持,换句话说:我们不支持通过wget
.
$ eix wget
[I] net-misc/wget
Available versions: 1.16 ~1.16.1 ~1.16.2 ~1.16.3 {debug gnutls idn ipv6 nls ntlm pcre +ssl static test uuid zlib}
Installed versions: 1.16(11:25:57 AM 07/19/2015)(idn ipv6 nls pcre ssl zlib -debug -gnutls -ntlm -static -test -uuid)
Homepage: http://www.gnu.org/software/wget/
Description: Network utility to retrieve files from the WWW
每条评论
如果您从未见过基于 Gentoo 的输出,版本输出如下所示(注意-DHAVE_LIBSSL
):
$ wget -V
wget -V
GNU Wget 1.16 built on linux-gnu.
+digest +https +ipv6 +iri +large-file +nls -ntlm +opie -psl +ssl/openssl
Wgetrc:
/etc/wgetrc (system)
Locale:
/usr/share/locale
Compile:
x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H
-DSYSTEM_WGETRC="/etc/wgetrc" -DLOCALEDIR="/usr/share/locale" -I.
-I../lib -I../lib -DHAVE_LIBSSL -march=amdfam10 -O2 -pipe
Link:
x86_64-pc-linux-gnu-gcc -DHAVE_LIBSSL -march=amdfam10 -O2 -pipe
-Wl,-O1 -Wl,--as-needed -lpcre -lssl -lcrypto -lz -lidn ftp-opie.o
openssl.o ../lib/libgnu.a
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://www.gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Originally written by Hrvoje Niksic <[email protected]>.
Please send bug reports and questions to <[email protected]>.
请注意,ssl 在基于 Gentoo 的输出中的 Installed Versions 行中不包含减号,这意味着我已经在我的 Gentoo 机器上编译了 SSL 支持。为了更进一步,请您用您的发行版更新您的问题。
答案2
如果其他人在 vmWare ESXi 或另一个 BusyBox 环境中遇到此错误,那么您实际上并没有使用wget
:
wget -V
对我来说输出:
wget: invalid option -- 'V'
BusyBox v1.22.1 (2018-07-23 19:34:44 PDT) multi-call binary.
Usage: wget [-csq] [-O FILE] [-Y on/off] [-P DIR] [-U AGENT] URL...
Retrieve files via HTTP or FTP
-s Spider mode - only check file existence
-c Continue retrieval of aborted transfer
-q Quiet
-P DIR Save to DIR (default .)
-O FILE Save to FILE ('-' for stdout)
-U STR Use STR for User-Agent header
-Y Use proxy ('on' or 'off')
所以你运气不好。使用不同的方法(例如 SCP)从工作站传输文件。
答案3
尝试删除“s”...我的意思是只使用http。
大多数时候,都会有从 http 到 https active 的重定向,并且 wget 似乎可以使用它。
使用纯 http 在浏览器中输入地址,如果重定向到 https,则 wget 可能会起作用。
所以..wget http://example.com/file