由于多种情况,我需要将 Windows 客户端配置为能够通过 445 或 139 之外的其他端口接收 Samba 通信。这个想法是尽可能避免在 Windows 10 中安装任何附加程序,或者如果需要,可以通过 C++ 代码进行配置。对于我的测试,samba 服务器在 Linux 机器上运行。
首先,我在不改变端口的情况下尝试了samba通信,效果非常好,在windows中执行(开始→运行):
\\[Ip_Server]\
要更改服务器中的端口,我在“/etc/samba/smb.conf”文件中添加了行
smb ports = 2000
(此端口号仅用于示例),并使用以下命令检查更改:
netstat -an| grep -iE ":2000"
。
之后,在客户端中我尝试了以下步骤:
sc config lanmanserver start= delayed-auto
sc config iphlpsvc start= auto
netsh interface portproxy add v4tov4 listenaddress=[Ip_client] listenport=445 connectaddress=[Ip_client] connectport=2000
(我已尝试使用 IP、客户端和服务器的这一步,并更改端口的顺序)。之后,我再次尝试 samba 连接,但无法连接到服务器。
如果有人知道问题可能是什么并有解决方案,那将会很有帮助。
要强制
iphlpsvc
在 lanmanserver
之前启动,本指南 建议使用以下命令使 iphlpsvc
成为 lanmanserver
的依赖项:
sc config lanmanserver depend= samss/srv2/iphlpsvc
这应该允许端口代理绑定到 445,然后 lanmanserver 在所有接口上绑定 445。