PHP FTP Server hinter NAT

Problem: Server welche sich hinter einem NAT befinden, sind mit der eigenen IP-Adresse nach außen nicht erreichbar. Entsprechend können über die Server-IP keine FTP-Operationen ausgeführt werden. Die Lösung liegt darin, über die öffentliche Serveradresse zu kommunizieren. Das heißt, dem PHP zu sagen, dass es nicht die Adresse nutzen soll welche der Server versucht zu vermitteln, sondern die mit der sich ursprünglich verbunden wurde. Das erreicht man über folgende FTP-Option:

ftp_set_option($this->connection, FTP_USEPASVADDRESS, false);

Danach setzt man noch den Passiven Modus

ftp_pasv($this->connection, true);

fertig!

Quellen:

https://serverfault.com/questions/797928/php-ftp-passive-ftp-server-behind-nat

http://www.elitehosts.com/blog/php-ftp-passive-ftp-server-behind-nat-nightmare/