我刚刚安装了 Ubuntu Server 18.04 并设置了 SSH,以便我可以继续通过我的桌面进行配置,但我遇到了一些似乎无法解决的问题。
我试图逃跑
sudo apt-get update
但不断出现错误:
暂时无法解析 archive.ubuntu.com
获取失败http://archive.ubuntu........
我通过运行检查了我的互联网连接是否正常
ping 8.8.8.8
我收到了回复,一切正常。
我怀疑我的 DNS 设置不正确,所以我尝试
ping www.google.com
并收到错误:
名称解析暂时失败
好的,所以我确定这实际上是某种 DNS 问题,但我尝试过的所有“答案”对我来说都不起作用。
我尝试编辑/etc/resolv.conf
但没有成功,因为它似乎是一个符号链接。
我在这里找到了一个答案,它只有从 root 运行时才有效,即:
sudo bash
但它指示随后通过以下方式撤销更改:
rm /etc/resolv.conf
ln -s /run/resolvconf/resolv.conf /etc/resolv.conf
但如果我这样做,我就会再次失去连接。
- 我是不是应该保持原样,还是做点别的?
- 这能是一个永久的解决方案吗?
- 而问题的根源是否就是
/run/resolvconf/resolv.conf
实际上并不存在的事实?
答案1
在安装了 xorg lightdm lightdm-gtk-greeter 和 xfce4 GUI 的 ubuntu 服务器 18-04 中,启动系统时,我发现让有线网络运行的唯一方法是这样的:
sudo dhclient -v -4
效果很好,但是每次启动后以及每次网络断开/重新连接后都必须手动完成此操作,因此它可以有效,但它是一个手动解决方案,而不是永久解决方案;
要使无线网络自动运行,只需:
sudo apt-get install nm-tray network-manager
您可能需要重新启动;然后您将能够使用控制面板通知区域中出现的无线网络图标(确保通知区域已添加到面板)来选择无线网络;之后,它将自动重新连接;
但是,为了让有线网络自动重新连接,我尝试安装 avahi-daemon 和 avahi-autoipd,但显然没有帮助;甚至尝试:
sudo systemctl start NetworkManager
sudo systemctl enable NetworkManager
基本上,如果您安装了诸如 Xubuntu 桌面之类的发行版,则会安装适当的工具/守护进程/配置,并且在插入网络时会自动检测网络,而无需任何用户配置;知道哪个工具/守护进程/配置/设置可以做到这一点会很好。
答案2
18.04 版本将 resolv.conf 更改为 netplan
做
man netplan
目录位置 /etc/netplan 里面你会找到文件,例如:50-cloud-init.yaml
像这样编辑它:
network:
ethernets:
ens160:
addresses:
- 10.10.10.100/24
dhcp4: false
gateway4: 10.10.10.1
nameservers:
addresses:
- 8.8.4.4
- 8.8.8.8
search:
- domain.local
version: 2
当你保存文件时
sudo netplan apply
并检查是否可以 ping google.com。
答案3
当我使用 QEMU 映像时出现此错误debootstrap
。
该决议要求如下:
制作根文件系统
rw
,否则dhclient
会失败。更好的方法是将 添加到您的 中/etc/fstab
,即只是一个假人debootstrap
:/dev/sda / ext4 errors=remount-ro,acl 0 1
在 Ubuntu 18.04 上,您可以执行以下操作之一:
创建一个在适当时间初始化网络的 systemd 单元:
cat << EOF | sudo tee "/etc/systemd/system/dhclient.service" [Unit] Description=DHCP Client Documentation=man:dhclient(8) Wants=network.target Before=network.target [Service] Type=forking PIDFile=/var/run/dhclient.pid ExecStart=/sbin/dhclient -4 -q [Install] WantedBy=multi-user.target EOF sudo ln -sf "/etc/systemd/system/dhclient.service" \ "/etc/systemd/system/multi-user.target.wants/dhclient.service"
基于:https://gist.github.com/corvax19/6230283#gistcomment-1940694
使用
network-manager
。会下载很多图形库,但感觉不那么黑客:sudo apt-get install network-manager cat << EOF | sudo tee "/etc/netplan/01-network-manager-all.yaml" # Let NetworkManager manage all devices on this system network: version: 2 renderer: NetworkManager EOF
我首先通过查看主机上 Debian 中我所知道的第一个网络配置文件发现了这一点:
cat /etc/network/interfaces
但出色的 Ubuntu 开发人员在那里留言:
# ifupdown has been replaced by netplan(5) on this system. See # /etc/netplan for current configuration. # To re-enable ifupdown on this system, you can run: # sudo apt install ifupdown
所以我做了一个:
cat /etc/network/interfaces
在我的 Ubuntu 主机上发现了丢失的配置。
完整的 Ubuntu
debootstrap
安装程序位于:网上有没有预建的 QEMU Ubuntu 映像(32 位)?在 Debian 9 上,将正确的条目添加到您的
/etc/network/interfaces
配置文件中。我的是:auto enp0s3 iface enp0s3 inet dhcp
而
eth0
不是 是enp0s3
另一个常见值,您可以使用以下方法找到它:ip link show
完整的 Debian
debootstrap
安装程序https://unix.stackexchange.com/questions/275429/creating-bootable-debian-image-with-debootstrap/473256#473256
答案4
这背后可能有多种原因,但最常见的原因是您的 DNS 服务器无法查找与您输入的域名相对应的 IP 地址。
您可以做的是检查位于此处的配置文件:
sudo nano /etc/resolv.conf
如果那里指定了名称服务器,那么就没有问题。但如果没有,您可以手动向其中添加一个名称服务器。Google 拥有的一些常见名称服务器包括:
8.8.8.8
4.4.4.4
所以您需要做的就是像这样将它们添加到您的配置文件中:
nameserver 8.8.8.8
或者
nameserver 8.8.4.4
或者
nameserver <IP_Address_for_DNS_Server>
然后重新启动网络设置并尝试 ping 某个网站:
sudo systemctl restart systemd-resolved.service
ping google.com
如果问题仍然存在,则可能是该文件存在权限错误。您可以执行以下操作:使用以下命令更改文件的所有权:
sudo chown root:root /etc/resolv.conf
现在更改文件权限:
sudo chmod 644 /etc/resolv.conf
现在你可以使用以下方法再次检查:
ping google.com
另一种可能性是您的防火墙阻止您从某些端口进行访问。我建议您这样做:
sudo ufw allow 43/tcp sudo ufw allow 53/tcp 如果防火墙未启用:
sudo ufw enable
然后您应该重新加载以便可以应用更改。
sudo ufw reload