php curl couldnt connect to host,Linux中Curl命令couldn't connect to host解决方案 php操作Curl(http,https)无法获取远...

本人在做百度账户第三方登录接口,获取百度token,利用php操作curl post方式发送请求token,出现couldn't connect to host错误。经过调试测试,最后终于成功。回头写了博客总结几点,供大家分享。下面就由我分别介绍:

生产环境和问题阐述:

linux+nginx+php+mysql+thinkphp

一、在SHELL环境下,通过curl命令无法获取远程数据,出现error:couldn't connect to host找不到主机的解决方案。

iptables -A OUTPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

意思是,所有外出的请求目标的80端口授权。

之后curl 远程url就肯定能成功。

二、php操作Curl(http,https)无法获取远程数据解决方案

iptables -A OUTPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT

如果在SHELL下curl是正常的,在php curl也必然正常,但是请求https SSH就未必正常,因为需要开启OUTPUT SSH端口443。

三、最后贴上我的防火墙规则

*filter

:INPUT DROP [183:50261]

:FORWARD DROP [0:0]

:OUTPUT DROP [4:208]

-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 110 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 20 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 53 -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -p tcp -m tcp --dport 8000 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 9123 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 843 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 5900:5903 -j ACCEPT

-A INPUT -m state --state INVALID -j DROP

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -p tcp -m tcp --dport 53 -j ACCEPT

-A INPUT -p udp -m udp --sport 53 -j ACCEPT

-A INPUT -p udp -m udp --dport 53 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

#-A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT

#-A FORWARD -i eth1 -o eh0 -j ACCEPT

#-A FORWARD -f -m limit --limit 100/sec --limit-burst 100 -j ACCEPT

#-A FORWARD -p icmp -m limit --limit 1/sec --limit-burst 10 -j ACCEPT

#-A FORWARD -m state --state INVALID -j DROP

-A OUTPUT -p tcp -m tcp --sport 22 -j ACCEPT

-A OUTPUT -p tcp -m tcp --sport 80 -j ACCEPT

-A OUTPUT -p icmp -j ACCEPT

-A OUTPUT -o lo -j ACCEPT

-A OUTPUT -p tcp -m tcp --sport 8000 -j ACCEPT

-A OUTPUT -p tcp -m tcp --sport 3306 -j ACCEPT

-A OUTPUT -p tcp -m tcp --sport 9123 -j ACCEPT

-A OUTPUT -p tcp -m tcp --sport 843 -j ACCEPT

-A OUTPUT -p tcp -m tcp --sport 5900:5903 -j ACCEPT

-A OUTPUT -m state --state INVALID -j DROP

-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT

-A OUTPUT -p udp -m udp --sport 53 -j ACCEPT

-A OUTPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

-A OUTPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT

COMMIT

# Completed on Tue Jun 10 09:20:48 2014

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值