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 服务器来宾上成功地做到了这一点,所以我想它必须工作。
对于那些使用 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)
重启。