使用不同于 445 的端口进行 Samba 通信

问题描述 投票:0回答:1

由于多种情况,我需要将 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"
。 之后,在客户端中我尝试了以下步骤:

  • 禁用 Samba 1.0
  • 延迟 lanmanserver 驱动程序的启动:
    sc config lanmanserver start= delayed-auto
  • 检查 IpHlpSvc 驱动程序是否正在运行:
    sc config iphlpsvc start= auto
  • 添加端口代理规则以将 TCP 端口 445 重新路由到端口 2000(当然,之后需要重新启动)

netsh interface portproxy add v4tov4 listenaddress=[Ip_client] listenport=445 connectaddress=[Ip_client] connectport=2000

(我已尝试使用 IP、客户端和服务器的这一步,并更改端口的顺序)。之后,我再次尝试 samba 连接,但无法连接到服务器。

如果有人知道问题可能是什么并有解决方案,那将会很有帮助。

client port communication samba
1个回答
0
投票

要强制

iphlpsvc
lanmanserver
之前启动,本指南 建议使用以下命令使
iphlpsvc
成为
lanmanserver
的依赖项:

sc config lanmanserver depend= samss/srv2/iphlpsvc

这应该允许端口代理绑定到 445,然后 lanmanserver 在所有接口上绑定 445。

© www.soinside.com 2019 - 2024. All rights reserved.