系统
我在一台旧台式机上安装了 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.com
或8.8.8.8
或mysqueezebox.com
。例如,使用
$ ping www.google.com
我收到“目标主机无法访问”
有趣的是,服务端似乎知道这些外部 URL 的 IP 地址。这些地址是否可以存储在本地 DNS 上(从我可以访问 Internet 时开始)?
我可以用服务端到远程控制进入其他设备,尤其是最低有效位.然后从最低有效位我可以平 mysqueezebox.com
并google.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