wget 不适用于 IPv6

wget 不适用于 IPv6

我的 Debian 服务器同时具有 IPV4 和 IPV6 地址。

我在我的 php 脚本中使用 file_get_contents 从 youtube 获取视频标题:

if($content=file_get_contents("http://www.youtube.com/get_video_info?video_id=".$video_id)) {
}

今天我注意到这个脚本挂了很长时间并且没有得到任何视频标题。

Nginx 日志文件显示以下内容:

upstream timed out (110: Connection timed out) while reading response header from upstream.

我决定用 wget 做一个测试:

    wget http://www.youtube.com/get_video_info?video_id=XX_hWpPnd3I
--2015-09-02 13:34:25--  http://www.youtube.com/get_video_info?video_id=XX_hWpPnd3I
Resolving www.youtube.com (www.youtube.com)... 2a00:1450:4007:80e::200e, 216.58.208.238
Connecting to www.youtube.com (www.youtube.com)|2a00:1450:4007:80e::200e|:80... failed: Connection timed out.
Connecting to www.youtube.com (www.youtube.com)|216.58.208.238|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/x-www-form-urlencoded]
Saving to: `get_video_info?video_id=XX_hWpPnd3I'

    [ <=>                                                                                                                                                        ] 400         --.-K/s   in 0s

2015-09-02 13:36:34 (42.9 MB/s) - `get_video_info?video_id=XX_hWpPnd3I' saved [400]

如您所见,服务器正在尝试使用 IPv6。当它不起作用时,它会使用 IPV4。

我该如何修复此问题?phpinfo() 显示 IPV6 已启用。为什么它不能与 file_get_contents 和 wget 一起使用?

答案1

这是防火墙问题。CSF 中禁用了 IPV6。

相关内容