PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Dateiaustausch zwischen zwei Linux-Rechner - Einfachster Weg?



Dhekon
14.05.05, 13:47
So, ich google jetzt schon seit Stunden und komm auf keinen grünen Zweig.

Dabei klingt es so einfach: Ich will zwischen meiner Workstation (Debian Sarge) und meinem Schleppi (Ubuntu 5.04) Dateien austauschen können.

Aber ich weiss gar nicht wo ich anfangen soll.

Google kommt immer wieder auf die gleichen zwei Möglichkeiten zurück:

1. Samba.
Ganz abgesehen davon, dass dieses bei mir unter Debian nicht laufen will (wenn man den Dämon startet sieht alles normal aus, aber es wird kein Prozess draus), scheint es mir Unfug, zwei Linux-Rechner über Samba zu verbinden.

2. NFS.
Sollte Google zufolge der Königsweg sein. Ich will aber verdammt noch mal nicht den einen Rechner als Client mit Benutzeranmeldung auf dem anderen Rechner verwenden. Warum, ist eigentlich klar: Weil ich sie (einer ist mobil) auch getrennt benutzen will.

Ich will einfach nur auf dem einen Rechner freigegebene Dateien auf dem anderen Rechner ziehen können und umgekehrt.
Wäre toll, wenn mich da mal jemand aufklären könnte. Gibt es so etwas, dass auch mit eingermassen vertretbarem Aufwand einzurichten ist?
Oder soll ich am Ende wirklich Samba verwenden, weil es sowas im UNIX Universum prinzipiell nicht gibt?

drcux
14.05.05, 13:52
2. NFS.
Sollte Google zufolge der Königsweg sein.

Ob das nun der "Königsweg" ist, würde ich nicht unbedingt sagen...



Ich will aber verdammt noch mal nicht den einen Rechner als Client mit Benutzeranmeldung auf dem anderen Rechner verwenden. Warum, ist eigentlich klar: Weil ich sie (einer ist mobil) auch getrennt benutzen will.


Das hat nix mit NFS zu tun, du sprichst höchstwahrscheinlich von NIS.

PC --> Ordner per NFS freigeben
NB --> Eintrag in die fstab, und zwar so, das der User die Freigabe bei Bedarf selber mounten kann

canis_lupus
14.05.05, 13:56
Als Möglichkeit 3: SSH-FS

Vorteil: Authentifizierung und Verschlüsselung

Nachteil: sehr langsam (kommt kaum über die 1MB/s in einem 100MBit-LAN)

Ansonsten schliesse ich mich an. Schnell und einfach-> NFS

sirmoloch
14.05.05, 14:01
Nachteil: sehr langsam (kommt kaum über die 1MB/s in einem 100MBit-LAN)

Aha, ich frage mich, ob es vielleicht an deiner Rechenleistung liegt?
Kurz gesagt: Quatsch. Meinst du, dass die restlichen ~92 Mbit auf die Verschlüsselung entfallen?

canis_lupus
14.05.05, 16:17
@sirmoloch

Ich habe durchschnittlich Transferleistungen von um die 1 MegaByte/Sekunde mal mehr, mal weniger. Ich würde 1.4 GHz CPU-Leistung auch nicht unbedingt wenig nennen. Die Kabel in Ordnung, da Vergleiche mit netio durchaus zu den üblichen Transferleistungen in einem 100Mbit-LAN geführt haben.
Bei mehr als einer Datei wird für jeden Transfer eine Session etabliert, was Zeit kostet. Also besonders bei vielen Daten geringer Größe geht die Gesamttransferleistung herunter.

Aber bitte. Probier es aus und nenn mir deine Transferleistung.

sirmoloch
14.05.05, 16:20
Gerne:

1.8 GHz P4 --> 400 MHz P2: immer um 3 MB/s
1.8 GHz P4 --> 400 MHz USIIi: 4 MB/s

Die Werte sind rückwärts identisch.
Du kannst dir ja mal mit iptraf anschauen wie die wahre Netzwerkauslastung ist.

BTW: Ich habe mir die Manpages und auf der openssh.com-Seite Beschreibungen zu ssh durchgelesen, aber ich konnte bisher nirgendwo nachlesen, dass scp für jede einzelne Datei eine komplette SSH-Sitzung eröffnet. Das fände ich irgendwie seltsam, da das SSH2-Protokoll einen eigenen connection layer bietet um gerade ständige Aushandlungen eines Keys und der erneuten Authentifizierung zu vermeiden, da dies alles Rechenleistung kostet. Hast du irgendeinen Link? Den Quellcode von scp wollte ich jetzt eigentlich nicht lesen. Außerdem fände ich es leicht unökonomisch für jede kleine Datei einen neuen Key, etc. auszuhandeln...

[WCM]Manx
14.05.05, 16:34
@sirmoloch & @canis_lupus

Ihr müßt's schon gezielt vergleichen SCP != SCP

SSH Protokollversion
Verschlüsselungsalgorithmus

Bei mir:
SSH v2 (aes) ~ 2200KB/s
SSH v2 (3des) ~1100KB/s

Manx

sirmoloch
14.05.05, 16:39
Oh, stimmt.

Ich rede von SSH2 mit AES.

ChandlerBing
14.05.05, 16:46
2. NFS.
Sollte Google zufolge der Königsweg sein. Ich will aber verdammt noch mal nicht den einen Rechner als Client mit Benutzeranmeldung auf dem anderen Rechner verwenden. Warum, ist eigentlich klar: Weil ich sie (einer ist mobil) auch getrennt benutzen will.

Ich will einfach nur auf dem einen Rechner freigegebene Dateien auf dem anderen Rechner ziehen können und umgekehrt.
Wäre toll, wenn mich da mal jemand aufklären könnte. Gibt es so etwas, dass auch mit eingermassen vertretbarem Aufwand einzurichten ist?
Oder soll ich am Ende wirklich Samba verwenden, weil es sowas im UNIX Universum prinzipiell nicht gibt?
Bei NFS gibts keine Anmeldung.
Wenn Du in beide Richtungen Daten tauschen willst, dann muss auf beiden Rechnern ein NFS-Server laufen. Du musst die Partition(en), die Du freigeben willst in die /etc/exports eintragen.
Auf der jeweils anderen Seite trägst Du die Freigabe in die /etc/fstab ein. Wenn du die mount-Optionen "user" bzw "noauto" angibst, dann kann ein user (un)mounten, noauto bewirkt, dass die Freigabe nicht beim booten gemountet wird (sicher hilfreich für das Notebook).

Das sollte eigentlich ruck-zuck zu machen sein, per SuFu sollten sich hier hilfreiche Themen finden lassen.

Ach ja:

apt-get install nfs-common
und es kann losgehen! ;)

kreol
14.05.05, 21:04
Wie sieht es dann mit der Sicherheit aus, wenn die Rechner im Internet hängen? Kann man bei der Freigabe mit NFS angeben, daß nur lokale Rechner Zugriff bekommen und sicher sein, das keiner von außen Zugriff hat?


Kreol

sirmoloch
14.05.05, 21:35
Du kannst den portmap auf einer bestimmten IP lauschen lassen. portmap wird bei NFS3 noch benötigt um die Verbindungen auszuhandeln - um es einfach zu sagen. ;)

Siehe man portmap.

kreol
14.05.05, 21:44
@sirmoloch: also ich beziehe die Antwort einfach mal auf mich ;)

portmap sagt mir überhaupt nichts. Allerdings steht in meinem Kofler, daß in der /etc/exports eingetragen werden kann, welcher Rechner Zugriff auf welche Verzeichnisse hat (mit IP-Adresse oder Rechnernamen). Weitere Konfiguration wohl über /etc/hosts.allow und /etc/hosts.deny.

Meine Frage zielt dahin, ob ich dann wirklich sicher sein kann, daß kein anderer Rechner (von außen) Zugriff hat. Ich trage also die IP meiner LAN-Rechner ein und bin sorgenfrei?


Kreol

sirmoloch
14.05.05, 21:48
Tipp einfach mal man portmap ein. Dadurch, dass der Portmap keine RPC-Calls mehr von externer Seite annimmt, kann schonmal keine NFS-Anfrage mehr an den nfsd gelangen. Durch die Einstellungen des Exports mit einer IP-Maske oder einem Rechnernamen kann nur noch Rechner X den Export mounten.

kreol
14.05.05, 22:05
Sorry, aber mein IT-Studium liegt schon länger zurück und muß in einem anderen Leben gewesen sein ;) Mit
Portmap is a server that converts RPC program numbers into DARPA protocol
port numbers. It must be running in order to make RPC calls.

When an RPC server is started, it will tell portmap what port number it
is listening to, and what RPC program numbers it is prepared to serve.
When a client wishes to make an RPC call to a given program number, it
will first contact portmap on the server machine to determine the port
number where RPC packets should be sent.

Portmap must be started before any RPC servers are invoked.

Normally portmap forks and dissociates itself from the terminal like any
other daemon. Portmap then logs errors using syslog(3). ...bin ich schlicht überfordert.

Langer Rede kurzer Sinn: Ich trage in der hosts.allow die IP's meiner Netzwerkrechner ein, in der hosts.deny trage ich ein 'ALL : ALL'. Die etc/exports erhält ebenfalls die IP's meiner Netzwerkrechner mit den jeweils freigegebenen Verzeichnissen.

Und dann kommt von außen keiner rein?


Kreol

sirmoloch
14.05.05, 22:19
Ok, dann erkläre ich es dir. ;)

NFS in der Version 3 kommuniziert zum Herstellen einer Verbindung und zum Verwalten von Anfragen an den NFS-Server über RPC-Calls. RPC-Calls sind zu (streng) deutsch "entfernte Ablaufaufforderungen". Eine Anfrage ist z.B. die Nachfrage nach dem Einhängen eines auf dem Server exportierten Verzeichnis oder das Auflisten des Verzeichnisinhalts. Um überhaupt mit dem NFS-Server zu kommunizieren muss der Client anfragen über welchen Port er mit dem Server kommunizieren soll. Diese Aufgabe der Vermittlung übernimmt der portmap.

Ist kein Portmap erreichbar, kann auch keine Kommunkation ausgehandelt werden und die Anfrage wird wahrscheinlich in einem "Timeout" oder "Could not connect portmap" enden. Wenn du einstellst, dass der portmap nur auf deiner LAN-IP horchen soll und du in der /etc/exports die Exports den richtigen IPs, IP-Masken oder Domänen zuweist, musst du dir keine Sorgen mehr machen.

kreol
14.05.05, 22:44
OK. Ich werd' noch ein bisschen rumlesen mit portmap und Konsorten und mach dann ggf. einen eigenen Thread auf :cool: Wenn es um ports geht, werde ich wohl auch mal ein paar Seiten über firewall lesen müssen... Bis dahin vielen Dank für die Info.


Kreol

Dhekon
15.05.05, 12:25
Also vielen Dank an alle, die mir geholfen haben, vor allem ChandlerBing. Das war wohl so der Anstoss dens gebraucht hat. Hab NFS anhand eines Howtos auf http://mysite.verizon.net/res0yizl/id12.html (die Seite hat bisserl dilletantisches HTML (interne Links auf file:///C:/ :-) ) ist aber sonst top) eingerichtet und hurra es funktioniert. jetzt nur noch in die fstab damit :-)

Weltklasse, vielen Dank nochmal...