任天堂的 New 3DS(名称中的“new”部分)能够公开其微型 SD 卡的 SMB 共享。
它要求您定义 3DS 的名称,以及用户名和密码。以下,假设我已命名设备my3ds
,用户名是myuser
。此外,我已为其指定静态 IP - 假设它1.2.3.4
用于示例。我可以成功 ping 此 IP。
在 Windows 上,它运行起来没有问题。如果我进入\\my3ds
Explorer,它会显示一个名为“microSD”的共享并允许访问其文件。它不需要在 Windows 端安装任何东西,它只是将其视为与任何其他共享文件夹相同的方式。
重要提示:当我这样做时,3DS 屏幕上显示“已连接到 PC”。我在 Linux 上尝试过的所有方法都没有在 3DS 屏幕上产生任何响应,这可能表明通信早期就失败了。
以下是我尝试过的不同方法以及每种方法的响应。我使用的是 Linux Mint 的 64 位 KDE 版本。
1)使用 Dolphin
方法:在地址栏中输入smb://my3ds
、smb://my3ds/microSD
或smb://myuser@my3ds
smb://myuser@my3ds/microSD
回复:Dolphin 显示“加载文件夹”一段时间然后超时。
方法:上面的,但是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)
注意:上面显示的 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=********
...然后它就挂了。直到我按下 Ctrl+C 键,它才执行任何操作。系统监视器显示进程“mount.cifs”处于磁盘休眠状态,即使在按下 Ctrl+C 键后,这些进程仍然存在。即使killall -9 mount.cifs
以 root 身份运行也无法阻止它们!
3)使用 smbclient
$ smbclient --user=myuser \\\\my3ds\\
Enter myuser's password:
没有回应,它只是返回。我用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)
奇怪的是,其他方法似乎无法解析名称,但这个方法却显示无法解析 IP。
根据Reddit 上的评论,Nautilus 可以连接。我安装了 Nautilus 并尝试了,但仍然超时失败,就像 Dolphin 一样。
据报道,Mac OSX 用户使用 cifs:// 协议而不是 smb:// 进行连接。这似乎相当于使用 1.0 版(mount -t cifs
默认设置),但我也尝试使用 明确指定它vers=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)
另外,Dolphin 尝试连接的 tcpdump 的一部分,给出了 IP(.100 是 PC,.30 是 3DS):
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 [email protected]$...
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..<..@[email protected]
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..(..@[email protected]
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..@[email protected]
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.....
编辑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
答案1
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
因此几个月前我花了一段时间强制执行每个 cifs 选项以尝试使其正常工作,这就是我发现的有效方法。
重要的选项是“servern”
当我说有点作用时,我的意思是它作用一次然后你必须卸载并重新连接......
我只是偶尔用它来复制单个游戏。
答案2
这里的重要信息是,虽然您可以使用此 cifs 命令挂载 nintendo 共享,但您甚至不能尝试在里面“ls”,这会断开共享!因此,要传输文件,只需挂载共享,然后从命令行复制文件(您必须记住目标文件夹的位置),也不要使用自动完成!