Pure FTPd Zugriff über PHP script

Status
Für weitere Antworten geschlossen.

racer

Benutzer
Mitglied seit
10. Sep 2010
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen,

Betreibe einen FTP Server (pure FTP) im LAN der auch über WAN erreichbar ist. Funktioniert alles bestens solange man für den FTP-Zugriff einen FTP Clienten nutzt.
Jetzt versuche ich per PHP script über eine externe website Zugriff auf den Server zu bekommen.
Das scheitert jedoch jedesmal an einem timeout. Da der Zugriff über FileZilla und co ohne Probleme funktioniert und das php-script mit anderen Servern auch klappt, weiß ich nicht mehr weiter.
Das Seltsame ist das über php eine Verbindung zum Server aufgebaut und auch noch in den Passive Mode gewechselt wird.
In der Log der firewall (pfsense) erscheint die Verbindung auch als durchgelassen. Daran wirds also wahrscheinlich auch nicht liegen.
Er läd bloß die files nicht auf den Server.

Fehlermeldung:
Warning: ftp_put() [function.ftp-put]: php_connect_nonb() failed: Connection timed out (110) in /www/htdocs/****/upload.php on line 44

Warning: ftp_put() [function.ftp-put]: TYPE is now 8-bit binary in /www/htdocs/****/upload.php on line 44
Ein Fehler trat beim Hochladen von test.txt auf!

Zeile 44 des scripts:
if (ftp_put($conn_id, $file, $temp, FTP_BINARY)) {

Wie schon gesagt, das Script funzt mit anderen Servern ohne Probleme, der FTP Server mittels Client auch.

Ich schätze es liegt an der config von pure FTP. Aber da hab ich auch schon so ca. alles ausprobiert. Gibts da irgendwas spezielles zu beachten bei Zugriff über php??
Bei Bedarf poste ich das gesamte php script und die pure FTP conf.

Hat jemand Erfahrung mit pure FTP zusammen mit PHP?

Danke schonmal,
racer
 

satha

Benutzer
Mitglied seit
08. Sep 2010
Beiträge
20
Punkte für Reaktionen
0
Punkte
0
Versuch doch erst einmal ftp_nlist() oder so, um zu schauen ob du wirklich mit dem Server korrekt verbunden wurdest. Wenn dem so ist, kann man weiterschauen, woran es liegen könnte - aber so ist das ein bisschen stochern im dunkeln :)
 
Zuletzt bearbeitet:

racer

Benutzer
Mitglied seit
10. Sep 2010
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
servus satha,

ftp_nlist() funzt auch nicht:

<?php
$ftp_server = "123.123.123.123";
$conn_id = ftp_ssl_connect($ftp_server);
$ftp_user_name = "test";
$ftp_user_pass = "xxx";

$conn_id = ftp_connect($ftp_server);
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
if (!$login_result) { echo "Fehler beim Herstellen der Verbindung mit dem Server $ftp_server! <br>"; }
else { echo "Verbindung mit Server $ftp_server hergestellt <br>"; }

if (!ftp_pasv($conn_id, true)) { echo "Es konnte NICHT in den Passive-Mode gewechselt werden! <br>"; }
else { echo "Passive-Mode aktiviert <br>"; }

$contents = ftp_nlist($conn_id, ".");
var_dump($contents);

if (ftp_close($conn_id)) { echo "FTP-Verbindung beendet <br>"; }
else { echo "FTP-Verbindung konnte nicht beendet werden! <br>"; }
?>

Antwort:
Verbindung mit Server 123.123.123.123 hergestellt
Passive-Mode aktiviert

Warning: ftp_nlist() [function.ftp-nlist]: php_connect_nonb() failed: Connection timed out (110) in /www/****/list.php on line 15
bool(false) FTP-Verbindung beendet

Verbindung wird also hergestellt.
Fehlermeldung ist die gleiche wie bei ftp_put()
:(
 

satha

Benutzer
Mitglied seit
08. Sep 2010
Beiträge
20
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich würde mal versuchen ftp_ssl_connect durch ftp_connect zu ersetzen - evtl. gibt es ein Problem bei der SSL/TLS Verbindung.
 

racer

Benutzer
Mitglied seit
10. Sep 2010
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
sorry, die zeile ist zweimal drin. einmal mit und einmal ohne ssl.
hab beide varianten probiert.
daran liegts nicht. verbindung baut er ja auch auf.
er mag bloß die ftp_xxx befehle nicht. auch ftp_get() usw funzt ned.
 

satha

Benutzer
Mitglied seit
08. Sep 2010
Beiträge
20
Punkte für Reaktionen
0
Punkte
0
Er scheint ganz offensichtlich ein Problem damit zu haben eine Verbindung mit dem "Datenübertragungsport" aufzubauen. Hast du mal in die Log von FilaZilla & Co geschaut, wie die Clients das handhaben? Alle Firewalls die im weg sein könnten mal deaktiviert?
 

racer

Benutzer
Mitglied seit
10. Sep 2010
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
jo, genau das wars!
vielen dank für den denkanstoß. ich hab jetzt nochmal genau in die firewall und filezilla log geschaut und bemerkt das er die IP adresse für den passive mode nicht mag welche bei pureFTP in der config steht. da gehört die server adresse rein.

jetzt klappts ohne probleme. super, dank dir!
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat