序言:这不是一个重复的问题。关于这个主题有很多问题和答案,但我还没有找到一个处理入站流量并提供合理答案的问题和答案。说了这么多:
我有一个 Windows 2019 服务器,它主要用作文件服务器,通过普通 Windows 共享 (SMB) 向客户端提供数据。我也在那里安装了 SSH 服务器。定期(例如 5 分钟),运行在其他机器上的脚本通过 SSH 登录到该服务器以执行检查和管理任务。
当我将非常大的文件(例如 50 GB)复制到该服务器上的共享(即通过 SMB)时,来自其他计算机的脚本通常会失败,因为通过 SSH 连接超时。原因原来是 SMB 流量占用了服务器的整个网络带宽,没有为其他网络连接留下任何东西。
所以我想限制该服务器上的入站SMB 流量速率。如上所述,我找到了一些关于如何限制出站流量速率的好文章(例如http://woshub.com/limit-network-file-transfer-speed-windows/是对更简单方法的一个很好的总结),但这在这里没有帮助。
我能找到的关于入站流量速率的唯一提示是“基于策略的 QoS”的“高级 QoS 设置”,然后是“指定入站 TCP 吞吐量级别”。这不是我的问题的解决方案,因为 a)它适用于所有 TCP 流量(而我只希望限制入站 SMB 流量),并且 b)它只调整网络堆栈的一个参数(如果我没记错,接收窗口大小) ,我不知道那个参数和最大流量速率之间的关系。
我遇到的所有 Powershell 命令也只与出站流量有关。
谁能告诉我一个起点?
我同意 Windows 仅针对出站连接或入站 TCP(但不是 SMB)进行流量整形。
您将需要在路由器中进行 QoS 流量整形,这可能需要获得适当的高级路由器。