为什么我的服务器上 ping 可以正常工作,但 apt-get 和 wget 却会失败?

为什么我的服务器上 ping 可以正常工作,但 apt-get 和 wget 却会失败?

昨天我的服务器还正常,但是今天尝试后sudo apt-get update出现此错误:更新过程

我尝试: sudo rm /var/lib/apt/lists/* -vf 并且得到了然后再试update一次,但它没有解决我的问题,然后显示可能仍然是同样的错误


我检查了我的互联网连接并尝试ping google.com,得到结果:

PING google.com (74.125.235.40) 56(84) bytes of data.
From 136.198.117.254: icmp_seq=1 Redirect Network(New nexthop: fw1.jvc-jein.co.id (136.198.117.6))
64 bytes from sin01s05-in-f8.1e100.net (74.125.235.40): icmp_req=1 ttl=53 time=20.6 ms
64 bytes from sin01s05-in-f8.1e100.net (74.125.235.40): icmp_req=2 ttl=53 time=18.2 ms
64 bytes from sin01s05-in-f8.1e100.net (74.125.235.40): icmp_req=3 ttl=53 time=33.0 ms
64 bytes from sin01s05-in-f8.1e100.net (74.125.235.40): icmp_req=4 ttl=53 time=30.0 ms
64 bytes from sin01s05-in-f8.1e100.net (74.125.235.40): icmp_req=5 ttl=53 time=28.1 ms

有的网站说可能是由此引起的getdeb server is down


尝试安装:

jeinqa@SVRQAR:~$ sudo apt-get install pastebinit
Reading package lists... Error!
E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_precise-security_restricted_binary-amd64_Packages
E: The package lists or status file could not be parsed or opened.

尝试 :

sudo ufw status verbose

结果 :

Status: inactive

答案1

根据您尝试通过以下方式获取 Google 主页的测试wget -q -O- http://www.google.com有防火墙FW-1在机器/域上傑恩福这似乎阻止了大多数(如果不是全部)出站 http 访问。(Ping/ICMP 是不是与 http 相同,因此 ping 可以工作并不意味着 http 也可以工作)。

这就是apt-get失败的原因——它所期望的内容,无论是文本、bzip2、gzip 还是 xz,都是总是从防火墙获得此 HTML 响应当它请求任何文件时:

<TITLE>错误</TITLE>
<主体>
<H1>错误</H1>
jeinfw 处的 FW-1:拒绝访问。
</主体>

解决此问题的方法:

您需要设置您收到的 HTTP 代理服务器!(我通过聊天得知!)

假设服务器是http://139.xxx.xxx.xxx:8080

  • 使用(或您喜欢的编辑器)打开该/etc/profile文件sudo nano。该文件将启动时初始化的系统范围变量存储在控制台中。

  • 添加以下几行,并进行适当修改。您必须同时使用大写和小写字母,因为(不幸的是)某些程序仅查找其中一种:

    http_proxy=http://139.xxx.xxx.xxx:8080/
    https_proxy=http://139.xxx.xxx.xxx:8080/
    ftp_proxy=http://139.xxx.xxx.xxx:8080/
    no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
    HTTP_PROXY=http://139.xxx.xxx.xxx:8080/
    HTTPS_PROXY=http://139.xxx.xxx.xxx:8080/
    FTP_PROXY=http://139.xxx.xxx.xxx:8080/
    NO_PROXY="localhost,127.0.0.1,localaddress,.localdomain.com"
    

然后,设置代理apt-get和更新管理器

  • 这些程序不会遵循环境变量。创建一个名为的文件95proxies/etc/apt/apt.conf.d/并包含以下内容:

    获取::http::proxy "http://139.xxx.xxx.xxx:8080/";
    获取::ftp::proxy "ftp://139.xxx.xxx.xxx:8080/";
    获取::https::proxy "https://139.xxx.xxx.xxx:8080/";
    

最后,重新启动服务器以应用更改。

相关内容