![如何从运行在不同端口上的 Windows 访问 samba 共享](https://linux22.com/image/91679/%E5%A6%82%E4%BD%95%E4%BB%8E%E8%BF%90%E8%A1%8C%E5%9C%A8%E4%B8%8D%E5%90%8C%E7%AB%AF%E5%8F%A3%E4%B8%8A%E7%9A%84%20Windows%20%E8%AE%BF%E9%97%AE%20samba%20%E5%85%B1%E4%BA%AB.png)
我已经在标准端口(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
我尝试了不同的方法,终于得到了解决方案。方法如下:
- 您需要先关闭本地Samba服务器。
sc config lanmanserver start=disabled
sc stop lanmanserver
- 重启
使用
netsh interface
命令为此 IP 创建一个新的端口代理。如果你的服务器ip是ipv6,你应该使用v4tov6
,否则v4tov4
。这是我的示例,假设您的服务端口是 1139:netsh interface portproxy add v4tov6 listenport=445 connectaddress=[blah:blah:blah:blah] connectport=1139
您现在可以通过以下方式连接到您的 samba 服务器
\\127.0.0.1
祝您享受该解决方案!
答案4
如果您拥有外部网络的管理员访问权限,@Arjo 的答案很有用;如果您尚未在 Windows 上托管 samba 共享,则 @linzuojian 的答案很有用;但你可以使用环回设备将两者结合起来,鱼与熊掌兼得(有趣的是@Rahul 说这是不可能做到的,但随后链接到一个非常古老的教程,介绍如何在 XP 上实现这一点..)
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任何你喜欢的主机名。