如何从运行在不同端口上的 Windows 访问 samba 共享

如何从运行在不同端口上的 Windows 访问 samba 共享

我已经在标准端口(445 和 139)上运行 samba 服务器。该 samba 服务器集成在 Alfresco 应用程序中。我需要设置新的 samba 服务器,但现在端口有问题。好的,所以在我的smb.conf我把这个选项

smb ports = 450 140

重新启动桑巴舞

/etc/init.d/samba restart

我有

root@ubuntu:/etc/samba# netstat -na |grep 450
tcp        0      0 0.0.0.0:450             0.0.0.0:*               LISTEN

但如何从 Windows 机器上与标准 samba 端口不同的端口连接到 samba 共享文件夹?

答案1

不能做完了。 Windows 不支持 445/139 以外的 TCP 端口。 这是一个参考。

答案2

使用网络地址转换

这可以通过在路由器/网关上应用一些规则来完成

[视窗] - 139-->[目的地NAT 139至xxx:第1139章路由器]-->第1139章-->[samba 服务器监听:第1139章]

答案3

我尝试了不同的方法,终于得到了解决方案。方法如下:

  1. 您需要先关闭本地Samba服务器。
  • sc config lanmanserver start=disabled
  • sc stop lanmanserver
  • 重启
  1. 使用netsh interface命令为此 IP 创建一个新的端口代理。如果你的服务器ip是ipv6,你应该使用v4tov6,否则v4tov4。这是我的示例,假设您的服务端口是 1139:

    netsh interface portproxy add v4tov6 listenport=445 connectaddress=[blah:blah:blah:blah] connectport=1139
    
  2. 您现在可以通过以下方式连接到您的 samba 服务器\\127.0.0.1

祝您享受该解决方案!

答案4

如果您拥有外部网络的管理员访问权限,@Arjo 的答案很有用;如果您尚未在 Windows 上托管 samba 共享,则 @linzuojian 的答案很有用;但你可以使用环回设备将两者结合起来,鱼与熊掌兼得(有趣的是@Rahul 说这是不可能做到的,但随后链接到一个非常古老的教程,介绍如何在 XP 上实现这一点..)

在 Windows 10 管理 PowerShell 上

iwr `
    'https://gist.githubusercontent.com/Hashbrown777/081e57ff9673a1f457e1c3a71b55cfaf/raw/28dcd74be1281812e2ef17b1bd36c6b5db216ca3/attachsmb.ps1' `
    -OutFile attachsmb.ps1
Install-Module -Name LoopbackAdapter -MinimumVersion 1.2.0.0
. './attachsmb.ps1'
Create-Host -Name ubuntusmb -Ip 10.254.0.1 -Dest <#ubuntu's IP#> -Port 450
<#REBOOT#>
explorer \\ubuntusmb

这允许您在本地维护本机 SMB 共享连接到另一个非标准端口(本地或外部)仅配置您的本地计算机。

基本上你用新的假网络接口给你的机器另一个IP,在这个新IP上你可以在端口445上托管转发到非标准服务器,最后你可以用你的主机文件分配这个IP任何你喜欢的主机名。

相关内容