序言:这不是一个重复的问题。关于这个问题有很多问题和答案,但我还没有找到一个与入站交通并提供了合理的答案。话虽如此:
我有一台 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 命令也仅与出站流量有关。
有人能告诉我一个起点吗?
答案1
我同意 Windows 仅针对出站连接或入站 TCP(但不针对 SMB)进行流量整形。
您将需要在路由器中执行 QoS 流量整形,这可能需要获得适当先进的路由器。