zoukankan      html  css  js  c++  java
  • 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
    


    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    623. Add One Row to Tree 将一行添加到树中
    771. Jewels and Stones 珠宝和石头
    216. Combination Sum III 组合总数三
    384. Shuffle an Array 随机播放一个数组
    382. Linked List Random Node 链接列表随机节点
    向github项目push代码后,Jenkins实现其自动构建
    centos下安装Jenkins
    python提取批量文件内的指定内容
    批处理实现:批量为文件添加注释
    python抓取每期双色球中奖号码,用于分析
  • 原文地址:https://www.cnblogs.com/stevin-john/p/4768995.html
Copyright © 2011-2022 走看看