【问题标题】:http request fails to other computer of same networkhttp请求对同一网络的其他计算机失败
【发布时间】:2013-11-18 21:27:38
【问题描述】:

我是 linux 网络和 apache 服务器配置的新手。

有人在同一个 vpn 下给了我两台 linux 服务器。上面安装了 Redhat。

那些服务器同时具有内部 ip 和外部 ip。我的意思是外部IP被转发到那些内部IP。

我已经在这些服务器上安装了 apache 并在它们上上传了 php 网站。所以我可以使用他们的外部IP从互联网(从VPN外部)访问安装在这些服务器上的网站。

两台服务器都有主机名(我的意思是我通过主机名命令获取本地域名)

我也可以通过 ssh 通过外部 ip 和内部 ip 以及该主机名相互 ping 通。

但是从已安装网站的 php 端,我无法从另一台服务器访问一台服务器的网站。

我已尝试使用 file_get_contents 和 curl 访问网站。我尝试过使用外部 ip 和内部 ip 以及主机名,但都失败了。

我检查了 file_get_contents 和 curl,发现它们正在与其他公共网站(如 google dot com 等)一起使用。

但仅当我尝试从该 vpn 上的一台服务器访问另一台服务器时它才起作用(我的意思是同一网络)

你能告诉我是什么问题吗?

是 apache 配置问题还是 vpn 设置或 ip 转发问题?

请帮忙。

问候 阿尔阿明

===

编辑

sudo netstat -tlpen

Proto Recv-Q Send-Q Local Address               Foreign Address             State       User       Inode      PID/Program name
tcp        0      0 127.0.0.1:199               0.0.0.0:*                   LISTEN      0          615968     574/snmpd
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      27         1948058    3881/mysqld
tcp        0      0 127.0.0.1:53                0.0.0.0:*                   LISTEN      25         3052927    6927/named
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      0          616002     586/sshd
tcp        0      0 127.0.0.1:953               0.0.0.0:*                   LISTEN      25         3052932    6927/named
tcp        0      0 :::80                       :::*                        LISTEN      0          3149386    7369/httpd
tcp        0      0 ::1:53                      :::*                        LISTEN      25         3052929    6927/named
tcp        0      0 :::22                       :::*                        LISTEN      0          616004     586/sshd
tcp        0      0 ::1:953                     :::*                        LISTEN      25         3052933    6927/named

【问题讨论】:

  • 你在命令行上试过 curl 或 wget 吗?尝试在 PHP 中使用 IP 而不是主机名。有用吗?
  • wget with internal ip show 200 OK 但没有内容。 curl 一样没有内容。
  • 我猜是远程php代码有错误
  • 当我尝试使用外部 ip 时显示失败:没有到主机的路由
  • 我终于找到了问题并解决了。我刚刚在 httpd.conf 文件的 标记中放置了 Allow from all 并且它起作用了。这是我的错。我在想如果拒绝所有不存在于 标记中,那么默认情况下它将允许所有,但我错了。我必须在 httpd.conf 文件中的 标签中添加 Allow from all。

标签: php linux apache


【解决方案1】:

这可能是防火墙问题。您需要在您尝试连接的服务器上禁用防火墙。如果解决了问题,则重新配置防火墙以允许服务器之间的 VPN 连接。

【讨论】:

  • 我已经使用以下命令停止了文件墙 # service iptables save # service iptables stop # chkconfig iptables off 但它仍然无法正常工作
  • ping 或 telnet 连接在这两台服务器之间有效,但 http 请求无效
  • 我的意思是在服务器上运行 curl。这就是你的意思,对吧?
  • 我终于找到了问题并解决了。我刚刚在 httpd.conf 文件的 标记中放置了 Allow from all 并且它起作用了。这是我的错。我在想如果拒绝所有不存在于 标记中,那么默认情况下它将允许所有,但我错了。我必须在 httpd.conf 文件中的 标签中添加 Allow from all。
  • @AlAmin 您应该将其发布为答案并接受它,这将关闭问题并帮助未来的访问者访问此页面。
【解决方案2】:

我终于找到了问题并解决了。我刚刚在 httpd.conf 文件中的标签中放置了 Allow from all 并且它起作用了。这是我的错。我在想如果拒绝所有不存在于标签中,那么默认情况下它将允许所有但我错了。我不得不把 Allow from all in 标签放在 httpd.conf 文件中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-05
    • 2019-09-16
    • 2020-04-09
    • 1970-01-01
    相关资源
    最近更新 更多