Geo*_*e T 7 linux samba network-shares smb cifs
Nintendo 的 New 3DS(“new”是名称的一部分)能够公开其 micro SD 卡的 SMB 共享。
它要求您定义 3DS 显示的名称,以及用户名和密码。对于以下内容,假设我已经为设备命名my3ds并且用户名是myuser. 另外,我给了它一个静态 IP——假设它是1.2.3.4用于示例的。我可以成功ping这个IP。
在 Windows 中,它可以正常工作。如果我进入\\my3ds资源管理器,它会显示一个名为“microSD”的共享并允许访问其文件。它不需要在 Windows 端安装任何东西,它只是以与任何其他共享文件夹相同的方式查看它。
重要提示:当我这样做时,3DS 在其屏幕上显示“已连接到 PC”。我在 Linux 上尝试过的所有方法都没有在 3DS 的屏幕上产生任何响应,这可能表明早期通信失败。
以下是我尝试过的不同方法,以及对每种方法的响应。我正在使用 Linux Mint 的 64 位 KDE 版本。
1) 使用 Dolphin
方法:在地址栏中输入smb://my3ds、smb://my3ds/microSD、smb://myuser@my3ds或响应: Dolphin 显示“正在加载文件夹”一段时间然后超时。smb://myuser@my3ds/microSD
方法:同上,但使用1.2.3.4代替my3ds
响应: Dolphin 说文件夹不存在。
2)使用mount -t cifs
使用mount -t cifs和机器名称:
$ sudo mount -t cifs //my3ds/microSD /media/3DS/ -o username=myuser
Password for myuser@//my3ds/microSD:
mount.cifs kernel mount options: ip={wrong IP},unc=\\my3ds\microSD,user=myuser,pass=********
mount error(115): Operation now in progress
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
Run Code Online (Sandbox Code Playgroud)
注意:上面显示的 IP 是我的 ISP 将无效主机名重定向到的 IP。换句话说,我的路由器无法解析my3ds.
使用mount -t cifs和静态IP:
$ sudo mount -t cifs //1.2.3.4/microSD /media/3DS/ --verbose -o username=myuser
Password for myuser@//1.2.3.4/microSD:
mount.cifs kernel mount options: ip=1.2.3.4,unc=\\1.2.3.4\microSD,user=myuser,pass=********
Run Code Online (Sandbox Code Playgroud)
......它挂在这里。在我 Ctrl+C 之前它什么都不做。系统监视器显示进程“mount.cifs”处于磁盘睡眠状态,即使在 Ctrl+C 之后这些仍然存在。即使killall -9 mount.cifs以 root 身份运行也无法阻止它们!
3) 使用 smbclient
$ smbclient --user=myuser \\\\my3ds\\
Enter myuser's password:
Run Code Online (Sandbox Code Playgroud)
没有反应,它只是返回。如果我使用IP也是一样的。
$ smbclient --user=myuser \\\\192.168.1.30\\microsd
Enter myuser's password:
Connection to 192.168.1.30 failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND)
Run Code Online (Sandbox Code Playgroud)
奇怪的是,其他方法似乎无法解析名称,但这表明它无法解析IP。
根据Reddit上的评论,Nautilus 可以连接。我安装了 Nautilus 并尝试过,但它仍然因超时而失败,就像 Dolphin 一样。
据报道,Mac OSX 用户使用 cifs:// 协议而不是 smb:// 进行连接。这似乎等同于使用 1.0 版 with mount -t cifs,这是默认值,但我也尝试明确指定它 withvers=1.0并且没有任何区别。
有没有其他方法或设置 mount.cifs 或 smbclient 可以尝试?谁能解释为什么它不起作用?
编辑:根据要求,输出smbclient -L:
$ smbclient --user=myuser -L my3ds
Enter myuser's password:
Connection to my3ds failed (Error NT_STATUS_IO_TIMEOUT)
Run Code Online (Sandbox Code Playgroud)
此外,给定 IP(.100 是 PC,0.30 是 3DS),来自 Dolphin 的 tcpdump 尝试连接的一部分:
21:00:10.004622 ARP, Request who-has 192.168.1.30 tell 192.168.1.100, length 28
0x0000: 0001 0800 0604 0001 4ceb 4294 e68e c0a8 ........L.B.....
0x0010: 0164 0000 0000 0000 c0a8 011e .d..........
21:00:10.007552 ARP, Reply 192.168.1.30 is-at 40:d2:8a:35:24:f2, length 28
0x0000: 0001 0800 0604 0002 40d2 8a35 24f2 c0a8 ........@..5$...
0x0010: 011e 4ceb 4294 e68e c0a8 0164 ..L.B......d
21:00:10.007590 IP 192.168.1.100.60644 > 192.168.1.30.139: tcp 0
0x0000: 4500 003c a0bb 4000 4006 162e c0a8 0164 E..<..@.@......d
0x0010: c0a8 011e ece4 008b 550d 6daa 0000 0000 ........U.m.....
0x0020: a002 7210 d4e3 0000 0204 05b4 0402 080a ..r.............
0x0030: ffff cd11 0000 0000 0103 0307 ............
21:00:10.019595 IP 192.168.1.30.139 > 192.168.1.100.60644: tcp 0
0x0000: 4500 0030 0964 4000 4006 ad91 c0a8 011e E..0.d@.@.......
0x0010: c0a8 0164 008b ece4 67a2 d9fd 550d 6dab ...d....g...U.m.
0x0020: 7012 ffff 0dd8 0000 0204 0550 0101 0402 p..........P....
21:00:10.019726 IP 192.168.1.100.60644 > 192.168.1.30.139: tcp 0
0x0000: 4500 0028 a0bc 4000 4006 1641 c0a8 0164 E..(..@.@..A...d
0x0010: c0a8 011e ece4 008b 550d 6dab 67a2 d9fe ........U.m.g...
0x0020: 5010 7210 c827 0000 P.r..'..
21:00:10.019864 IP 192.168.1.100.60644 > 192.168.1.30.139: tcp 72
0x0000: 4500 0070 a0bd 4000 4006 15f8 c0a8 0164 E..p..@.@......d
0x0010: c0a8 011e ece4 008b 550d 6dab 67a2 d9fe ........U.m.g...
0x0020: 5018 7210 380d 0000 8100 0044 2044 4244 P.r.8......D.DBD
0x0030: 4a44 4343 4f44 4244 4744 4943 4f44 4243 JDCCODBDGDICODBC
0x0040: 4f44 4444 4143 4143 4143 4143 4100 2045 ODDDACACACACA..E
0x0050: 4845 4645 5046 4345 4845 4643 4e45 4f44 HEFEPFCEHEFCNEOD
0x0060: 4644 4646 4445 4d43 4143 4143 4141 4100 FDFFDEMCACACAAA.
21:00:10.022602 IP 192.168.1.30.139 > 192.168.1.100.60644: tcp 0
0x0000: 4500 0028 0965 4000 4006 ad98 c0a8 011e E..(.e@.@.......
0x0010: c0a8 0164 008b ece4 67a2 d9fe 550d 6df3 ...d....g...U.m.
0x0020: 5010 ffb7 3a38 0000 P...:8..
21:00:10.022832 IP 192.168.1.30.139 > 192.168.1.100.60644: tcp 5
0x0000: 4500 002d 0966 4000 4006 ad92 c0a8 011e E..-.f@.@.......
0x0010: c0a8 0164 008b ece4 67a2 d9fe 550d 6df3 ...d....g...U.m.
0x0020: 5018 ffb7 3729 0000 8300 0001 80 P...7).......
21:00:10.022894 IP 192.168.1.100.60644 > 192.168.1.30.139: tcp 0
0x0000: 4500 0028 a0be 4000 4006 163f c0a8 0164 E..(..@.@..?...d
0x0010: c0a8 011e ece4 008b 550d 6df3 67a2 da03 ........U.m.g...
0x0020: 5010 7210 c7da 0000 P.r.....
21:00:10.023078 IP 192.168.1.100.60644 > 192.168.1.30.139: tcp 0
0x0000: 4500 0028 a0bf 4000 4006 163e c0a8 0164 E..(..@.@..>...d
0x0010: c0a8 011e ece4 008b 550d 6df3 67a2 da03 ........U.m.g...
0x0020: 5011 7210 c7d9 0000 P.r.....
21:00:10.023268 IP 192.168.1.100.60645 > 192.168.1.30.139: tcp 0
0x0000: 4500 003c 9181 4000 4006 2568 c0a8 0164 E..<..@.@.%h...d
0x0010: c0a8 011e ece5 008b fd08 5c97 0000 0000 ..........\.....
0x0020: a002 7210 3df5 0000 0204 05b4 0402 080a ..r.=...........
0x0030: ffff cd16 0000 0000 0103 0307 ............
21:00:10.023588 IP 192.168.1.30.139 > 192.168.1.100.60644: tcp 0
0x0000: 4500 0028 0967 4000 4006 ad96 c0a8 011e E..(.g@.@.......
0x0010: c0a8 0164 008b ece4 67a2 da03 550d 6df3 ...d....g...U.m.
0x0020: 5011 ffb7 3a32 0000 P...:2..
21:00:10.023642 IP 192.168.1.100.60644 > 192.168.1.30.139: tcp 0
0x0000: 4500 0028 a0c0 4000 4006 163d c0a8 0164 E..(..@.@..=...d
0x0010: c0a8 011e ece4 008b 550d 6df4 67a2 da04 ........U.m.g...
0x0020: 5010 7210 c7d8 0000 P.r.....
Run Code Online (Sandbox Code Playgroud)
编辑 2:有一些进展。按照https://askubuntu.com/questions/302159/ubuntu-13-04-will-not-connect-to-share-network-drive的建议,Dolphin 要求输入用户名和密码,而不仅仅是超时. 然而,它无休止地一次又一次地要求它。
每次发生这种情况时,3DS 的屏幕都会暂时变为“已连接”状态,然后再返回。
smbclient 现在有不同的输出:
$ smbclient --user=myuser -L my3ds
Enter myuser's password:
session setup failed: NT_STATUS_INVALID_NETWORK_RESPONSE
Run Code Online (Sandbox Code Playgroud)
小智 9
sudo mount.cifs //3DS-3885/microSD -o user=3dsUser,password=3dsPass,ip=3dsIP,servern=3DS-3885,uid=linuxUser,gid=users,nounix,vers=1.0 mountPoint
Run Code Online (Sandbox Code Playgroud)
所以我花了几个月的时间来强制每个 cifs 选项尝试让它工作,这就是我发现的那种工作。
重要的选项是“servern”
当我说某种作品时,我的意思是它可以运行一次,然后您必须卸载并重新连接...
我只是偶尔用它来复制单个游戏。
| 归档时间: |
|
| 查看次数: |
5200 次 |
| 最近记录: |