我们在远程服务器上托管一个应用程序。我们需要在有限的网络带宽下对其进行测试(对于 Internet 访问不佳的用户)。
我可以限制我的互联网带宽吗?例如:每秒 128 KB。
此问题侧重于 Linux 上的系统范围或容器范围的解决方案。有关特定于进程或会话的解决方案,请参阅限制特定 shell 的 Internet 带宽使用。
我已经阅读了很多次关于Linux 的令牌桶过滤器 (tbf) 的内容,但我仍然不完全理解我应该如何计算burst
和latency
参数,我很惭愧:(
我认为合理的延迟约为 50 毫秒。好的,但是 burst 应该取什么值?
手册页说:
后一种计算考虑了存储桶的大小、速率以及可能的峰值速率(如果设置)。这两个参数是互斥的。
那么,延迟与存储桶和过滤器有何关系?有计算公式吗?或者仅仅是“好吧,X 字节的突发和 Y 秒的延迟对我有好处”?
我有一个网络拓扑:
Server <-> router1 <-> router2 <-> router3 <-> edgeRouter <-> "internet"
Run Code Online (Sandbox Code Playgroud)
所有路由器都基于linux,并支持iptables。
服务器使用 iptables ( --set class X:Y
)设置流量类,路由器根据设置的类进行一些“路由”。(类取决于原始应用程序)。
边缘路由器通过我们的 ISP 将数据包转发到互联网,并接收返回(回复)数据包。收到的回复当然没有设置流量类。
是否可以iptables
在边缘路由器(mangle 或类似的东西)上使用规则来跟踪返回数据包(NAT 样式,来自“ESTABLISHED”连接的数据包)并将返回的数据包标记为与原始数据包具有相同的流量类别包?在边缘路由器上启用 NAT 不是问题。
TLDR:如何使用 iptables 对同一连接的与出口具有相同类的入口数据包进行分类。
在我的笔记本电脑上,当我运行任何下载、种子文件等时,浏览会瘫痪。
我在某处读到你可以配置你的iptables路由器来优先考虑某些网络流量。
我可以在我的电脑上为所有网络流量做同样的事情吗?我想按以下顺序对数据包进行优先级排序:
Microsoft 的后台智能传输服务 (BITS) 的实现是否可用于 Linux 系统?
我正在研究通过 Internet 将大文件传输到远程 Linux 服务器的选项,我不希望它占用我所有(有限!)上游带宽。
我过去曾在 Windows 系统上成功使用过 BITS,但这次我需要在 Linux 服务器之间进行传输。
如果它有任何区别,两个系统都可能运行基于 Ubuntu 的系统,尽管理想情况下我想要一个独立于发行版的解决方案。
我启动了一个使用涓流作为限制的程序trickle -d 10 -u 5 program
。现在我想将节流速度更改为-d 50 -u 40
. 如何在不关闭程序的情况下更改它?
tricklectl
听起来不错,但我不能使用它。在手册中他们说它很快就会准备好,但我看不到过去 10 年的任何发展。所以我认为应该有其他人做到了。我也对编辑 .c 代码感兴趣,但我对 C 知之甚少。
我发现沿着 tc 有用的 run watch,例如:
[root@router ~]# watch -dc tc -p -s -d qdisc show dev eth0
Every 2,0s: tc -p -s -d qdisc show dev eth0 Sat Oct 19 21:22:26 2013
qdisc prio 1: root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
Sent 130714882 bytes 1107132 pkt (dropped 20379, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
qdisc sfq 30: parent …
Run Code Online (Sandbox Code Playgroud) 根据Linux 高级路由和流量控制 HOWTO 的这一部分,我无法tc
限制计算机的网络速度。
路由器是摩托罗拉 SurfBoard 调制解调器,具有一些路由功能和防火墙。我想限制流量的机器是192.168.0.5,脚本也是从192.168.0.5运行的。
这是我对上面链接中的命令的改编/etc/NetworkManager/dispatcher.d/
:
#!/bin/sh -eu
# clear any previous queuing disciplines (qdisc)
tc qdisc del dev wlan0 root 2>/dev/null ||:
# add a cbq qdisc; see `man tc-cbq' for details
if [ $2 = up ]; then
# set to a 3mbit interface for more precise calculations
tc qdisc add dev wlan0 root handle 1: cbq avpkt 1000 \
bandwidth 3mbit
# leave 30KB (240kbps) …
Run Code Online (Sandbox Code Playgroud) 我们有一个带有 OpenWRT 10.03 的 WRT160NL 路由器和一个 60-70 Mbit 的连接(来自 ISP,不要问为什么)。这个路由器可以在以太网上做 30-35 Mbit(我的意思是电缆)..好的!
有大约 7 台 PC 使用此无线路由器,6 台通过 wifi(wep,因为速度..:\),1 台使用电缆。
问题:我们如何限制 P2P/torrent 流量,使其具有非常非常非常低的优先级?我的意思是,如果有人从 torrent 下载,速度会越来越快,例如:~0,5 Mbit/sec 等。
无需重新编译(我只想使用“库存”包)我是否有机会做到这一点?如何?
最大连接限制?如何?
拓扑:ISP -> WRT160NL -> 7 个客户端 (NAT, 192.168.1.0/24)..
我不想完全“禁用”P2P/torrent 流量,我只是想减慢它们的速度,因此即使有几个人使用网络,网络也可以使用,例如:其中一个正在下载 st。过洪流。但是如果只是例如:1个人正在使用网络,则允许他使用所有带宽而不限制P2P。
我有一个树莓派,我想在上面运行比特币。这有时会消耗我的大量传出带宽,因此我想确保它不会使用超过 20 KB/s 的比特币数据。
比特币协议使用端口 8333 进行连接,因此我认为只要查看源端口或目标端口是否等于 8333,就可以轻松识别连接。
在 Linux 上,哪一组命令将确保进出端口 8333 的数据不会超过 20 KB/s?
qos ×10
bandwidth ×4
linux ×4
networking ×3
tc ×3
iptables ×2
bittorrent ×1
firewall ×1
openwrt ×1
remote ×1