【发布时间】: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。