我的 Hyper-V 主机是 Windows 10 Enterprise x64。我只运行一个客户机:archlinux。
客户机已连接到所有 NIC:
- 无线上网
- 以太网(物理)
有时,我会从主机系统或本地网络上的任何其他 PC 通过 SSH 进入客户机。本地网络上的任何 PC(包括客户机系统)都没有静态 IP。
问题是,在启动主机(从而启动客户机)后,客户机的 IP 是动态设置的,并且未知。只有在连接到客户机并执行 后ip addr
,我才能使用该 IP 地址进行 SSH 连接([email protected].*
)。
我想要访问访客系统通过主机名这样我就不必每次都检索 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
PuTTY 等识别后使用IP登录。
我如何通过主机名访问 arch guest?我已经成功使用 ubuntu server guest 执行此操作,所以我想它必须可行。
答案1
对于使用 Ubuntu 的用户,以下是对我有用的说明
首先安装 Samba,
sudo apt-get install samba
其次,配置所需的主机名(这能与实际的 Ubuntu 主机名不同)
编辑 Samda 的配置文件,sudo vi /etc/samba/smb.conf
在包含以下内容的行下workgroup = WORKGROUP
添加新行netbios name = NameOfHost
最后重启samba
systemctl restart smbd
答案2
archlinux 需要 samba 使用 Windows 客户端使用的 netbios 协议来广播主机名。
在客户机中安装并配置 samba:
pacman -Sy samba
nano /etc/samba/smb.conf
放
workgroup = WORKGROUP
netbios name = Hyper-al
WORKGROUP
如果访客不需要加入 WG,则是默认的并且足够了。
启用服务:
systemctl enable smbd.service
systemctl enable nmbd.service
重启。