Mavericks als FTP Server

R

ryder

Mitglied
Thread Starter
Dabei seit
06.09.2012
Beiträge
34
Reaktionspunkte
0
Liebe Gemeinde,

ich setzte 10.9.1 auf einem MBP rein und würde den Rechner gerne als FTP Server verwenden.
In Mavericks kann man ja den FTP Server nicht mehr per GUI starten also habe ich das per CLI gemacht, nämlich:

Code:
sudo -s launchctl load -w /System/Library/LaunchDaemons/ftp.plist

Danach funktioniert auch ein:
Code:
ftp localhost

Aber leider funktioniert der Connect nicht über das Netzwerk.
Nun habe ich das schon alles versucht:

- die plist angepasst und debugging für den ftp enabled
- statt Ethernet den Zugriff per WLAN versucht
- Andere Server gestartet: TFTPD und SSHD (funktionieren beide)
- tcpdump laufen lassen (die Anfragen kommen am MBP an, aber der FTPD schickt scheinbar keine Antwort)
- MAC Firewall mal eingeschalten (habe ich sonst aus) und dann dort FTP erlaubt

So, nun bin ich mit meinem Latein am Ende! Wer hat noch Idee, wie ich das Problem eingrenzen kann.
Für mich hat es den Eindruck als wenn der launchd nicht den FTPD Prozess startet, wenn ein Verbindungswunsch ankommt.
Aber wie kann ich das eingrenzen.
Aufgefallen ist mir dabei noch, dass bei der Liste der offenen Ports, es unterschiedlich aussieht, je nachdem ob es FTP oder TFTP ist.
Siehe hier:

Code:
launchd       1             root   37u  IPv4 0x279cebea2cca5d45      0t0    TCP *:21 (LISTEN)
launchd       1             root   97u  IPv4 0x279cebea32aba37d      0t0    UDP *:69
Es fehlt der Hinweis (LISTEN), hat das eine Bedeutung?

Bin für jede Idee oder Hilfe dankbar.

ciao
Thorsten
 
Ich bin auch kein Netzwerkexperte aber FTP verwendet AFAIK 2 verschiedene Ports, einen zum Übertragen der Daten und den anderen für Befehle: Es sind Port 20 und 21. Weiterhin würde ich dem Mavericks-FTP-Mac eine feste IP zuordnen und dann über die Kommandozeile eines anderen Mac versuchen, den Mavericks-Mac zu erreichen:

ftp <IP-Adresse des Mavericks-Mac>
 
Klar kann man den FTP Server ohne Terminal starten. Dafür gibt es in den Systemeinstellungen die Dateifreigabeoptionen. :)
 
Dann hast du kein aktuelles MacOS drauf. Da gibt es kein FTP mehr in den Optionen.
 
MacOS 10.9.1: Apfel -> Systemeinstellungen -> Freigaben -> Entfernte Anmeldung: "Entfernte Anmeldung ermöglicht es, daß Benutzer anderer Computer über SSH und FTP auf diesen Computer zugreifen können."
 
Bei mir gibt es die Einstellung nicht und ich habe auch 10.9.1 (siehe Screenshot)
Aber ANYWAY, mit dem Befehl von oben kann man die FTP-Server aktivieren, nur eben der Zugriff per Netzwerk klappt nicht.

Hat keine eine Idee, wie ich das PRoblem eingrenzen kann?
Die Tips von Mankind habe ich berücksichtigt. Ports habe ich nicht geblockt. Soweit komme ich auch noch gar nicht, dass 2 Ports verwendet werden würden.
Ich bekomme noch nicht mal ein Anmeldeprompt.

ftp_screen.jpg

ciao
ryder
 
Gibt es einen Grund, dass du FTP und nicht sFTP verwenden willst?
(sFTP läuft über die ssh-Freigabe)
 
Ja, den gibt es ich will ca. 350 GB von meiem MBP auf eine anderes Gerät transportieren. Und da macht es einfach etwas aus, ob du vorher verschlüsselst (sprich SFTP) verwendest oder eben nicht.
Anders formuliert, FTP geht hier einfach schneller.
Der Zugriff per ssh bzw. sftp funktioniert übrigens.

ciao
ryder
 
Ich würde jetzt mal behaupten, ein aktueller Rechner hat kein Problem, auch mit Verschlüsselung eine Gigabit-Leitung zu füllen. Der Flaschenhals ist da ja in der Regel eher die Festplatte.

Bei sftp hättest du dafür den Vorteil, dass du eine Fehlerprüfung "gratis" mitbekommst. Und in der Zeit, in der du den Fehler suchst hättest du die Daten mit sftp schon lange kopiert ;)

Aaaaaber anyway ;) Ich hab das mal bei mir probiert, ebenfalls 10.9.1, eine relative frische Installation (kein Update). Da klappt das, also starten mit launchctl genügt und ich komme auch remote drauf, ohne weitere Konfiguration.

Hier mal meine /System/Library/LaunchDaemons/ftp.plist, vielleicht gibt es ja da schon einen Unterschied?

Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Disabled</key>
	<true/>
	<key>Label</key>
	<string>com.apple.ftpd</string>
	<key>Program</key>
	<string>/usr/libexec/ftpd</string>
	<key>ProgramArguments</key>
	<array>
		<string>ftpd</string>
		<string>-l</string>
		<string>-n</string>
	</array>
	<key>inetdCompatibility</key>
	<dict>
		<key>Wait</key>
		<false/>
	</dict>
	<key>Sockets</key>
	<dict>
		<key>Listeners</key>
		<dict>
			<key>SockServiceName</key>
			<string>ftp</string>
			<key>Bonjour</key>
			<true/>
		</dict>
	</dict>
	<key>SHAuthorizationRight</key>
	<string>system.preferences</string>
</dict>
</plist>
 
@ProjectBuilder,

ja, da hast du Recht, dass ich es statt dem rumprobieren schon längst kopiert hätte. Aber, nur unter der Annahme, dass ich das nur einmal mache, diese Annahme ist leider falsch.

Trotzdem, vielen Dank für deinen Test, werde mal die plist mit meiner vergleichen, vielleicht finde ich so etwas.

Danke.

ciao
ryder
 
Du versuchst den ftp-Zugriff aber schon über
ftp://<Benutzername>@<Domain oder IP>
?
Weil ohne Benutzername (oder zusätzlicher Domainzuweisung) funktioniert ftp nicht...
 
PS: auch bei mir:

Code:
launchd       1           root  140u  IPv4 0xc932cdf73d03a9f5      0t0    TCP *:21 (LISTEN)

Bei UDP (TFTP) hast du wohl kein LISTEN weil es eben UDP ist (so ins Blaue geraten...)
 
Nein, in der Art mache ich kein ftp, ich mache es so:
Code:
hqws0003:~ xxx.yyy$ ftp localhost
Trying ::1...
Connected to localhost.
220 localhost FTP server (tnftpd 20100324+GSSAPI) ready.
Name (localhost:xxx.yyy): ^C

und wie du siehst, meldet sich dann der FTP Server ja und fragt nach dem Usernamen.
Nur wenn ich per Netzwerk komme, macht er das eben nicht.

@ProjektBuilder,
yep, das ist es wg. dem LISTEN. Danke, guter Hinweis.
Deine plist habe ich probiert, war etwas anders. Hat aber auch nicht das Problem gelöst.

ciao
ryder
 
Etwas fällt mir gerade auf - das hier

Code:
hqws0003:~ xxx.yyy$ ftp localhost
Trying ::1...

deutet darauf hin, dass du IPv6 aktiv hast. Bei mir wird auch entsprechend ein IPv6 aufgelistet (also ich habe zwei LISTEN Zeilen, eine für IPv4, eine für v6). Ist das bei dir auch der Fall? Vermutlich nicht wirklich relevant, aber vielleicht hilft's ja doch.

Verbindest du remote über einen Hostnamen oder eine IP-Adresse?

Interessanter ist allenfalls, dass deine plist etwas anders war. Ist das ein aktualisiertes System, also war da vorher 10.8 oder so drauf? Evtl. schwirren da noch alte Konfigurationen rum.
 
und wie du siehst, meldet sich dann der FTP Server ja und fragt nach dem Usernamen.
Nur wenn ich per Netzwerk komme, macht er das eben nicht.

Sag ich doch ->
ftp://server.local funktioniert solange nicht, wie dem kein entsprechendes Datei-/Stammverzeichnis zugeordnet ist.
Da es kein Stammverzeichnis gibt - gibt es auch keine Benutzer.
Wonach soll er also fragen?

ftp://benutzer@server.local funktioniert, weil der Benutzerordner das Stammverzeichnis ist.
 
Auf der Kommandozeile nimmt der FTP Client einfach den Benutzernamen der Shell, wenn man keinen anderen Namen explizit angibt. Das sollte also kein Problem sein, es müsste zumindest irgend eine Meldung zurückkommen, wenn der Benutzernamen nicht ok ist.
 
@ProjektBuilder,
ja, ist ein älteres System war nach Kauf 10.7.X drauf.
Ja, ich habe IPv6 enabled, habe ich mal ausgeschaltet, hilft aber auch nicht. Ich habe es mit der IPv4-Adresse versucht, also nicht per FQDN o.ä.

@Umac_de
funkioniert in der user@server Variante auch nicht. Gleiches Fehlerbild.

ciao
ryder
 
Ohne beides -> kommt gar nix.

Doch, auf der Kommandozeile schon, da der Client da den Benutzernamm nimmt, mit dem man eingeloggt ist in der Shell. Den Fall "ohne beides" gibt es da also eigentlich gar nicht. ;)
 
Zurück
Oben Unten