从 OS X (Lion) 命令行或 Finder 是否有一种简单的方法来确定同一子网(在家庭网络中)上的 Windows 机器的 IP 地址?假设机器本身不容易接近。
我知道以下几种方式:
arp -a获得最近访问的IP地址列表,并从那里猜测。这台机器确实出现在 Finder 中,所以我知道它是网络计算机名称(我猜是 WINS 名称?),但不知道它是哪个工作组。我们不在域上。
我不完全确定 OS X 如何“映射”SMB/WINS 名称,因为执行诸如 ping“mywindowsbox”之类的操作失败,ping“mywindowsbox.local”也是如此。
我网络上的防火墙会丢弃 TCP 端口 139 和 445 上的所有数据包。因此,所有 samba 共享都不能在 LAN 之外工作。
我尝试让 samba 守护进程监听非标准端口。这种方法适用于Linux,因为二者smbclient并smbmount有一个选项可以设置服务器端口。但是在 Windows 上我找不到类似的选项。
Windows 是否支持在非标准端口上安装 smb 共享?第三方软件也是可以接受的。
编辑:
\\hostname:port\share在 Windows 资源管理器中不起作用。奇怪的是,我可以看到在服务器上建立了连接。但是 Windows 一直告诉我无法访问服务器。即使在具有标准端口 445 的 LAN 中它也不起作用,在这种情况下,没有端口号的路径将通过。
我只是在寻找一种方法来查看当前连接到 Windows SMB 共享的对等点?
例如:我现在想看看谁连接到 Windows 服务器,他是否在进行任何文件传输?
我管理的学校的一台实验室计算机无法访问 \\ad\data$ 目录下的任何共享。我可以从网络上的任何其他计算机访问它。如果我使用 IP \\192.168.1.248\data$ 我可以正确访问文件。如果我使用 FQDN: \\ad.domain.name\data$ 它也可以工作。学校的任何其他计算机也可以正确访问此共享。
当我尝试使用 \\ad\data$ 访问共享时,我收到消息“您无权访问 \\ad\data$。请联系您的管理员请求访问。” 我使用域管理员帐户登录。
关于什么会导致单个域计算机无法访问它应该访问的共享的任何想法?
服务器运行 Windows Server 2008,计算机运行 Windows 7 SP1。
更新
问题现在发生在网络上的多台其他计算机、教职员工计算机和学生计算机上。我开始认为 Active Directory 服务器存在严重问题。
如何挂载任何人都可以访问的 SMB 网络共享?这是我尝试过的:
me$ sudo mkdir /Multimedia
me$ sudo chmod 777 /Multimedia
me$ sudo mount -t smbfs -o nosuid,-d=777 //user:password@qnap/Multimedia /Multimedia/
Run Code Online (Sandbox Code Playgroud)
然后
me$ cd /Multimedia
-bash: cd: /Multimedia: Permission denied
Run Code Online (Sandbox Code Playgroud)
安装后对 /Multimedia 的许可
drwxrwxrwx 1 root wheel 16384 Nov 8 11:04 Multimedia
Run Code Online (Sandbox Code Playgroud)
但这有效
root# cd /Multimedia
Run Code Online (Sandbox Code Playgroud)
tl;dr只有 root 可以访问挂载的共享
在 /etc/auto_master
#
# Automounter master map
#
+auto_master # Use directory service
/net -hosts -nobrowse,hidefromfinder,nosuid
/home auto_home -nobrowse,hidefromfinder
/Network/Servers -fstab
/- -static
### SMB shares
/- /etc/automounts/smb …Run Code Online (Sandbox Code Playgroud) 我在弄清楚为什么即使从公开共享的计算机上也无法通过本地网络地址访问 Windows 共享文件夹。
当我尝试通过\\localhost一切正常查看共享文件夹时,我可以看到文件。
但是,当我尝试通过本地网络地址 (192.168.1.2) 从同一台计算机连接时,它显示文件夹列表但无法打开它。
我可以毫无问题地 ping 我的地址 ( 192.168.1.2)。防火墙已关闭。没有杀毒软件。我已经打开了“文件和打印机共享”和“网络发现”。
Microsoft Windows [Version 10.0.15063]
Run Code Online (Sandbox Code Playgroud)
这是我的 ipconfig 的样子,没什么可疑的。
C:\Users\nrj>ipconfig /all
Windows IP Configuration
Host Name . . . . . . . . . . . . : EUGENE-PC
Primary Dns Suffix . . . . . . . :
Node Type . . . . . . . . . . . . : Hybrid
IP Routing Enabled. . . . . . . . …Run Code Online (Sandbox Code Playgroud) 我有一个提供一些 SMB 共享的 QNAP NAS。由于我在受信任的环境中,我的共享可以作为来宾访问,而不是使用用户名和密码的组合。
现在,当我在 Finder 的侧边栏中单击设备名称时,我会看到黑色的“连接失败”栏,并带有“连接为...”选项。当我点击它时,我收到:

但是,我可以按? + K并手动输入服务器的名称,这使我进入此窗口:

在这里,我必须选择“客人”。现在,我可以选择要连接到的共享之一,我终于连接到了服务器。如果我在侧边栏中选择它,我会得到所有可用共享的列表,因为我是作为“访客”连接的,显然:

好吧,一旦我卸载所有共享,我必须再次以“访客”身份手动登录相同的过程,我觉得这很烦人。
有什么方法可以让 Finder(或底层 SMB 客户端)知道要使用哪些凭据?
或者我应该在服务器端寻找解决方案?(我知道其他 SMB 共享在我的网络中似乎运行良好)
我唯一能摆脱 Console.app 的是:
5/15/11 7:36:40 PM /System/Library/CoreServices/Finder.app/Contents/MacOS/Finder[200] SharePointBrowser::handleOpenCallBack returned 64
Run Code Online (Sandbox Code Playgroud)
当我在 Finder 边栏中单击 SMB 服务器的名称时,会出现此消息。
这是`smbclient -L meredith -U guest -d=2 的输出
charon:~ werner$ smbclient -L meredith -U guest -d=2
added interface ip=192.168.100.11 bcast=192.168.100.255 nmask=255.255.255.0
tdb(unnamed): tdb_open_ex: could not open file /private/var/samba/gencache.tdb: Permission denied
Got a positive name query response from 192.168.100.100 ( …Run Code Online (Sandbox Code Playgroud) 出于安全原因,我的服务器仅提供 SMB3 安装。这适用于 Windows (10) 客户端,但不适用于 Linux 客户端。他们拒绝自动挂载任何不是 SMB1 的东西。
对于手动安装,-o vers=3.0可以使用该选项。当我想从 Gnome 或 KDE 上的图形文件管理器挂载共享时,如何强制系统使用此选项?
我最近使用 Samba 服务器和 Windows Vista 客户端通过千兆以太网网络(我没有使用巨型帧)设置了 Windows 文件共享。我已经复制了一些文件,但我看到的最大吞吐量是 20MB/s(兆字节,不是兆比特),这大约是网络理论最大值 125MB/s 的 15%。服务器有一个RAID阵列,可以管理大约75MB/s(瓶颈是PCI总线),客户端在磁盘到磁盘复制中可以管理大约40MB/s。
我应该补充一点,当时网络上没有其他流量。
我知道我永远不会得到理论上的最大值,但我不认为它会这么糟糕。
Windows 文件共享 (SMB) 在千兆以太网网络上的典型性能是什么?
加分项:我可以调整什么(除了使用巨型帧)以使其更快?
好吧,这个故事比标题暗示的要多一些。
背景和环境:我正在通过 SMB 从较旧的 Ubuntu 服务器复制几个 TB 到较新的 Windows 2012 服务器。(从技术上讲,它是商品硬件,但它们是这里的服务器。)每个人都在千兆局域网上,而较旧的 Ubuntu 机器有一个绑定接口。我相信 Ubuntu 服务器有两个 Rosewill PCI-e 1x 以太网卡,Windows 服务器有一个相当不错的 PCI Intel 以太网卡。
目标计算机(Windows 服务器)正在运行具有超过 4 个 2TB 驱动器的奇偶校验的存储池。它正在运行微软的新 ReFS。源计算机(Ubuntu 服务器)正在运行软件 RAID 镜像。它运行良好 ol' EXT4。
两台服务器通过一个千兆交换机运行。我已经尝试在没有任何改进的情况下打破源 (Ubuntu) 计算机上的绑定。
问题:我可以以合理的速度从其他计算机传输到 Windows 服务器。其他计算机可以毫不费力地保持 50-80MB/s,但从该 Ubuntu 服务器传输最高不超过 20MB/s。20MB/s 的 4+TB 需要很长时间(大约 2.3 天),我想知道我能做些什么来找出瓶颈所在。
症状:两台计算机上的 CPU 都很小,当然也不会太忙。两台计算机上的硬盘驱动器都处于活动状态但没有被淹没,至少在 Ubuntu 服务器上,CPU IOwait 几乎为 0%。
我做了 35 秒的 Wireshark 跟踪(大概足够长以确保所有 ACK 都是针对新数据包的),并注意到有很多我没想到的事情。(1) 从 Windows 到 Ubuntu 的 ACK(和一些 SMB 数据包)没有任何校验和。但是,Wireshark 声称这可能是由于“IP 校验和卸载”所致。好的,我有一张非常漂亮的卡片。我想网卡有可能进行校验和计算。美好的。继续......(2)“TCP ACKed unseen …
smb ×10
macos ×3
networking ×3
file-sharing ×2
windows ×2
cifs ×1
finder ×1
linux ×1
mac ×1
mount ×1
performance ×1
permissions ×1
samba ×1
smb3 ×1
ubuntu ×1
windows-10 ×1
windows-7 ×1