由于公司要做一个爬虫比较的功能,需要通过域名爬去tmall,jd的商品,在部署上线的时候发现无法访问jd和tmall的域名,起初以为只是DNS没有配置,在/etc/resolv.conf 添加了nameserver=114.114.114.114 之后可以直接ping通域名但是curl依然无法解析域名。
后来发现是因为使用了ipv6协议进行访问,所以导致curl 超时。
vi /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1 #此条禁用服务器所有网卡的ipv6协议,如果想禁用指定网卡的ipv6协议,将其中的all换成网卡名。
net.ipv6.conf.default.disable_ipv6 = 1
此方法需要重启服务器,生产环境使用此方法生效。
临时关闭ipv6方法,此方法实际使用未生效。
echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6