Wie kann ich unter Linux eine Verbindung zur SMB-Freigabe eines 3DS herstellen?

7

Nintendos neues 3DS ("neu" ist Teil des Namens) bietet die Möglichkeit, einen SMB-Anteil seiner Micro-SD-Karte freizulegen.

Sie werden aufgefordert, einen Namen für das 3DS sowie einen Benutzernamen und ein Kennwort zu definieren. Angenommen, ich habe das Gerät benannt my3dsund der Benutzername lautet myuser. Außerdem habe ich ihm eine statische IP-Adresse gegeben, die besagt, dass es sich 1.2.3.4um Beispiele handelt. Ich kann diese IP erfolgreich anpingen.

Unter Windows funktioniert es problemlos. Wenn ich \\my3dsin den Explorer gehe, wird eine einzelne Freigabe mit dem Namen "microSD" angezeigt und der Zugriff auf die Dateien ermöglicht. Es musste nichts auf der Windows-Seite installiert werden , es sieht genauso aus wie jeder andere freigegebene Ordner.
Wichtiger Hinweis: Wenn ich das mache, zeigt das 3DS auf seinem Bildschirm "Verbunden mit dem PC" an. Keine der Methoden, die ich unter Linux ausprobiert habe, hat auf dem 3DS-Bildschirm eine Reaktion ausgelöst, was wahrscheinlich darauf hinweist, dass die Kommunikation frühzeitig fehlschlägt.

Das Folgende sind die verschiedenen Methoden, die ich ausprobiert habe, und die Antwort für jede von ihnen. Ich verwende die 64-Bit-KDE-Edition von Linux Mint.

1) Unter Verwendung Dolphin
Methode: Eingeben smb://my3ds, smb://my3ds/microSD, smb://myuser@my3dsoder smb://myuser@my3ds/microSDin die Adressleiste
Reaktion: Dolphin displays „Lade Ordner“ für eine Weile dann abläuft.

Methode: Die oben genannten, aber 1.2.3.4anstelle von my3ds
Antwort: Dolphin sagt, dass der Ordner nicht existiert.

2) Verwenden vonmount -t cifs
Using mount -t cifsund des Computernamens:

$ 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)

Hinweis: Die oben angezeigte IP-Adresse leitet die ungültige Hostname an meinen ISP weiter. Mit anderen Worten, mein Router kann nicht aufgelöst werden my3ds.

Verwenden mount -t cifsund die statische 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=********

... und hier hängt es. Es macht nichts, bis ich Strg + C drücke. Der Systemmonitor zeigt an, dass sich der Prozess "mount.cifs" im Ruhezustand befindet und diese auch nach Strg + C bestehen bleiben. Selbst das Laufen killall -9 mount.cifsals Root hält sie nicht auf!

3) Verwenden von smbclient

$ smbclient --user=myuser \\\\my3ds\\
Enter myuser's password:

Keine Antwort, es wird nur zurückgegeben. Es ist das gleiche, wenn ich die IP benutze.

$ 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)

Es ist seltsam, dass andere Methoden den Namen nicht auflösen können, aber diese zeigt, dass die IP nicht aufgelöst werden kann.

Laut einem Kommentar zu Reddit kann Nautilus eine Verbindung herstellen. Ich habe Nautilus installiert und versucht, aber es ist immer noch mit einer Zeitüberschreitung fehlgeschlagen, genau wie bei Dolphin.

Berichten zufolge haben Mac OSX-Benutzer eine Verbindung mit dem Protokoll cifs: // und nicht mit smb: // hergestellt. Das scheint das Äquivalent zur Verwendung von Version 1.0 zu sein mount -t cifs, was die Standardeinstellung ist, aber ich habe auch versucht, es explizit mit anzugeben, vers=1.0und es machte keinen Unterschied.

Gibt es eine andere Methode oder Einstellung für mount.cifs oder smbclient, die ich versuchen kann? Kann jemand erklären, warum es nicht funktioniert?

EDIT: Wie gewünscht, die Ausgabe von smbclient -L:

$ smbclient --user=myuser -L my3ds
Enter myuser's password: 
Connection to my3ds failed (Error NT_STATUS_IO_TIMEOUT)

Ein Teil eines TCP-Dumps von Dolphin, der versucht, eine Verbindung herzustellen, wenn die IP angegeben ist (.100 ist der PC, .30 der 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.....

EDIT 2: Es gibt einige Fortschritte. Nach dem Rat von /ubuntu/302159/ubuntu-13-04-will-not-connect-to-share-network-drive hat Dolphin nach einem Benutzernamen und einem Passwort gefragt, anstatt nur eine Zeitüberschreitung zu verursachen . Es wird jedoch immer wieder endlos danach gefragt.
Jedes Mal, wenn dies geschieht, wechselt der 3DS-Bildschirm für einen Moment in den Status "verbunden" und dann zurück.

smbclient hat jetzt eine andere Ausgabe:

$ smbclient --user=myuser -L my3ds
Enter myuser's password: 
session setup failed: NT_STATUS_INVALID_NETWORK_RESPONSE
George T.
quelle
1
Sind Sie sicher, dass es sich um eine SMB-Aktie handelt? Unter Windows verarbeitet `\\` sowohl SMB als auch WebDAV.
user1686
Können Sie (1) eine tcpdump-Ausgabe eines Verbindungsversuchs und (2) die Ausgabe von hinzufügen smbclient -L hostname?
Flup
@grawity: Danke für den Vorschlag, ich wusste nichts über Webdav. Der Versuch dieses Protokolls ist ebenfalls fehlgeschlagen.
George T
@Flup: Ich habe diese dem Beitrag hinzugefügt. -Lnur mal raus.
George T
2
Für die Aufzeichnung funktioniert es auch nicht mit smbclient von Samba 4.4.0.
sch

Antworten:

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

Also habe ich vor ein paar Monaten eine Weile damit verbracht, jede CIF-Option zu erzwingen, um zu versuchen, sie zum Laufen zu bringen, und genau das habe ich bei dieser Art von Arbeit gefunden.

Die wichtige Option ist "servern"

Wenn ich Art von Arbeiten sage, meine ich, dass es einmal funktioniert, dann müssen Sie die Verbindung aufheben und wieder herstellen ...

Ich benutze es nur zum gelegentlichen Kopieren einzelner Spiele.

Mobad
quelle
1
Vielen Dank für den Vorschlag, es hat funktioniert! Ich denke jedoch nicht, dass ich es als Antwort akzeptieren sollte, da lses ausreicht, damit es nicht mehr funktioniert, wie Sie sagten.
George T
1
@ GeorgeT wahrscheinlich necrobumping, aber haben Sie dieoption vers=1.0
carpinchosaurio
Was genau ist "3DS-3885"? Netzwerkname Ihres 3DS?
Ratijas
"3DS-3885" ist der Name des 3DS, wie auf der microSD-Verwaltungsseite angezeigt. Um das oben genannte zum Laufen zu bringen, musste ich es außerdem zwingen, Samba 1.0 mit ", vers = 1.0" zu verwenden
Kelly Bang
0

Die wichtige Information hier ist, dass Sie, während Sie die Nintendo-Freigabe mit diesem Befehl cifs bereitstellen können, nicht einmal versuchen müssen, "ls" im Inneren zu verwenden, wodurch die Freigabe getrennt wird! Um also Dateien zu übertragen, mounten Sie einfach die Freigabe und kopieren Sie Ihre Dateien von der Befehlszeile (Sie müssen den Speicherort des Zielordners auswendig kennen). Verwenden Sie auch keine automatische Vervollständigung!

Eric Fð
quelle