首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#防火墙禁止将文件上传到远程FTP

C#防火墙禁止将文件上传到远程FTP
EN

Stack Overflow用户
提问于 2017-06-22 15:38:14
回答 3查看 1K关注 0票数 0

我使用C# FtpClient库上传文件。连接是在我设置自定义端口3072之后建立的,因为我设置了client.SslProtocols = System.Security.Authentication.SslProtocols.Tls12

但当我要经历

代码语言:javascript
复制
client.GetFilePermissions("/Test.txt");
client.UploadFile(@"C:\Users\Desktop\Test.txt", "/Test.txt");

它将始终显示异常。

无法从传输连接读取数据:试图以其访问权限禁止的方式访问套接字。

如果我关闭Windows防火墙,文件可以成功上传。

我想知道我应该在Windows防火墙上设置什么策略来允许我触摸远程文件并上传它。

当前我的防火墙设置:

  • (入境) 当地港口3072,80,20,21,1023 远程端口3072,80,20,21,1023
  • (出站) 当地港口3072,80,20,21,1023 远程端口3072,80,20,21,1023

我的完整代码

代码语言:javascript
复制
FtpClient client = new FtpClient();
client.Host = "xx.xx.xx.xx";
client.Credentials = new NetworkCredential(UserName, Password);
client.SslProtocols = System.Security.Authentication.SslProtocols.Tls12;

client.Connect();
if (client.IsConnected)
{
    Console.WriteLine("Connected");
    client.DataConnectionEncryption = true;
    var resutl = client.GetFilePermissions("/Test.txt");
    client.UploadFile(@"C:\Users\Desktop\Test.txt", "/Test.txt");
}
else
{
    Console.WriteLine("No Connetion");
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-07-17 07:34:02

  • 打开管理员命令提示符。单击“开始”,单击“所有程序”,单击“附件”,右键单击“命令提示符”,然后单击“以管理员身份运行”。
  • 运行以下命令:

1.netsh高级防火墙防火墙添加规则name=“FTP服务”action=allow service=ftpsvc protocol=TCP dir=in 2.netsh高级防火墙设置全局StatefulFTP禁用

https://technet.microsoft.com/en-us/library/dd421710(v=WS.10).aspx

票数 0
EN

Stack Overflow用户

发布于 2017-06-23 07:36:07

如果确实阻塞了所有的外部/入站端口,除了列出的端口外,FTP很难工作。

FTP协议使用单独的传输连接端口范围,无论是出站(推荐被动模式)还是入站(主动模式)。

要设置被动模式,必须了解FTP服务器使用的端口范围,并在防火墙中启用该端口范围。

有关详细信息,请参阅我关于FTP协议的网络设置的文章。

票数 0
EN

Stack Overflow用户

发布于 2017-06-22 15:45:18

它是被动FTP服务器吗?如果是这样,您可能需要打开如下所解释的端口范围:

https://technet.microsoft.com/en-us/library/083f7757-ad9f-421a-9cde-7a053f3de9a6

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44703888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档