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 / 问题 / 1336948
Accepted
nealmcb
nealmcb
Asked: 2021-05-09 05:28:39 +0800 CST2021-05-09 05:28:39 +0800 CST 2021-05-09 05:28:39 +0800 CST

我的 mdns 地址 myhost.local 错误地绑定到 Docker 虚拟网络,而不是我的 wifi 网络

  • 772

TL;DR:我怎样才能myhost.local解析到我的 wifi 接口而不是 Docker 虚拟网络?

我的桌面系统的主机名是“myhost”(来自/etc/hostnameetc),运行 Ubuntu 18.04。该ip a命令告诉我,我的 wifi ip 地址是192.168.0.6,而我很少使用的 docker-network ip 地址是172.17.0.1。

我喜欢使用 mdns/Avahi 通过“myhost.local”访问我的桌面,例如,当从我家 LAN 上的其他主机连接到本地 jupyter 笔记本时。

出于某种原因,mdns 将两个地址分配给myhost.local:

$ host myhost.local
myhost.local has address 192.168.0.6
myhost.local has address 172.17.0.1
myhost.local has IPv6 address fe80::46da:e48:c3c0:112

Jupyter 笔记本正在运行ip=192.168.0.6

当 Iping myhost.local或 connect to http://myhost.local:8888/it 几个月前工作时,但现在它尝试 172.17.0.1 地址,这对 jupyter 不起作用。

这似乎与 Docker 社区论坛上未回答的问题有关:Docker 网络接口干扰 mDNS 地址。

更新:回答一个问题,这是主机文件。我认为它来自 Ubuntu 设置 hosts 文件的默认方式,因此localhost实际上与myhost.

$ cat /etc/hosts
127.0.0.1       localhost
127.0.1.1       myhost

奖金更新

user10489正确地指出其他主机将myhost.local通过 mdns 解析就好了。我的根本问题是我想知道要在jupyter notebook我的无线局域网上配置什么 IP 地址。只是我们没有看到在本地机器上使用 mdns 来获得答案的简单方法。

解决这个潜在问题的方法是,找出我在给定接口上的 IP 地址(这里用 Ubuntu 的笨拙命名的第一个无线网络名称说明):

dev=wlp3s0
ip=$(ip -br -o a show $dev | (read interface status ip ip6; echo ${ip%/*}))
jupyter notebook --no-browser --ip=$ip
networking
  • 2 2 个回答
  • 374 Views

2 个回答

  • Voted
  1. justus95
    2021-05-25T16:56:22+08:002021-05-25T16:56:22+08:00

    阅读 avahi daemon conf 文件 (/etc/avahi/avahi-daemon.conf) 的手册页,您似乎可以指定明确要拒绝的接口:

    deny-interfaces= 设置一个逗号分隔的网络接口列表,这些网络接口应该被 avahi-daemon 忽略。除非设置了允许接口,否则将使用其他未指定的接口。此选项优先于拒绝接口。

    因此,也许可以尝试将“deny-interfaces=docker0”行添加到该文件(始终备份原始文件!),然后使用“avahi-daemon --reload”重新加载。将“docker0”更改为您调用的 docker 接口,尽管我认为这是默认设置。

    https://linux.die.net/man/5/avahi-daemon.conf

    http://manpages.ubuntu.com/manpages/bionic/man8/avahi-daemon.8.html

    • 1
  2. Best Answer
    user10489
    2021-05-30T09:12:43+08:002021-05-30T09:12:43+08:00

    默认情况下,这里有多种名称解析机制处于活动状态:

    • /etc/hosts
    • mdns
    • dns

    这是默认顺序,mdns 通常会尝试解析 *.local

    但也要考虑两台机器的情况——本地机器和远程机器。

    因此,如果您希望 myhost.local 解析到特定接口而不禁用其他接口上的 mdns,您应该能够在 /etc/hosts 中进行覆盖。但是,这只影响本地机器。

    远程机器将使用它们听到的任何 mdns 广播解析 myhost.local。因此,如果它们在您的 docker 网络和您的 lan(就像您的本地计算机一样)上,他们将从 mdns 获取所有这些地址。如果他们只在其中一个网络上,他们应该只看到与该网络对应的地址。

    因此,也许解决方案不是更改配置,而是更改您用来提问的主机。

    • 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