Как подключиться к общему ресурсу SMB 3DS из Linux?

Как подключиться к общему ресурсу SMB 3DS из Linux?

Новая игровая приставка Nintendo 3DS (в названии которой есть слово «новая») способна предоставлять доступ к разделу SMB на своей карте micro SD.

Он просит вас определить имя, под которым будет отображаться 3DS, а также имя пользователя и пароль. Для следующего предположим, что я назвал устройство my3ds, а имя пользователя — myuser. Также я дал ему статический IP — скажем, 1.2.3.4для примеров. Я могу успешно пинговать этот IP.

Из Windows это работает без проблем. Если я захожу \\my3dsв Explorer, он показывает одну общую карту с именем "microSD" и разрешает доступ к ее файлам.Не нужно было ничего устанавливать на стороне Windows., он просто видит ее так же, как и любую другую общую папку.
Важное примечание: когда я это делаю, на экране 3DS отображается сообщение «Подключено к ПК».Ни один из методов, которые я пробовал в Linux, не дал никакого отклика на экране 3DS, что, вероятно, указывает на сбой связи на раннем этапе.

Ниже приведены различные методы, которые я пробовал, и ответ для каждого из них. Я использую 64-битную версию KDE Linux Mint.

1) Использование Dolphin
Метод:Ввод smb://my3ds, smb://my3ds/microSD, smb://myuser@my3dsили smb://myuser@my3ds/microSDв адресную строку
Ответ:Dolphin некоторое время отображает сообщение «Загрузка папки», а затем отключается.

Метод:Вышеуказанное, но с использованием 1.2.3.4вместоmy3ds
Ответ:Дельфин говорит, что папка не существует.

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, который он показывает выше, — это тот, на который мой провайдер перенаправляет недействительные имена хостов. Другими словами, мой маршрутизатор не может разрешить 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)

Также, часть tcpdump от Dolphin, пытающегося подключиться, учитывая IP (.100 — это ПК, .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

Итак, несколько месяцев назад я потратил некоторое время, пытаясь перебрать все опции CIF, чтобы заставить его работать, и вот что я обнаружил.

Важная опция - "servern"

Когда я говорю «работает», я имею в виду, что оно работает один раз, а затем вам приходится отключать и подключать заново...

Я просто иногда использую его для копирования отдельных игр.

решение2

Важная информация здесь заключается в том, что хотя вы можете смонтировать общий ресурс Nintendo с помощью этой команды cifs, вы даже не должны пытаться использовать "ls" внутри, это отключит общий ресурс! Поэтому для передачи файлов просто смонтируйте общий ресурс и скопируйте файлы из командной строки (вы должны знать наизусть расположение папки назначения), также не используйте автодополнение!

Связанный контент