• 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
    


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

  • 相关阅读:
    JZOJ 3034. 【NOIP2012模拟10.17】独立集
    JZOJ 3035. 【NOIP2012模拟10.17】铁轨
    JZOJ 1259. 牛棚安排
    数位DP JZOJ 3316. 非回文数字
    JZOJ 3046. 游戏
    JZOJ 3013. 填充棋盘
    debian 安装oracle提供的java8
    java 汉字转拼音 PinYin4j
    debian ssh设置root权限登陆 Permission denied, please try again
    java并发下订单生成策略
  • 原文地址:https://www.cnblogs.com/stevin-john/p/4768995.html
Copyright © 2020-2023  润新知