为什么 Ubuntu 20.04 服务器找不到互联网 URL?

为什么 Ubuntu 20.04 服务器找不到互联网 URL?

系统

我在一台旧台式机上安装了 Ubuntu 20.04 LTS 服务器:我们称之为“服务端“。这将提供一个地方来存储 2 台网络连接的 Windows 计算机的例行备份,我将其称为桌面版笔记本电脑;还可充当音乐媒体服务器。有一个网络连接的 Logitech Squeezebox(最低有效位),其中服务端托管音乐库和罗技媒体服务器 (LMS) 应用程序。

主要问题

我安装了 Ubuntu 20.04 三次,才按照我想要的方式进行设置。我能够进行多次更新并设置多个应用程序。但在某些时候,服务端停止与互联网通信!这肯定是我做的错事,但我还没能弄清楚是什么原因。从那时起,我就无法对已安装的软件进行任何更新,LMS 也无法访问mysqueezebox.com最低有效位可以从音乐库中播放音乐文件,但无法播放广播mysqueezebox.com,大概是因为服务端无法到达。最低有效位可以重置为直接从流式传输广播,mysqueezebox.com但 LMS 仍在运行服务端找不到最低有效位在局域网上!

我的 LAN 上连接了多个设备,它们都能够成功与外界通信。这些设备包括:桌面版笔记本电脑最低有效位。此外,我还有一台索尼旧笔记本电脑,最近我在上面安装了 Ubuntu 21.10(我将其称为笔记本电脑)。笔记本电脑使用wi-fi与路由器通信。桌面版笔记本电脑最低有效位都使用以太网,以及服务端服务端最低有效位都设置了静态 IP。我的互联网网关是一个独立路由器(我们称之为路由器) 为 10.0.0.x 子网上的所有设备提供服务,并使用 DHCP 192.168.1.x 连接到单独的调制解调器。

诊断

恐怕我对网络协议的理解有限。我已启用联邦快递并创建规则以允许通过防火墙访问不同协议的各种端口。这里可能有些东西我没注意到。我尝试禁用联邦快递看看这是否能解决问题,但并没有带来任何明显的变化。在 LAN 中,服务端能够与其他设备通信,但并非所有设备在 Windows 端都可见,并且并非所有设备都可以看到服务端其中一些可能是我尚未解决的 Windows WORKGROUP 问题。

以下是一些可能有用的输出,服务端

$ ifconfig   [PARTIAL – note I am actually using two NICS: enp9s0 uses static IP and enp10s0 using DHCP]  

enp10s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500  
        inet 10.0.0.25  netmask 255.255.255.0  broadcast 10.0.0.255  
        ether 00:24:8c:53:3d:d9  txqueuelen 1000  (Ethernet)  
        RX packets 32254448  bytes 43036469663 (43.0 GB)  
        RX errors 0  dropped 0  overruns 0  frame 0  
        TX packets 461772  bytes 97565110 (97.5 MB)  
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0  
  
enp9s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500  
        inet 10.0.0.200  netmask 255.255.255.0  broadcast 10.0.0.255  
        ether 00:24:8c:53:3b:e8  txqueuelen 1000  (Ethernet)  
        RX packets 596538610  bytes 889898342859 (889.8 GB)  
        RX errors 0  dropped 0  overruns 0  frame 0  
        TX packets 308356174  bytes 19271733540 (19.2 GB)  
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0  

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536  
        inet 127.0.0.1  netmask 255.0.0.0  
        loop  txqueuelen 1000  (Local Loopback)  
        RX packets 66067  bytes 8023177 (8.0 MB)  
        RX errors 0  dropped 0  overruns 0  frame 0  
        TX packets 66067  bytes 8023177 (8.0 MB)  
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0  

$ route -n  
Kernel IP routing table  
Destination   Gateway       Genmask         Flags Metric Ref    Use Iface  
0.0.0.0       10.0.0.1      0.0.0.0         UG    0      0        0 enp9s0  
0.0.0.0       10.0.0.1      0.0.0.0         UG    100    0        0 enp10s0  
10.0.0.0      0.0.0.0       255.255.255.0   U     0      0        0 enp9s0  
10.0.0.0      0.0.0.0       255.255.255.0   U     0      0        0 enp10s0  
10.0.0.1      0.0.0.0       255.255.255.255 UH    100    0        0 enp10s0  
172.17.0.0    0.0.0.0       255.255.0.0     U     0      0        0 docker0  

我可以用远程控制登录服务端桌面版或来自笔记本电脑使用 david@UServer 或来自笔记本电脑使用[电子邮件保护]

服务端, 我可以 最低有效位笔记本电脑笔记本电脑但我无法到达桌面版(通过主机名或甚至使用其 IP 地址!)。从服务端, 我还可以 路由器, 但是我不能任何外部 URL,例如google.com8.8.8.8mysqueezebox.com。例如,使用

$ ping www.google.com

我收到“目标主机无法访问”

有趣的是,服务端似乎知道这些外部 URL 的 IP 地址。这些地址是否可以存储在本地 DNS 上(从我可以访问 Internet 时开始)?

我可以用服务端远程控制进入其他设备,尤其是最低有效位.然后从最低有效位我可以 mysqueezebox.comgoogle.com成功了——我认为这说明我的网络连接没有问题!来自最低有效位我还可以回到服务端以及其他网络连接设备,但只能使用它们的 IP 地址。我猜最低有效位正在运行精简版 Linux 并且没有通过名称识别主机所需的工具?

亚太地区2

早些时候,我决定尝试安装 Apache,想着有一天我可能会想要从服务端通过 www。我能够成功完成此操作,但在我失去互联网连接的同时,Apache 2 停止提供默认登录页面。也就是说,任何访问尝试都会http://UServer 在我的浏览器中返回“无法访问此站点”。但是,运行

$ sudo systemctl status apache2 

表示 Apache 2 已加载并且可以运行。

概括

显然,网络配置有些不对劲服务端,这导致它无法访问外部 URL。我弄乱了几个文件,虽然我试图记录我何时做出更改以及为什么这样做(例如,因为我在某个网页上发现了一些看起来很有希望的东西),但我记不清我尝试过的所有事情。值得注意的是,我编辑了/etc/network/interfaces/etc/netplan/01-netcfg.yaml。例如,

$ cat /etc/network/interfaces  
; DP 20220223: Created and edited this file following recommendations at:  
; https://askubuntu.com/questions/592840/ubuntu-server-cannot-access-internet-however-can-use-ssh  

; This file describes the network interfaces available on your system  
; and how to activate them. For more information, see interfaces(5).  

; The loopback network interface  
auto lo  
iface lo inet loopback  
  
; The primary network interface  
; auto eth0  
auto enp9s0  
  
iface enp9s0 inet static  
    address 10.0.0.200  
    netmask 255.255.255.0  
    gateway 10.0.0.1  
    dns-nameservers 10.0.0.1 8.8.8.8 4.4.4.4 dns1-2.registrar-servers.com  

我还没搞清楚 和 是否/etc/network/interfaces/etc/netplan/01-netcfg.yaml任何影响!哪个网络配置优先?

我也编辑过/etc/sysctl.conf几次/etc/samba/smb.conf。(后者是为了尝试让服务端并且其共享对 LAN 上的其他机器可见,但这不会影响服务端可以访问互联网吗?

======================

$ sudo iptables -xvnL  
Chain INPUT (policy ACCEPT 329 packets, 53404 bytes)  
    pkts      bytes target     prot opt in     out     source               destination  

Chain FORWARD (policy DROP 0 packets, 0 bytes)  
    pkts      bytes target     prot opt in     out     source               destination  
       0        0 DOCKER-USER  all  --  *      *       0.0.0.0/0            0.0.0.0/0  
       0        0 DOCKER-ISOLATION-STAGE-1  all  --  *      *       0.0.0.0/0            0.0.0.0/0  
       0        0 ACCEPT     all  --  *      docker0  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED  
       0        0 DOCKER     all  --  *      docker0  0.0.0.0/0            0.0.0.0/0  
       0        0 ACCEPT     all  --  docker0 !docker0  0.0.0.0/0            0.0.0.0/0  
       0        0 ACCEPT     all  --  docker0 docker0  0.0.0.0/0            0.0.0.0/0  

Chain OUTPUT (policy ACCEPT 257 packets, 26208 bytes)
    pkts      bytes target     prot opt in     out     source               destination  

Chain DOCKER (1 references)  
    pkts      bytes target     prot opt in     out     source               destination  

Chain DOCKER-ISOLATION-STAGE-1 (1 references)  
    pkts      bytes target     prot opt in     out     source               destination  
       0        0 DOCKER-ISOLATION-STAGE-2  all  --  docker0 !docker0  0.0.0.0/0            0.0.0.0/0  
       0        0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0  

Chain DOCKER-ISOLATION-STAGE-2 (1 references)  
    pkts      bytes target     prot opt in     out     source               destination  
       0        0 DROP       all  --  *      docker0  0.0.0.0/0            0.0.0.0/0  
       0        0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0  

Chain DOCKER-USER (1 references)  
    pkts      bytes target     prot opt in     out     source               destination  
       0        0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0  

============================

$ cat /etc/netplan/01-netcfg.yaml  
; This is the network config written by 'subiquity'  
; Modified DP 2022-01-22  
; Modified DP 2022-03-02  
; Modified DP 2022-03-15 Following  
;  askubuntu.com/questions/1233934/no-internet-connection-after-ubuntu-server-20-04-install-ifconfig-not-available  


network:  
  version: 2  
;  renderer: NetworkManager  
  renderer: networkd  
  ethernets:  
    enp10s0:  
      dhcp4: true  
    enp9s0:  
      dhcp4: false  
      addresses: [10.0.0.200/24]  
;      gateway4: 192.168.1.254  
      gateway4: 10.0.0.1  
      nameservers:  
;          addresses: [192.168.1.254, 8.8.8.8, 8.8.4.4]  
;          addresses: [10.0.0.1, 8.8.8.8, 8.8.4.4]  
          addresses: [8.8.8.8, 8.8.4.4, 10.0.0.1]  

=======================================================

$ ip route  
default via 10.0.0.1 dev enp9s0 proto static  
default via 10.0.0.1 dev enp10s0 proto dhcp src 10.0.0.25 metric 100  
10.0.0.0/24 dev enp9s0 proto kernel scope link src 10.0.0.200  
10.0.0.0/24 dev enp10s0 proto kernel scope link src 10.0.0.25  
10.0.0.1 dev enp10s0 proto dhcp scope link src 10.0.0.25 metric 100  
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 

========================================================

答案1

因此,这个问题的答案似乎是:

(1)禁用,/etc/network/interfaces因为它现已被认为过时。

(2)/etc/netplan代替使用。

(3) 更改中的一行(甚至一个单词)/etc/netplan/01-netcfg.yaml

而不是使用:

renderer: networkd

使用:

renderer: NetworkManager

进行此更改后,运行以下命令:

$ sudo netplan generate
$ sudo netplan apply

如果此操作解决了问题,则将可以访问“路由器之外”的 URL。例如:

$ ping google.com  
PING google.com (142.250.69.206) 56(84) bytes of data.  
64 bytes from sea30s08-in-f14.1e100.net (142.250.69.206): icmp_seq=1 ttl=117 time=14.9 ms  
64 bytes from sea30s08-in-f14.1e100.net (142.250.69.206): icmp_seq=2 ttl=117 time=14.2 ms  
^C  
--- google.com ping statistics ---  
6 packets transmitted, 6 received, 0% packet loss, time 5009ms  
rtt min/avg/max/mdev = 14.223/14.698/14.870/0.215 ms 

相关内容