Ubuntu 18.04.2 LTS,运行 #sudo apt-get update 时出现网络不可达消息

Ubuntu 18.04.2 LTS,运行 #sudo apt-get update 时出现网络不可达消息

我无法通过命令提示符访问互联网。虽然我可以通过浏览器访问。在网络代理中,我启用了自动模式并输入了代理地址,通过浏览器就可以正常工作。在浏览器上,每当我需要浏览某个页面时,我都需要提供用户名/密码信息。

问题 :

$ sudo apt-get update
Err:1 http://in.archive.ubuntu.com/ubuntu bionic InRelease                                                                    
    Cannot initiate the connection to in.archive.ubuntu.com:80 (2001:67c:1360:8001::17). - connect (101: Network is unreachable

我按照以下步骤解决了这个问题:

  1. 从命令提示符设置 http_proxy 变量。
  2. 使用以下内容验证 /etc/apt/sources.list

    德布http://security.ubuntu.com/ubuntubionic-security 主要受限 debhttp://security.ubuntu.com/ubuntu仿生安全宇宙 debhttp://security.ubuntu.com/ubuntu仿生安全多元宇宙

  3. /etc/netplan/*yaml 看起来不错。

让 NetworkManager 管理此系统上的所有设备。

network:
  version: 2
  renderer: NetworkManager
  ethernets:
      eno1:
          addresses: [10.120.26.158/24]
          gateway4: 10.120.26.1
          dhcp4: true
          optional: true
          nameservers:
              addresses: [10.120.25.152, 10.120.81.25, 8.8.8.8, 8.8.4.4]

我不确定我错过了什么。

添加一些新信息

$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
^C
--- 8.8.8.8 ping statistics ---
6 packets transmitted, 0 received, 100% packet loss, time 5123ms

$ ip addr show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever

2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether c8:d9:d2:04:54:7e brd ff:ff:ff:ff:ff:ff
    inet 10.120.26.158/24 brd 10.120.26.255 scope global noprefixroute eno1
       valid_lft forever preferred_lft forever
    inet6 fe80::cad9:d2ff:fe04:547e/64 scope link 
       valid_lft forever preferred_lft forever
$ ip route
default via 10.120.26.1 dev eno1 proto static metric 20100 
10.120.26.0/24 dev eno1 proto kernel scope link src 10.120.26.158 metric 100 
169.254.0.0/16 dev eno1 scope link metric 1000 

我只为 http 设置了代理,没有为 https 和 ftp 设置代理。

答案1

我不确定为什么 apt 不使用环境变量,但是我在必须使用代理的网络上自己遇到了这个问题。

您需要做的是告诉 apt 您想要使用代理。这可以通过在 /etc/apt/apt.conf.d/ 中添加代码片段文件来解决

文件名由您决定。此文件的内容必须是:

Acquire::http::Proxy "http://proxy-you-need-to-use:8080/";

显然,您在双引号之间设置了您在环境变量中设置的内容。

此后 apt 应该就可以正常工作了。

对于一行程序来说,这应该有效:

echo 'Acquire::http::Proxy "http://proxy-you-need-to-use:8080/";' | sudo tee /etc/apt/apt.conf.d/10-proxy-you-need-to-use

再次,显然,您需要使 http:// 部分适应实际的代理。

大多数 CLI 命令都支持代理,但并非全部,而且据我所知,这不是要求。

答案2

在 中/etc/apt/apt.conf.d/02proxy,使用以下语法:

Acquire::http { Proxy "http://user:password@proxy-ip:proxy-port"; };

Acquire::https { Proxy "https://user:password@proxy-ip:proxy-port"; };

答案3

在终端中尝试此操作以显示与 NIC 的连接

步骤 1 nmcl con show了解网卡连接

步骤 2 nmcli con up .... 您在步骤 1 中得到的内容

相关内容