无法连接到主机本身

无法连接到主机本身

嗯,问题很简单。我有一个基于 apache 的站点,并尝试从同一服务器在该站点上执行 cron 作业。比如说我的网站http://example.com和 cronjob 是

/usr/bin/curl http://example.com/cron.php

它不起作用,错误是“curl:(7)无法连接到主机”。

为什么会发生这种情况?

PS 该网站工作正常,可以从任何其他外部计算机/客户端访问。

这是 iptables -S 的输出

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 2222 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

Ping 失败:(ping example.com) - 当然,这里我使用了我的服务器域:

134 packets transmitted, 0 received, 100% packet loss, time 136759ms

答案1

这可能是由于多种原因造成的。

/*首先,我得说这与服务器故障网不在这里.*/

由于来自外部地址的流量被发送回内部网络,因此无法从内部网络及其本身访问网络的外部地址是很常见的。所以很可能是DNS问题,正如我之前在评论中提到的,您可以为本地网络和内部流量使用不同的 URL - 即使用拆分 DNS。

顺便说一句,根据您的连接类型,如果外部IP与服务器IP相同,您可能无法访问任何内容,因此请注意您的网络拓扑和网关配置。我不是网络专家,所以我只能帮助您进行系统管理 - 这就是我推荐的原因服务器故障网,不是这个地方。

顺便提一句,这是有用的东西- 虽然它是在 Windows 系统上而不是 Linux 上,但网络是网络 - 我在 SuperUser.com 上找到的,我认为这对你有很大帮助,这就是杰克·古尔德他在回答中说道:

我的钱花在路由器上的某种 NAT 环回设置被重置或停用上。 NAT 环回允许您在路由器的外部 IP 地址和内部 IP 地址上访问端口转发服务(例如端口 80 上的 Web 服务)。

您的路由器可能是 ISP 提供的路由器/调制解调器组合吗?可能是您的 ISP 重置或升级了路由器/调制解调器固件,并且 NAT 环回设置在此过程中被修改。许多 ISP 保留远程访问为您提供的路由器/调制解调器的权利,以便有时执行路由维护,而 NAT 环回之类的设置是相当非标准的设置,在重置过程中很容易被忽视或忽视。现在,我并不是纵容您的 ISP 在您不知情的情况下重置您的设备,而是将其作为您使用 ISP 提供的设备时可能发生的事情而公开。

我建议您进入路由器的配置,查看 NAT 环回选项(或听起来类似的选项)是否存在,并查看是否进行调整可以解决问题。

同时,由于你所说的Ping 失败,您可以添加自定义 ICMP 规则,iptables因为 Ping 通过向目标主机发送 Internet 控制消息协议 (ICMP) Echo Request(类型 8)数据包并等待 ICMP Echo Reply(类型 0)来运行,语法非常简单:

$ iptables -A INPUT -s x.x.x.x -p ICMP --icmp-type 8 -j ACCEPT

#OR if you don't know ICMP type numbers

$ iptables -A INPUT -s x.x.x.x -p ICMP --icmp-type echo-request -j ACCEPT

顺便说一句,请注意,您的cron 作业语法应该是这样的:

 # ┌───────────── min (0 - 59)
 # │ ┌────────────── hour (0 - 23)
 # │ │ ┌─────────────── day of month (1 - 31)
 # │ │ │ ┌──────────────── month (1 - 12)
 # │ │ │ │ ┌───────────────── day of week (0 - 6) (0 to 6 are Sunday to
 # │ │ │ │ │                  Saturday, or use names; 7 is also Sunday)
 # │ │ │ │ │
 # │ │ │ │ │
 # * * * * *  command to execute

我建议您通过检查您已进行或设置的网络和系统配置来查找问题并找出导致此问题的原因,然后尝试解决方案。避免做一些事情,除非你知道它是什么

相关内容