我在我的笔记本电脑上运行 Linux Mint 17.3。对接时,我通过以太网连接,但是当我断开对接时,我不想中断我的 ssh 会话、正在进行的下载等,并在 Wi-Fi 适配器上使用相同的 IP 地址,这样仍然会出现与我网络上的其他机器相同。
模式 1 中的绑定,主动备份,听起来与我想要的完全一样。我在网上找到了许多关于如何设置它的资源,但网络配置似乎在发行版之间甚至在每个发行版的不同版本之间差异很大,因此此操作的步骤差异很大。
更重要的是,我发现的大多数指令都依赖于静态配置,比如硬编码网络地址甚至 WPA 密码到 /etc/network/interfaces 中。我把我的笔记本电脑带到其他网络,所以我依靠网络管理器来存储网络配置。
通过谷歌搜索“bond eth0 wlan0”,我发现了一个或多或少有效的示例/etc/networking/interfaces文件,但我显然必须禁用网络管理器以防止它对我的路由表做奇怪的事情。当绑定处于活动状态时,我似乎无法使用网络管理器小程序来更改 Wi-Fi 网络。
Network Manager 0.9.8 支持绑定接口,但仅适用于以太网和 InfiniBand 连接,不适用于 Wi-Fi。
有没有办法绑定与网络管理器兼容的以太网和 Wi-Fi 连接?
我在一个大型办公大楼里工作,在同一个 LAN 上有数百台其他计算机。我没有任何理由与这些计算机中的大多数进行通信,当我这样做时,它总是在“选择加入”的基础上(例如向我的 fstab 添加网络安装)。但是 Linux Mint 会在整个建筑物中自动添加打印机,我的文件管理器中的“网络”侧边栏充满了属于我不认识的人的计算机。最后,/var/log/syslog 充满了如下条目,这使得很难找到真正重要的问题:
org.gtk.vfs.Daemon[2500]: ** (process:6388): WARNING **: Failed to resolve service name 'XXX': Too many objects
avahi-daemon[872]: dbus-protocol.c: Too many objects for client ':1.65', client request failed.
Run Code Online (Sandbox Code Playgroud)
我想禁用这种服务的自动发现,尤其是打印机和网络共享。我还想确保我的计算机不会自动向 LAN 的其余部分广播有关其自身的任何信息。
我应该采取哪些步骤来做到这一点?禁用 avahi-daemon 就足够了吗?
我曾经能够ssh user@hostname.local在 LAN 上的计算机之间进行通信,但它不再工作了。当然,我可以使用 IP 进行 ssh,但它是 DHCP,因此它可能会不时发生变化。两台机器都运行 Debian 9.12,其中一台是 Windows 主机中的虚拟机,但它仍然可以工作;我没有乱搞配置文件,只是定期更新。
ping hostname.local
ping: hostname.local: Name or service not known
Run Code Online (Sandbox Code Playgroud)
(这可能不完全是我从法语翻译的消息)
ssh hostname.local
ssh: Could not resolve hostname hostname.local: Name or service not known
Run Code Online (Sandbox Code Playgroud)
(ssh 输出为英文)
来自 avahi.org:
Avahi 是一个通过 mDNS/DNS-SD 协议套件促进本地网络上的服务发现的系统
我研究过/etc/resolv.conf, /etc/avahi/avahi-daemon.conf,/etc/nsswitch.conf但它是标准的开箱即用配置。
/etc/resolv.conf(network-manager每次启动时重置)
# Generated by NetworkManager
search lan
nameserver xx.xx.xx.xx # DNS IPs obtained from DHCP
nameserver xx.xx.xx.xx
Run Code Online (Sandbox Code Playgroud)
man resolv.conf表示该search列表默认仅包含本地域名(类似的内容,我从法语手册页翻译而来);不应该是local代替吗lan …
运行 20.04 我试图找出我的笔记本电脑上的 LAN IP。如果我跑步,ifconfig我会得到(精简):
$ ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
...
enp0s31f6: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
...
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
...
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
...
virbr1: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.39.1 netmask 255.255.255.0 broadcast 192.168.39.255
...
wlp0s20f3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.23 netmask 255.255.255.0 broadcast 192.168.0.255
...
Run Code Online (Sandbox Code Playgroud)
以上哪一个是我的 IP - 例如,当我从 LAN 上的另一台 PC 通过 SSH 连接到这台笔记本电脑时,我会使用哪个 IP?
同样在“旧”时代我总是寻找eth0 …
例如,如果想要访问位于路由器后面的本地网络上的机器上的帐户 bob,他们只需键入:
$ ssh -p xx bob@example.com`
Run Code Online (Sandbox Code Playgroud)
但是,如何ssh处理本地网络上两台机器具有相同用户名的可能性?是否有标志可以区分机器 A 上的用户 bob 与机器 B 上的不同用户 bob,还是会ssh引发错误?