2013-08-24 117 views
35

Tôi cần trợ giúp thiết lập FTP trên Phiên bản máy ảo Azure của tôi.Cách thiết lập FTP trên Azure VM

Máy ảo là Win Server 2012 R2. Tôi đã thiết lập Web Server Role và tạo một FTP site trong IIS. Tôi đã xác nhận rằng tôi có thể truy cập vào máy chủ FTP với

ftp command: open localhost 

Tôi cũng đã cấu hình một điểm kết thúc FTP cho VM trên Cổng thông tin Azure cấu hình cho cổng chuẩn 21.

Cuối cùng, tôi đã mở tạo quy tắc tường lửa để cho phép tất cả lưu lượng truy cập vào/ra khỏi cổng 21.

Bây giờ khi tôi thử FTP từ máy chủ của mình, tôi có thể thấy tên máy chủ công cộng đang phân giải thành IP và cổng thích hợp nhưng không có kết nối nào được thực hiện.

Tôi có thiếu bước cấu hình ở đâu đó không?

Cảm ơn

+0

Bạn có làm việc này không? Tôi gặp sự cố tương tự http://superuser.com/q/643115/166855 – dumbledad

Trả lời

54

Có hướng dẫn tuyệt vời từ tháng 7 năm 2012 'Hosting FTP on IIS 7.5 in a Windows Azure VM' bởi Ronald Wildenberg về việc này. Ông vang vọng David's answer. Đây là các giai đoạn anh ấy trải qua:

  1. Trước hết, bạn cần một máy ảo. Tôi cần một máy Windows với một cơ sở dữ liệu SQL Server vì vậy tôi đã chọn 'Microsoft SQL Server 2012 phiên bản đánh giá' từ các mẫu có sẵn.
  2. Khi máy đã khởi động, bạn có thể RDP vào nó thông qua tùy chọn kết nối ở dưới cùng của cổng quản lý.
  3. Khi bạn tham gia, bạn cần định cấu hình IIS. Bản tóm tắt các bước được yêu cầu:
    • Thêm vai trò 'Máy chủ Web (IIS)' vào máy chủ.
    • Thêm các tính năng IIS bạn cần.
    • Thêm một endpoint TCP để VM của bạn trong cổng quản lý với cổng công cộng và tư nhân 80.
  4. Để kích hoạt FTP, hãy chắc chắn bạn kích hoạt dịch vụ vai trò của FTP Server 'cho IIS vai trò của bạn:
  5. Bước tiếp theo là tạo trang FTP thực tế trong IIS. Nhấp chuột phải vào 'trang web trong IIS Manager và chọn 'Add FTP Site ...'
  6. Chỉ định tên và đường dẫn địa phương cho trang web:
  7. Xác định thông tin ràng buộc và SSL:
  8. Và cuối cùng chỉ định người nên có truy cập vào trang FTP.
  9. Bây giờ bạn có thể truy cập trang FTP từ bên trong VM.Mở dấu nhắc lệnh, nhập ftp 127.0.0.1 và đăng nhập
  10. Đối với FTP hoạt động, bạn cần cho phép truy cập vào cổng 21 (cổng lệnh FTP) và 20 (cổng dữ liệu FTP), do đó bạn cần thêm hai điểm cuối vào máy ảo
  11. của mình để định cấu hình FTP thụ động. Để làm việc này, chúng ta cần nói với máy chủ IIS FTP phạm vi cổng mà nó có thể sử dụng cho các kết nối dữ liệu và chúng ta cần thêm các điểm cuối vào VM tương ứng với phạm vi cổng này.
  12. định cấu hình phạm vi cổng và địa chỉ IP bên ngoài cho các kết nối dữ liệu thụ động. Điều này có thể được tìm thấy trong IIS Manager
  13. Địa chỉ IP bên ngoài phải là địa chỉ IP ảo mà bạn có thể tìm thấy trong cổng quản lý Azure.
  14. Nếu bạn không thể xác định phạm vi kênh dữ liệu cổng trong IIS Manager sử dụng tiện ích appcmd, có thể được tìm thấy trong %windir%\system32\inetsrv: appcmd set config /section:system.ftpServer/firewallSupport /lowDataChannelPort:7000 /highDataChannelPort:7014
  15. Bạn có thể chỉ định tất cả 15 điểm cuối mới trong cổng Azure nhưng điều đó sẽ tốn thời gian dài để sử dụng số Windows Azure Powershell cmdlets.
  16. tải xuống tệp cài đặt xuất bản. Một cách là khởi động Windows Azure Powershell và sử dụng lệnh ghép ngắn 'Get-AzurePublishSettingsFile'. Nó sẽ mở trình duyệt và cho phép bạn tải xuống tệp cài đặt xuất bản tương ứng với id Windows Live của bạn.
  17. Khi bạn đã tải xuống tệp cài đặt xuất bản, bạn có thể nhập tệp bằng cách sử dụng lệnh ghép ngắn 'Import-AzurePublishSettingsFile' và chúng tôi sẵn sàng bắt đầu thêm điểm cuối.
  18. Tôi chỉ cần tạo một tệp văn bản chứa danh sách các lệnh mà tôi muốn chạy và sao chép vào cửa sổ Powershell: Get-AzureVM -ServiceName 'myServiceName' -Name 'ftpportal' | Add-AzureEndpoint -Name 'FTPPassive00' -Protocol 'TCP' -LocalPort 7000 -PublicPort 7000 | Update-AzureVM trong đó 'myServiceName' là tên dịch vụ đám mây của tôi và 'ftpportal' là tên máy ảo của tôi.
  19. Mặc dù các bức tường lửa của Windows dường như cho phép tất cả lưu lượng đó là cần thiết, bạn cũng cần phải kích hoạt lọc FTP stateful trên tường lửa: netsh advfirewall set global StatefulFtp enable
  20. khởi động lại dịch vụ FTP Windows và chúng ta nên lên và chạy:
    • net stop ftpsvc
    • net start ftpsvc

Nó có giá trị theo các bước sau 0.123.không kém phần quan trọng vì anh ấy bao gồm các ảnh chụp màn hình hữu ích cho mỗi bước, nhưng tôi nghĩ nó đáng được trích dẫn rộng rãi ở đây chỉ trong trường hợp. Bài viết cũng đề cập đến số Active FTP vs. Passive FTP, a Definitive Explanation đáng đọc.

Sẽ thật tuyệt nếu tôi có thể báo cáo rằng sau khi làm theo các bước này máy chủ FTP dựa trên Azure VM của bạn sẽ hoạt động và có thể truy cập được. Nhưng tiếc là the steps above did not fix it for me :-(

+0

Các bước này vẫn hợp lệ kể từ tháng 9 '14. Là một nhà thầu, tôi đã trải qua các bước này nhiều lần trong vài năm qua cho các công ty khác nhau. Bất kể môi trường cục bộ nào, vấn đề luôn là vấn đề là Filezilla và IIS. Theo kinh nghiệm của tôi, nó hiếm khi hoạt động. Tôi đọc một bài viết của tác giả Filezilla, người tuyên bố đó là lỗi của MS do cách không chuẩn mà họ đã thực hiện giao thức và anh ta sẽ không thay đổi mã Filezilla để sửa lỗi MS. Vì vậy, trong ngắn hạn nếu bạn đang sử dụng Filezilla (mà tôi yêu) và vẫn gặp vấn đề thử một khách hàng ftp khác nhau. – rism

+0

Tôi cũng nên thêm rằng nếu bạn gặp lỗi 530 thông báo khi đăng nhập, hãy nhớ kiểm tra Xác thực FTP trong Trình quản lý IIS. Nếu bạn yêu cầu tên người dùng và mật khẩu thì bạn sẽ muốn bật xác thực cơ bản (ít nhất) được tắt theo mặc định. – rism

+0

Tôi cũng muốn nhấn mạnh rằng TLS/SSL nên được thực thi (mặc định là may mắn cho IIS ngày nay). Nhưng để cho phép StatefulFtp thực sự phản tác dụng vì bộ lọc stateful sẽ không hoạt động với TLS và tôi đã nhìn thấy các báo cáo rằng nó thực sự phá vỡ nó (tôi đã không tự kiểm tra nó). Dù sao, nó chắc chắn không phải được kích hoạt, ngay cả đối với các kết nối không được mã hóa. –

1

Bạn cần thêm một dải cổng bổ sung mà máy chủ FTP sẽ chọn cho mỗi kết nối ftp.

Bạn sẽ cần phải tạo một loạt các điểm cuối đầu vào, mỗi đại diện cho một trong các cổng trong phạm vi cổng được chỉ định. Lưu ý rằng bạn có một số giới hạn đầu vào đầu vào (không chắc chắn về số chính xác, nhưng bạn có thể dễ dàng mở được, ví dụ, 50 điểm cuối đầu vào trong các cổng tiếp giáp). Sau đó, chỉ cần thiết lập máy chủ FTP để sử dụng cùng phạm vi đó. Ngoài ra, bạn sẽ muốn ánh xạ cổng công cộng điểm đầu vào vào cùng một số cổng riêng, nếu không kết nối sẽ không được tạo đúng cách.

+0

nghe hay. Tôi không chắc chắn làm thế nào để thiết lập rất nhiều điểm kết thúc một cách hiệu quả mặc dù. Có vẻ như cổng thông tin cho phép chỉ có một tại một thời điểm đó là rất nhiều cấu hình. Có cách nào để thiết lập tất cả các cổng cùng một lúc không? – ChiliYago

+1

Điều này rất dễ dàng với PowerShell hoặc CLI. Tải xuống lệnh ghép ngắn Azure PowerShell và kiểm tra 'Add-AzureEndpoint'. –

1

Liên kết trong dumbledad's answer hiện chưa có. Tôi vẫn còn có những vấn đề nhận được FTP thụ động chạy trên một Azure VM mới sau khi làm theo các bước đó.

Sau một chút tìm kiếm, tôi tìm thấy Điều này tạo ra bài viết Passive FTP and dynamic ports. Đây là một hướng dẫn tuyệt vời và cung cấp một kịch bản lệnh đơn giản để chạy từ máy ảo của bạn để có được FTP và chạy trong một phút. cấu hình các điểm cuối IIS và Azure

3

Sau khi straggling một lúc với danh sách 15 điểm ở trên, tôi nhận được thông báo MS cố gắng vượt qua - "Không (dễ) FTP cho bạn" ...

Vì vậy, tôi đã quay lại thế giới Linux cũ & mở - thiết lập máy chủ SCP bằng Cygwin. Bạn thậm chí có được một vỏ từ xa như một phần thưởng ...

1) Chạy trình cài đặt Cygwin - https://cygwin.com/setup-x86.exe

2) Trong 'Chọn gói' tìm kiếm

  • cygrunsrv (chọn một dưới 'quản trị')
  • openssh (chọn một mục 'Net)

3) Khi hoàn tất, khởi động Cygwin Terminal, và gõ:

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

  • cygrunsrv -S sshd

4) Từ Azure VM thêm một thiết bị đầu cuối SSH

5) Trong Windows FireWall, thêm Quy tắc vào cho cổng TCP 22

Và viola - bạn có thể kết nối bằng WinSCP, Notepad + + Và Putty tất nhiên ...

Ghi chú:

  • Unix là trường hợp nhạy cảm, vì vậy người sử dụng gõ của bạn trong trường hợp chính xác, ví dụ Quản trị viên có vốn đầu Một
  • ổ đĩa của bạn đang được/cygdrive (c: \ là/cygdrive/c vv)

Chúc may mắn!

7

Nếu bạn không ngại khi sử dụng FileZilla FTP Server,

Đây là những gì tôi đã làm, để cho phép kết nối FTP với máy ảo của tôi.

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. 

Hy vọng nó sẽ giúp ai đó.

Chúc mừng

+0

chỉ cần lưu ý rằng đối với điểm cuối FTP thụ động, bạn phải chọn dịch vụ "tùy chỉnh" để cho phép phạm vi cổng tùy ý (ví dụ 60000 trong ví dụ này) – mosheb