AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1184322
Accepted
Head Geek
Head Geek
Asked: 2019-10-28 17:05:45 +0800 CST2019-10-28 17:05:45 +0800 CST 2019-10-28 17:05:45 +0800 CST

无法将“/etc/network/interfaces”路由器配置转换为“netplan”,求助?

  • 772

我有一台低功耗双核赛扬机器,运行 Ubuntu 19.04,充当我的路由器。它还使用PiHole for DNS运行lxd虚拟机。

这一切都运作良好,并且已经持续了几个月。Ubuntu 19.10 现在已经发布了,我在另一台机器上发现我一直在使用的配置,它具有在 19.10 中lxd设置所需的网桥/etc/network/interfaces,不再适用于 19.10。我已经成功地将另一台具有类似网桥配置的机器移到了 NetPlan,但我似乎无法弄清楚如何为路由器这样做。我希望这里有人可以告诉我哪里出错了。

这是原始和当前工作的/etc/network/interfaces文件:

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

# The WAN interface.
auto ethwan
iface ethwan inet dhcp
        dns-nameservers 208.67.222.222 208.67.220.220

# The (old) LAN interface.
iface eth0 inet manual

# The new LAN interface, on the new USB-to-Ethernet connection.
iface ethlan inet manual

# The *new* LAN interface.
auto br0
iface br0 inet static
        address 192.168.1.1
        netmask 255.255.255.0
        dns-nameservers 208.67.222.222 208.67.220.220
        bridge-ifaces ethlan
        bridge-ports ethlan
        up ifconfig ethlan up

/etc/netplan/01-network-manager-all.yaml在注释掉除上面两行之外的所有行之后,这是我尝试使用的内容lo:

# Let NetworkManager manage all devices on this system
network:
  version: 2
  #renderer: NetworkManager
  renderer: networkd

  ethernets:
    # eth0 isn't used, as the hardware isn't reliable
    eth0:
      match:
        macaddress: f4:4d:30:67:0a:6c
      dhcp4: yes
      dhcp6: yes
      set-name: eth0

    ethlan:
      match:
        macaddress: 00:e0:4c:6a:03:3f
      set-name: ethlan
      dhcp4: no
      dhcp6: no

    ethwan:
      match:
        macaddress: 78:32:1b:a8:cc:1c
      dhcp4: yes
      dhcp6: yes
      set-name: ethwan

  bridges:
    br0:
      interfaces: [ethlan]
      dhcp4: no
      dhcp6: no
      addresses: [192.168.1.1/24]
      #gateway4: 192.168.1.1
      #nameservers:
      #  addresses:
      #  - 192.168.1.11

名称服务器是通过提供的dnsmasq。

有了这个设置,路由器机器可以毫无问题地访问互联网——但lxd虚拟机根本无法访问大多数站点(当我在它上面运行sudo apt update时,它说它命中http://security.ubuntu.com/ubuntu,但似乎无法访问http://archive.ubuntu.com/ubuntu),网络上其他地方的机器也有类似的问题(我无法访问 Google 或 DuckDuckGo,但我妻子可以在她的 iPad 上访问 Facebook)。我怀疑它可以到达的那些是由于沿线某处的DNS缓存。

我试过取消注释这gateway4行和三个名称服务器行,一起和分开。网关线似乎根本阻止它工作(我不确定内部细节,但这似乎是有道理的);名称服务器行似乎没有任何效果。我也尝试过使用 NetworkManager 作为渲染器,这似乎也导致它根本不起作用。

任何人都可以看到我哪里出错了,或者提出一个可以解决它的改变吗?谢谢!

更新:

ip route具有工作/etc/network/interfaces设置的数据:

default via 45.74.106.33 dev ethwan
default dev eth0 scope link metric 1002 linkdown
default dev ethlan scope link metric 1003
default dev wlp2s0 scope link metric 1005 linkdown
45.74.106.32/27 dev ethwan proto kernel scope link src 45.74.106.51
169.254.0.0/16 dev eth0 proto kernel scope link src 169.254.5.39 linkdown
169.254.0.0/16 dev wlp2s0 proto kernel scope link src 169.254.8.207 linkdown
169.254.0.0/16 dev ethlan proto kernel scope link src 169.254.4.254
169.254.0.0/16 dev ethwan scope link metric 1000
192.168.1.0/24 dev br0 proto kernel scope link src 192.168.1.1

相同的数据,netplan设置:

default via 45.74.106.33 dev ethwan
default via 198.2.97.225 dev ethwan proto dhcp src 198.2.97.228 metric 100
default dev ethlan scope link metric 1003
default dev wlp2s0 scope link metric 1005 linkdown
45.74.106.32/27 dev ethwan proto kernel scope link src 45.74.106.51
169.254.0.0/16 dev wlp2s0 proto kernel scope link src 169.254.8.207 linkdown
169.254.0.0/16 dev ethlan proto kernel scope link src 169.254.4.254
192.168.1.0/24 dev br0 proto kernel scope link src 192.168.1.1
198.2.97.224/27 dev ethwan proto kernel scope link src 198.2.97.228
198.2.97.225 dev ethwan proto dhcp scope link src 198.2.97.228 metric 100

我认为新198.2.97.225地址是我的 ISP 在我尝试期间分配的附加地址。除此之外,还有线条的重新排列,在我看来几乎是一样的,但我对该命令的输出知之甚少。

然而,在尝试它时,我有了一个非常奇怪的发现。当我使用netplan上面的配置时,本地网络上的机器可以访问除TLS/SSL 站点之外的任何站点。curl -v http://google.com返回 301 重定向数据,curl -v https://google.com到达显示的行,* TLSv1.3 (OUT), TLS handshake, Client hello (1):然后它就停止了。我相信这解释了为什么有些网站可以工作,而其他网站则不能。

我认为这可能是一个iptables问题,除了它在/etc/network/interfaces设置下工作正常。

现在更迷茫了。:-?

networking router netplan
  • 2 2 个回答
  • 1235 Views

2 个回答

  • Voted
  1. slangasek
    2019-10-29T17:16:10+08:002019-10-29T17:16:10+08:00

    作为调试的第一步,尝试捕获ip route使用 ifupdown 配置系统时的输出;然后禁用 ifupdown 并启用 netplan,重新启动并再次捕获输出,并比较结果。

    两种配置之间可见的一个区别是您对eth0接口的处理,在 ifupdown 下您已将其设置为“手动”配置,而在 netplan 下您将使用 dhcp 进行配置。这肯定会导致干扰您的连接的差异。

    • 1
  2. Best Answer
    Head Geek
    2019-11-02T11:20:37+08:002019-11-02T11:20:37+08:00

    路由器强迫我的手:昨天有东西损坏了(我不知道是怎么回事,我昨天根本没有对它做任何事情),几分钟后它就被锁定了。我没有重新安装 Ubuntu 19.04,而是决定咬紧牙关,安装新的 Ubuntu 19.10,然后找到问题的答案。我不后悔,但尾巴真是太痛苦了!

    经过六个小时的研究和调试,结果发现有几个问题。

    第一个是最简单的:我需要nameservers在配置中添加一个部分br0。我不确定这对最终解决方案是否必要,因为它用于dnsmasq处理该问题,但它似乎解决了一些问题。

    第二个是/etc/network/iptables不再自动读取。这之前是由/etc/network/if-pre-up.d/iptables我认为我在最初设置防火墙时创建的一个文件完成的。通过在根的crontab:中添加一行来解决该问题@reboot /etc/network/if-pre-up.d/iptables。

    最后一个问题是最棘手的,我不太确定它实际上是如何解决的(更新:见下文)。修复前两个后,我可以访问 Internet 上除HTTPS 站点之外的所有站点,如上所述。但这并不是所有的HTTPS 网站,因为 Facebook 仍然有效,而且我也能够访问https://google.com几次!所以这实际上不是 HTTPS 系统的问题。花了很多时间仔细研究我的iptables设置,最终确定它没有任何问题。

    我偶然发现了一条评论,说这是 MTU 设置不正确的症状,花了一两个小时玩与它相关的各种事情(所有这些都进一步破坏了事情),然后才确定这不是问题所在。

    最后偶然发现另一条评论说启用 IPv6 会导致看起来像这样的问题。dhcp6将行更改为no,并添加一link-local: [ ]两行。我不确定到底是什么伎俩,但突然之间一切又恢复了。

    两天后更新:

    今天早上我出于不相关的原因重新启动了路由器机器。突然之间,HTTPS 问题又回来了!再次登录路由器并运行ifconfig以查看 IPv6 链接本地地址是否再次出现......br0有一个,但ethwan没有,所以我认为这不是问题。

    然后我想看看提供的 MTU 值ifconfig。我知道 MTU 在ethwan工作时是 1500,因为我在一切开始正常工作时检查了它。但现在设置为 576!显然,我遇到的 HTTPS 问题都是由于 MTU 设置造成的,而且有时设置错误。在我切换到 NetPlan 之前从来没有遇到过问题,不知道为什么我现在。

    因为我知道正确的 MTU 值,所以我将它放在 NetPlan 配置文件中并运行sudo netplan apply. 瞧,一切突然又开始工作了。

    很高兴终于明白那里发生了什么。我对 IPv6 的解释不满意,它似乎有些不对劲,因为如果这是答案,如果这有意义的话,事情就会开始重启。

    我已更新以下配置以包含 MTU 更改。

    无论如何,这是在我的路由器上工作的最终 NetPlan 文件/etc/netplan/01-network-manager-all.yaml:

    # Let NetworkManager manage all devices on this system
    network:
      version: 2
      renderer: NetworkManager
      #renderer: networkd
    
      ethernets:
        eth0:
          match:
            macaddress: f4:4d:30:67:0a:6c
          dhcp4: yes
          dhcp6: yes
          set-name: eth0
    
        ethlan:
          match:
            macaddress: 00:e0:4c:6a:03:3f
          set-name: ethlan
    
        ethwan:
          match:
            macaddress: 78:32:1b:a8:cc:1c
          dhcp4: yes
          dhcp6: no
          link-local: [ ]
          set-name: ethwan
          mtu: 1500
    
      bridges:
        br0:
          interfaces: [ethlan]
          addresses: [192.168.1.1/24]
          nameservers:
            addresses: [208.67.222.222, 208.67.220.220]
          link-local: [ ]
    

    我发布这个是希望它能帮助遇到这种问题的其他人。也许我自己也一样,如果下次我需要重建这个路由器系统时遇到问题。;-)

    • 1

相关问题

  • 如何设置 VLAN 转发?

  • 如何将主机 Ubuntu 上的 VPN (tun0) 网络适配器映射到 VirtualBox 来宾 Windows?

  • 如何限制下载/上传带宽?

  • 如何通过 Windows 网络共享文件?

  • 面板小程序以文本形式显示当前网络流量?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve