Ответ 1
Многие серверы имеют IPv6, но его не маршрутизируют, и он фактически не работает. Это становится серьезной проблемой, когда вы пытаетесь получить доступ к сайту, готовому к IPv6. По умолчанию curl попытается подключиться через IPv6 и будет тайм-аут. Через IPv4 он может работать нормально, только если вы добавите это:
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );
Если вы столкнулись с этой проблемой с file_get_contents()
, get_headers()
и т.д., вы можете добавить следующие строки в /etc/sysctl.conf
:
#disable ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
или
echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6
Обновление по вашим комментариям:
Отключить ipv6 в freebsd 9
/etc/rc.conf
ipv6_network_interfaces="none" # Default is auto
ipv6_activate_all_interfaces="NO" # this is the default
ip6addrctl_enable="NO" # New way to disable IPv6 support
ip6addrctl_policy="ipv4_prefer" # Use IPv4 instead of IPv6
ipv6_activate_all_interfaces="NO" # Do not automatically add IPv6 addresses