簡體   English   中英

C# 中的防火牆和 FTP 目錄列表

[英]Firewall and FTP Directory Listing in C#

我正在嘗試獲取 FTP 站點的目錄列表,但在連接和檢索列表時遇到問題。 我相信問題出在 Windows 2008 Server R2 的 windows 防火牆上。 這是代碼:

        try
        {
            // Get the object used to communicate with the server.
            FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://127.0.0.1");
            request.Method = WebRequestMethods.Ftp.ListDirectoryDetails;

            request.UsePassive = false;

            // This example assumes the FTP site uses anonymous logon.
            request.Credentials = new NetworkCredential("user", "pass");
            request.Proxy = HttpWebRequest.DefaultWebProxy;
            FtpWebResponse response = (FtpWebResponse)request.GetResponse();

            Stream responseStream = response.GetResponseStream();
            StreamReader reader = new StreamReader(responseStream);

            Label1.Text = reader.ReadToEnd();

            reader.Close();
            response.Close();
        }
        catch (Exception ex)
        {
            Label1.Text = ex.Message;
        }

我想知道需要打開哪些防火牆設置或端口才能允許此操作發生。 我在端口 21 和 20 上啟用了所有傳入/傳出流量,但這不起作用,因此我允許所有端口的所有傳入/傳出流量,並且有效。 但是,像這樣開放每個端口並不是一個可行的解決方案:)

我不認為這真的適合 StackOverflow,因為這個問題更涉及 Windows Server 2008 R2 的安全配置。 但是,在光,我測試了你的代碼,它工作得很好,所以你需要為所需的 ZC728A49363C9A93A43A7E7F23AZ2B5A54 端口在服務器上的 FTP 訪問創建一個 Windows 防火牆例外。 否則,Windows 防火牆確實會阻止來自客戶端的傳入連接。 如果打開防火牆例外不能解決問題,那么您將需要調查服務器上的其他安全配置問題。

我終於弄明白了。 您需要在 Windows 防火牆中圍繞 w3p 進程創建自定義入站流量規則。 這是一個演練。

在入站流量中創建新規則 Select 自定義

Select “此程序路徑”

找到 w3wp.exe 服務(通常在 Windows\System32 文件夾中)

單擊自定義

Select “僅適用於服務”

將協議類型更改為 TCP

將本地和遠程端口設置為“所有端口”(您可以嘗試將其縮小到僅端口 21,但這並不總是有效,尤其是異步上傳)

Select 本地 IP 地址的任何 IP 地址(或者如果您知道本地 ZA12A3079E14CEDB8A90B21AZ 地址范圍,則為范圍)5BA89A

遠程 IP 地址的 Select “這些 IP 地址”,然后單擊添加。 輸入您將要上傳的 FTP 站點的 IP 地址

添加 FTP IP 地址后單擊確定,然后單擊下一步

Select 允許連接

將規則應用於域、私有和公共

名稱為“允許來自端口 21 的傳入 TCP w3wp.exe 流量”

點擊完成

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM