Hyper-V 来宾主机名无法在本地网络中解析

mın*_*maτ 6 networking linux ssh hyper-v

我的 Hyper-V 主机是 Windows 10 Enterprise x64。我只有一个来宾运行:archlinux。

来宾连接到所有 NIC:

  • 无线上网
  • 以太网(物理)

有时,我会从主机系统或本地网络上的任何其他 PC 通过 SSH 连接到来宾。我本地网络中的任何 PC 都没有静态 IP,包括访客系统。

问题是在引导主机(从而引导来宾)之后,来宾的 IP 是动态设置的并且是未知的。只有在连接到来宾并执行后ip addr,我才能使用 IP 地址进行 SSH 连接 ( root@192.168.0.*)。

我想通过主机名访问来宾系统这样我就不必每次都检索 IP。这是问题所在:

假设 archlinux 来宾被分配了 IP 192.168.0.24。arch 主机名配置为Hyper-al. 我可以通过它们的主机名(例如ping DESKTOP-XXXXX)和它们的 IP ping 我网络中的每台(Windows)PC 。使用它的 IP ping 来宾工作正常。但是,主机名Hyper-al无法解析。

因此,例如,当我尝试使用 PuTTY 连接到来宾时,我可以使用 IP 做到这一点。但是,当我尝试使用主机名时,它无法解析。主机名在 arch 中正确配置/etc/hostname/etc/hosts并在使用 IP 登录后被PuTTY 识别。

如何通过主机名访问 arch 来宾?我在 ubuntu 服务器来宾上成功地做到了这一点,所以我想它必须工作。

Tom*_*Tom 8

对于那些使用 Ubuntu 的人,这里是对我有用的说明

首先安装Samba,

sudo apt-get install samba
Run Code Online (Sandbox Code Playgroud)

其次,配置所需的主机名(这可能与实际的 Ubuntu 主机名不同)

编辑Samda的配置文件,sudo vi /etc/samba/smb.conf

在包含的行下workgroup = WORKGROUP添加一个新行netbios name = NameOfHost

最后,重新启动samba

systemctl restart smbd
Run Code Online (Sandbox Code Playgroud)


小智 4

archlinux 需要 samba 使用 Windows 客户端使用的 netbios 协议来广播主机名。

在来宾中安装并配置 samba:

pacman -Sy samba
nano /etc/samba/smb.conf
Run Code Online (Sandbox Code Playgroud)

workgroup = WORKGROUP
netbios name = Hyper-al
Run Code Online (Sandbox Code Playgroud)

WORKGROUP是默认值,如果来宾不需要加入工作组,就足够了。

启用服务:

systemctl enable smbd.service
systemctl enable nmbd.service
Run Code Online (Sandbox Code Playgroud)

重启。