我想实现一个小工具,让我可以在 Windows 上完成我在任何其他操作系统上已经可以轻松完成的工作 - 通过 IP 地址和端口指定远程 SMB 服务器。本机,Windows将不会做SMB在比445或139(其选择)以外的任何端口,和我讨厌打捶痣与解决方法的各种坏事微软不断加入到Windows中的fsck了隧道SMB通过 SSH 端口转发。
我想到的是一个小命令行应用程序,它可以让我做类似的事情
netsubst 服务器名 -i IP -p 端口
这会与司机携手合作吗?dll?它作为 SMB 重定向器连接到 Windows,但扫描由 netsubst 设置的服务器名称表,而不是在网络上查找它们以找出要连接的内容。所以我可以做
net use X: //servername/sharename /user:username *
以通常的方式,除了 Windows 在它可以找到的任何机器的端口 445 或 139 上寻找 //servername 之外,它将直接转到地址 IP、端口 PORT;如果 IP 碰巧是 127.0.0.1 并且 PORT 碰巧是通过 ssh 转发到其他地方的东西,它就可以正常工作,我将不再需要处理 Windows 围绕访问本地主机端口 139 和445.
我想我需要的是类似于 VirtualBox 用来进行主机文件共享的 //vboxsvr 来宾添加的东西,但可能更简单,因为它不需要完整的后端 - 在我的理想世界中,这是我唯一的Windows 功能d 需要更换的是与远程 SMB 服务器建立初始连接的部分。但在我开始深入研究 VirtualBox 源代码之前,有人可以提出一种更简单的方法来完成这项工作,或者向我指出有关实施 SMB 重定向器的 Microsoft 文档吗?
我正在制作一些使用NetUseAdd和NetUseDel函数来连接/断开共享的工具。在Windows 7中,我注意到在调用NetUseDel和真正的断开连接之间经过了将近12秒。我进行了一些调查,发现net use \ server / del也仅在12秒后断开连接。这是小脚本和Wireshark输出,与脚本的运行相对应:
net use \\server "" /user:""
net use \\server /delete
Run Code Online (Sandbox Code Playgroud)
http://i.stack.imgur.com/5CyCw.png
设置最后一棵树connect smb命令作为参考,我们可以看到,树断开延迟了12秒。
有人知道如何减少这种超时吗?
考虑到我有一台机器的管理员权限,我可以远程访问Windows XP和Windows 7中的默认C $共享吗?
我正在尝试在终端上安装 SMB 共享。如果使用以下命令服务器的名称中没有空格,我可以做到这一点:
$ mount -t smbfs //user:password@server/resource /Volumes/resource
Run Code Online (Sandbox Code Playgroud)
但是,在我的情况下,服务器名称有一个空格,我无法弄清楚如何正确传递这样的名称。
我尝试使用双引号或单引号:
$ mount -t smbfs "//user:password@ser ver/resource" /Volumes/resource
mount_smbfs: URL parsing failed, please correct the URL and try again: Invalid argument
Run Code Online (Sandbox Code Playgroud)
我尝试逃离空间:
$ mount -t smbfs //user:password@ser\ ver/resource /Volumes/resource
mount_smbfs: URL parsing failed, please correct the URL and try again: Invalid argument
Run Code Online (Sandbox Code Playgroud)
我也尝试使用%20, \x20and \040,但出现错误:
mount_smbfs: server connection failed: No route to host
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用 IP 地址或重命名服务器,但这将是一种解决方法而不是解决方案,我想知道我错过了什么。
我有一个运行 Ceph 的测试节点,其中大约 10TB 的数据存储在 CephFS 文件系统中。我想让 CephFS 文件中的某些子路径可用于 Docker 容器,在那里它可以通过 NFS 和 SMB 共享。
osds、mons 和 mds' 在同一节点上运行,这会禁止在 fstab 中安装 CephFS。
我还能如何将 CephFS 文件系统的子路径挂载到容器中?
我需要将一些特定数据表示为文件共享中的文件。数据存储在数据库中,在访问过程中需要进行一些处理。为此,CIFS 服务器是理想的解决方案。有人知道 C#/.NET 中的 CIFS/SMB 服务器实现吗?
Sharepoint 也在做类似的事情。有人知道他们是怎么做到的吗?它是 CIFS 服务器还是 Windows CIFS 服务器的某种扩展?
我想使用 React Native 连接到外部数据库,例如 PostgreSQL、MySQL 或其他数据库。这可能吗?
但首先让我告诉您一些有关我的计划的信息:我将为多个安装(多个设备 - 一台设备上的一个安装)开发我的应用程序。所有设备都与 Windows 安装(服务器)提供的本地网络连接。服务器上运行一个数据库(PostgreSQL),我想用我的所有设备连接到这个数据库。服务器(或者实际上是它的数据库)应该存储任务,并且每个设备应该在本地访问这些任务(读取和写入)。

我还有一些其他的想法,例如简单的 SMB-XML 文件存储(但存在冲突问题)和 SMB 共享文件上的 SQLite 数据库 - 但 SQLite 的网站告诉我们,这不会避免多次访问的问题。因此我需要另一个本地解决方案。这让我提供了一个可以从本地网络访问的数据库。
如果有人能说明如何解决这个问题,我将不胜感激。
谢谢你!
我想在家里打开一个共享文件夹供我在工作中访问,因为大多数 ftp 都被防火墙阻止了我虽然我会找到一种创造性的方法来访问我的文件。在我的远程主机(在家)上,我托管了一个 Tor 隐藏服务,它将所有流量转发到端口 445 (SMB)。
在我的工作站上,我想使用以下命令连接到这个 SMB 文件:
torsocks smbclient -L \\address.onion -p<port#> -N
但这似乎返回以下警告:
警告 torsocks[30239]: [connect] 连接到本地地址被拒绝,因为它可能是对本地 DNS 服务器的 TCP DNS 查询。出于安全原因拒绝它。(在 connect.c:186 的 tsocks_connect() 中)
连接到 address.onion 失败(错误 NT_STATUS_ACCESS_DENIED)
但我似乎无法弄清楚导致此错误的原因,也不知道如何解决此问题。
请帮忙谢谢;)
我们有一个应用程序,可以通过 Azure 文件列出文件夹中的文件。当我们使用C#方法时:
Directory.GetFiles(@"\\account.file.core.windows.net\xyz")
Run Code Online (Sandbox Code Playgroud)
当有 2000 个文件时,大约需要一分钟。
如果我们使用 CloudStorageAccount 执行相同操作:
CloudFileClient fileClient = storageAccount.CreateCloudFileClient();
CloudFileDirectory directory = fileClient.GetShareReference("account").GetRootDirectoryReference().GetDirectoryReference("abc");
Int64 totalLength = 0;
foreach (IListFileItem fileAndDirectory in directory.ListFilesAndDirectories())
{
CloudFile file = (CloudFile)fileAndDirectory;
if (file == null) //must be directory if null
continue;
totalLength += file.Properties.Length;
}
Run Code Online (Sandbox Code Playgroud)
它会返回所有文件,但大约需要 10 秒。为什么性能会有如此大的差异?
我尝试从其他 Windows 机器连接到 Windows 共享。经过长时间的搜索,我找到了sharpcifsstd.dobes.jp,但我无法让示例发挥作用。
我收到一个 SharpCifs.Smb.SmbException: 'Failed to connect, IOException: transport closed in negotiate
我尝试了几个例子。
//Get the SmbFile specifying the file name to be created.
var auth1 = new NtlmPasswordAuthentication("username","password");
var file = new SmbFile("smb://10.50.15.91/d/NewFileName.txt",auth1);
//Create file.
file.CreateNewFile();
//Get writable stream.
var writeStream = file.GetOutputStream();
//Write bytes.
writeStream.Write(Encoding.UTF8.GetBytes("Hello!"));
//Dispose writable stream.
writeStream.Dispose();
Run Code Online (Sandbox Code Playgroud)
我可以使用 Windows 资源管理器连接到 Windows 共享。
有没有人让这个工作?或连接到 Windows 共享的其他方法?
smb ×10
c# ×3
windows ×3
.net ×1
.net-core ×1
azure ×1
azure-files ×1
bash ×1
ceph ×1
cifs ×1
database ×1
docker ×1
escaping ×1
mount ×1
netbios ×1
networking ×1
nfs ×1
postgresql ×1
react-native ×1
share ×1
sharepoint ×1
shell ×1
tor ×1
torsocks ×1
windows-7 ×1