web-dev-qa-db-ger.com

So richten Sie FTP in Azure ein VM

Ich benötige Hilfe beim Einrichten von FTP auf meiner Azure VM - Instanz.

VM ist Windows Server 2012 R2. Ich habe die Webserverrolle eingerichtet und eine FTP-Site in IIS erstellt. Ich habe bestätigt, dass ich mit auf den FTP-Server zugreifen kann

ftp command: open localhost

Ich habe auch einen FTP-Endpunkt für VM im Azure Portal konfiguriert, der für den Standardport 21 konfiguriert ist.

Zuletzt habe ich eine Firewall-Regel erstellt, um den gesamten Verkehr von/nach Port 21 zuzulassen.

Wenn ich jetzt versuche, von meinem Heimcomputer aus auf einen FTP-Server zuzugreifen, wird der öffentliche DNS-Name des Servers in die richtige IP-Adresse und den richtigen Port aufgelöst, es kann jedoch keine Verbindung hergestellt werden.

Vermisse ich irgendwo einen Konfigurationsschritt?

Vielen Dank

40
ChiliYago

Ab Juli 2012 gibt es eine großartige Lösung. " Hosting von FTP auf IIS 7.5 in einer Windows Azure-VM " von Ronald WildenbergDavids Antwort . Dies sind die Phasen, die er durchläuft:

  1. Zunächst benötigen Sie eine virtuelle Maschine. Ich benötigte einen Windows-Computer mit einer SQL Server-Datenbank und wählte aus den verfügbaren Vorlagen "Microsoft SQL Server 2012 Evaluation Edition".
  2. Nachdem der Computer gestartet wurde, können Sie über die Verbindungsoption unten im Verwaltungsportal RDP ausführen.
  3. Wenn Sie angemeldet sind, müssen Sie IIS konfigurieren. Eine Zusammenfassung der erforderlichen Schritte:
    • Fügen Sie dem Server die Rolle "Webserver (IIS)" hinzu.
    • Fügen Sie die IIS benötigten Funktionen hinzu.
    • Fügen Sie einen TCP Endpunkt zu Ihrem VM im Verwaltungsportal mit öffentlichem und privatem Port 80 hinzu.
  4. Stellen Sie zum Aktivieren von FTP sicher, dass Sie die Rollendienste "FTP-Server" für Ihre IIS Rolle aktivieren:
  5. Im nächsten Schritt erstellen Sie die eigentliche FTP-Site in IIS. Klicken Sie in IIS Manager mit der rechten Maustaste auf "Sites" und wählen Sie "FTP-Site hinzufügen ...".
  6. Geben Sie den Namen und den lokalen Pfad für die Site an:
  7. Geben Sie Bindungs- und SSL-Informationen an:
  8. Und schließlich legen Sie fest, wer Zugriff auf die FTP-Site haben soll.
  9. Sie sollten nun in der Lage sein, von der VM aus auf die FTP-Site zuzugreifen. Öffnen Sie eine Eingabeaufforderung, geben Sie ftp 127.0.0.1 Ein und melden Sie sich an
  10. Für aktives FTP müssen Sie den Zugriff auf die Ports 21 (FTP-Befehlsport) und 20 (FTP-Datenport) zulassen, damit Sie Ihrer VM zwei Endpunkte hinzufügen können
  11. passives FTP konfigurieren. Damit dies funktioniert, müssen wir dem IIS FTP-Server den Portbereich mitteilen, den er für Datenverbindungen verwenden kann, und wir müssen dem VM) Endpunkte hinzufügen entsprechen diesem Portbereich.
  12. konfigurieren Sie den Portbereich und die externe IP-Adresse für passive Datenverbindungen. Dies kann in IIS Manager gefunden werden
  13. Die externe IP-Adresse sollte die virtuelle IP-Adresse sein, die Sie im Azure Management-Portal finden.
  14. Wenn Sie den Datenkanal-Portbereich im IIS= Manager nicht angeben können, verwenden Sie das Dienstprogramm appcmd, das sich in %windir%\system32\inetsrv Befindet: appcmd set config /section:system.ftpServer/firewallSupport /lowDataChannelPort:7000 /highDataChannelPort:7014
  15. Sie könnten alle 15 neuen Endpunkte im Azure-Portal angeben, dies würde jedoch einige Zeit in Anspruch nehmen. Verwenden Sie daher die Windows Azure Powershell-Cmdlets .
  16. laden Sie die Datei mit den Veröffentlichungseinstellungen herunter. Eine Möglichkeit besteht darin, Windows Azure Powershell zu starten und das Cmdlet "Get-AzurePublishSettingsFile" zu verwenden. Es öffnet einen Browser und ermöglicht Ihnen das Herunterladen der Veröffentlichungseinstellungsdatei, die Ihrer Windows Live ID entspricht.
  17. Nachdem Sie die Veröffentlichungseinstellungsdatei heruntergeladen haben, können Sie sie mit dem Cmdlet "Import-AzurePublishSettingsFile" importieren. Nun können Sie mit dem Hinzufügen von Endpunkten beginnen.
  18. Ich habe einfach eine Textdatei mit der Liste der Befehle erstellt, die ich ausführen wollte, und diese in das Powershell-Fenster kopiert: Get-AzureVM -ServiceName 'myServiceName' -Name 'ftpportal' | Add-AzureEndpoint -Name 'FTPPassive00' -Protocol 'TCP' -LocalPort 7000 -PublicPort 7000 | Update-AzureVM Wobei 'myServiceName' der Name meines Cloud-Dienstes und 'ftpportal' der Name meines virtuellen Dienstes ist Maschine.
  19. Obwohl die Windows-Firewall allen erforderlichen Datenverkehr zuzulassen scheint, müssen Sie auch die statusbezogene FTP-Filterung in der Firewall aktivieren: netsh advfirewall set global StatefulFtp enable
  20. starten Sie den FTP-Windows-Dienst neu und wir sollten in Betrieb sein:
    • net stop ftpsvc
    • net start ftpsvc

Es lohnt sich, diese Schritte zu befolgen im Originalartikel nicht zuletzt, weil er nützliche Screenshots für jeden Schritt enthält, aber ich dachte, es lohnt sich, hier ausführlich zu zitieren, nur für den Fall. Der Artikel erwähnt auch Active FTP vs. Passive FTP, eine definitive Erklärung als lesenswert.

Es wäre großartig, wenn ich melden könnte, dass Ihr Azure VM basierter FTP-Server funktioniert und verfügbar ist. Leider die obigen Schritte haben das Problem nicht behoben :-(

62
dumbledad

Wenn es Ihnen nichts ausmacht, FileZilla FTP Server zu verwenden,

Folgendes habe ich getan, um eine FTP-Verbindung zu meiner VM herzustellen.

1. Go to Azure VM (manage.windowsazure.com), and add 2 endpoints:
    1. Name: FTP (Protocol TCP, Public Port 21, Private Port 21)
    2. Name: FTP Passive (Protocol TCP, Public Port 60000, Private Port 60000)
2. Go back to VM (via RDP), Open connection for port 21, and 60000 on Windows Firewall inbound rule.
3. Download and open FileZilla Server.
4. Click Edit -> Users and add user and shared directory as needed.
5. Click Edit -> Settings. On the sidebar click Passive Mode Settings.
6. Check "use custom port range" and enter 60000 - 60000
7. On ip4specific part, select radio button "use the following ip", and enter your xxxx.cloudapp.net.
8. Save, and run the server. That's it, you can now connect to FTP from outside of VM.

Hoffe es hilft jemandem.

Prost

8
dexcell

Nachdem ich mich eine Weile mit der 15-Punkte-Liste herumgeschlagen hatte, bekam ich die Nachricht, dass MS versucht zu übergeben - "Kein (einfaches) FTP für Sie" ...

Also bin ich zurück in die gute alte und offene Linux-Welt gegangen - mit Cygwin einen SCP-Server einrichten. Sie erhalten sogar eine Remote-Shell als Bonus ...

1) Führen Sie das Cygwin-Installationsprogramm aus - https://cygwin.com/setup-x86.exe

2) Suchen Sie unter "Pakete auswählen" nach

  • cygrunsrv (wählen Sie den unter 'Admin')
  • openssh (wählen Sie den unter 'Net)

3) Starten Sie anschließend das Cygwin-Terminal und geben Sie Folgendes ein:

  • ssh-Host-config -y -pwd S0me-Str0ng-pa55w0rd

  • cygrunsrv -S sshd

4) Fügen Sie in Azure VM einen SSH-Endpunkt hinzu

5) Fügen Sie in Windows FireWall die Eingangsregel für TCP Port 22 hinzu

Und Viola - Sie können sich natürlich mit WinSCP, Notepad ++ und PuTTY verbinden ...

Anmerkungen:

  • Bei Unix wird zwischen Groß- und Kleinschreibung unterschieden. Geben Sie daher Ihren Benutzer genau ein, z. Administrator mit Kapital A
  • Ihre Laufwerke befinden sich unter/cygdrive (c:\befindet sich unter/cygdrive/c usw.)

Viel Glück!

3
Zeev Kotzer

Sie müssen einen zusätzlichen Portbereich hinzufügen, den der FTP-Server für jede FTP-Verbindung auswählt.

Sie müssen eine Reihe von Eingabeendpunkten erstellen, die jeweils einen der Ports im angegebenen Portbereich darstellen. Beachten Sie, dass Sie eine begrenzte Anzahl von Eingabeendpunkten haben (die genaue Anzahl ist nicht bekannt, Sie sollten jedoch problemlos in der Lage sein, beispielsweise 50 Eingabeendpunkte in benachbarten Ports zu öffnen). Richten Sie dann einfach den FTP-Server so ein, dass er denselben Bereich verwendet. Außerdem möchten Sie den öffentlichen Port des Eingabeendpunkts derselben privaten Portnummer zuordnen, da sonst keine ordnungsgemäßen Verbindungen hergestellt werden.

1
David Makogon

Der Link in dumbledads Antwort ist derzeit nicht verfügbar. Ich hatte immer noch Probleme beim Ausführen von passivem FTP auf einem neuen Azure VM nachdem ich die dortigen Schritte ausgeführt hatte.

Nach einigem Suchen fand ich diesen Erstellungsartikel Passives FTP und dynamische Ports . Es ist eine großartige exemplarische Vorgehensweise und bietet ein einfaches Skript, mit dem Sie in einer Minute VM) FTP einrichten können. Wenn Sie mehrere VMs einrichten, können Sie FTP mit dem Skript viel schneller einrichten Zugreifen statt manuelles Konfigurieren von IIS und Azure-Endpunkten.

1
deadlytoes