我在一台 PC 上运行 Windows 10,该 PC 可以在网络上看到 Centos 7 服务器。该服务器托管着多个在不同子网(即 192.168.122.xxx)上运行 Centos 7 的虚拟机。Centos 主机和 Windows PC 在 192.168.0.xxx 上运行。
虚拟化是通过虚拟机管理器 (libvert) 完成的,虚拟机可以看到 Centos 主机和 Internet。
我的问题是如何让 Centos Host 成功转发 SMB 端口,以便 PC 可以通过它连接到 VM 的 Samba 共享。我基本上想将 Windows 10 中的驱动器号映射到 VM 中的文件夹。
Samba 已在 VM 上安装并配置完毕,看起来一切正常。我认为 Windows 无法绕过 Centos Host,并给出错误,表明它无法连接到“文件和打印共享资源”端口上的目标。
我试过了:
- 在 Centos 主机和 VM 上禁用 SELinux。
- 在 Centos 主机上配置 firewalld 以接受端口 137、138、139、445。
- 为 Centos 主机上的 Firewalld 配置添加这些端口的端口转发。
答案1
Windows 客户端只能访问标准 Samba 端口(139 和 445),因此您无法映射到多个虚拟机中的文件夹,因为您无法使用自定义端口。因此,我建议您使用 NFS 将每个虚拟机中的一个或多个文件夹共享到主机,然后将包含这些 NFS 映射的文件夹共享到外部 Windows 客户端。
您可能还会发现我几年前编写的一个脚本很有用,因为它可以确保在系统相互依赖的环境中(例如虚拟化环境)建立和维护 NFS 映射。您可以在 Github 上找到它github.com/vwal/nfs_automount。