我无法通过命令提示符访问互联网。虽然我可以通过浏览器访问。在网络代理中,我启用了自动模式并输入了代理地址,通过浏览器就可以正常工作。在浏览器上,每当我需要浏览某个页面时,我都需要提供用户名/密码信息。
问题 :
$ 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
我按照以下步骤解决了这个问题:
- 从命令提示符设置 http_proxy 变量。
使用以下内容验证 /etc/apt/sources.list
德布http://security.ubuntu.com/ubuntubionic-security 主要受限 debhttp://security.ubuntu.com/ubuntu仿生安全宇宙 debhttp://security.ubuntu.com/ubuntu仿生安全多元宇宙
/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 中得到的内容