我遇到了一个奇怪的问题,一两天前开始出现,我不知道原因。发生此问题的服务器运行的是 CentOS 6.3 64 位。
由于某种原因,尝试连接某些外部网络服务器的网页的程序却转到本地机器上运行的网络服务器。
例如,当我尝试“yum update”时,repo 给出 404 消息,这是在 /var/logs/httpd/access_log 中:
xx.xx.xx.xx - - [29/Jul/2012:09:18:34 -0700] "GET /centos/6.3/extras/x86_64/repodata/repomd.xml HTTP/1.1" 404 329
xx.xx.xx.xx - - [29/Jul/2012:09:18:35 -0700] "GET /packages/centos/6/x86_64/repodata/repomd.xml HTTP/1.1" 404 317
xx.xx.xx.xx - - [29/Jul/2012:09:18:35 -0700] "GET /repoforge/redhat/el6/en/x86_64/rpmforge/repodata/repomd.xml HTTP/1.1" 404 337
xx.xx.xx.xx - - [29/Jul/2012:09:18:36 -0700] "GET /centos/6.3/updates/x86_64/repodata/repomd.xml HTTP/1.1" 404 336
xx.xx.xx.xx 是本地机器上的一个 IP。这不仅仅发生在 yum 上,机器上运行的另一个进程会转到外部网页以发出心跳请求信号,该请求也会因某种原因被重定向到 httpd 服务器。
我唯一能想到的就是一些规则被添加到 iptables 中,我备份了当前规则,然后刷新了 iptables,问题仍然存在。httpd 配置或 /etc/hosts 最近也没有发生任何变化。
答案1
我认为您可以从这台计算机 ping 出去,否则您会提到无法做到。
如果您尝试通过端口 80 远程登录到某个站点并且仍然获得自己的 HTTPD 服务,我会开始查看端口转发或 DNS 设置等内容。
如果您获取了远程主机,请在 Yum 服务中查找代理。其他地方的论坛帖子建议查找 $http_proxy
答案2
它要么是 DNS,要么是 iptables NAT 规则。使用以下host
命令检查主机名是否正确解析,例如:
$ host google.com
google.com has address 74.125.224.68
如果您获得 127.0.0.0/8 范围内的 IP(或您机器的公共 IP),请检查您的 DNS 服务器。
要检查 iptables NAT 规则,请运行iptables -t nat -nvL
(请注意,如果您不指定,则看不到 NAT 规则-t nat
)。影响本地计算机流量的规则将包含在OUTPUT
链中。除非此计算机是路由器或防火墙,否则您可能不应该在此处设置任何规则。