如何从 Linux 连接到 3DS 的 SMB 共享?

如何从 Linux 连接到 3DS 的 SMB 共享?

任天堂的 New 3DS(名称中的“new”部分)能够公开其微型 SD 卡的 SMB 共享。

它要求您定义 3DS 的名称,以及用户名和密码。以下,假设我已命名设备my3ds,用户名是myuser。此外,我已为其指定静态 IP - 假设它1.2.3.4用于示例。我可以成功 ping 此 IP。

在 Windows 上,它运行起来没有问题。如果我进入\\my3dsExplorer,它会显示一个名为“microSD”的共享并允许访问其文件。它不需要在 Windows 端安装任何东西,它只是将其视为与任何其他共享文件夹相同的方式。
重要提示:当我这样做时,3DS 屏幕上显示“已连接到 PC”。我在 Linux 上尝试过的所有方法都没有在 3DS 屏幕上产生任何响应,这可能表明通信早期就失败了。

以下是我尝试过的不同方法以及每种方法的响应。我使用的是 Linux Mint 的 64 位 KDE 版本。

1)使用 Dolphin
方法:在地址栏中输入smb://my3dssmb://my3ds/microSDsmb://myuser@my3dssmb://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”,这会断开共享!因此,要传输文件,只需挂载共享,然后从命令行复制文件(您必须记住目标文件夹的位置),也不要使用自动完成!

相关内容