我需要使用tc qdisc命令来限制由openvpn. 当我手动运行命令时,这很有效,但偶尔会断开或重新启动连接,这似乎会取消或停用以前应用的带宽设置。有没有办法让tc qdisc命令在特定接口上永久应用(或至少在我选择取消它之前),这样在任何时候该接口启动时,我的带宽设置都会应用?我需要像firewall-cmd永久标志这样的东西,使设置保持不变。
我目前使用的命令如下所示:
tc qdisc add dev tun0 tbf rate 1mbit latency...
Run Code Online (Sandbox Code Playgroud)
在哪里tun0创建的接口名称openvpn。
我不确定这是否正是这个问题的正确位置,但没有网络堆栈交换。
我想多次 ping 服务器(例如 10,000+)以收集有关数据包穿越网络所需时间分布的信息。如果我要对像 google.com 这样的网站执行此操作,它是否会占用大量带宽或处理能力(在服务器端),并且他们是否有办法检测到我并可能开始丢弃我的 ping?
我已经坚持了很长时间了。尝试谷歌搜索,找不到我要找的东西。
我只需要添加一个数组中的所有值。(称为数据包的数组)我已经到了可以添加它们的地步,但是当发生这种情况时,无法在脚本中稍后调用数值。
这是整个脚本,非常简单,只是检查与时间(也就是带宽)相比的数据包数据量。
rawdata=`tcpdump -nn -S -r test.pcap | awk '{print $1" "$NF}'`
time="`echo "$rawdata" | sed -r 's/(.{15}).*/\1/'`"
starttime="`echo "$time" | awk 'NR > 1 { exit }; 1'`"
endtime="`echo "$time" | awk 'END{print}'`"
stime=`date --date="$starttime" +%s`
etime=`date --date="$endtime" +%s`
difftime="echo $(($etime - $stime))"
echo $difftime
echo $addedpackets
echo $sum
echo ------------------------------------
packets="`echo "$rawdata" | awk '{print $2}' | sed 's/[^0-9]*//g'`"
echo ------------------------------------
for i in "${packets[*]}"
do
plus=$(printf '%d+' ${i})0
added="echo $(($plus))"
done
echo ------------------------------------
$added
$difftime
bc …Run Code Online (Sandbox Code Playgroud) 我知道我可以top用来查看整体实时 CPU 和内存使用情况,
以及nload整体实时带宽使用情况。
但我希望查看程序运行后的最大(或平均)CPU、内存和带宽使用情况。
就像time my_command在程序时间花费估算中所做的一样。
在 Linux/Unix 中是否有一种简单的方法可以做到这一点?
我在我的 VPS 上运行 CentOS 7,我想限制特定端口上的带宽。我已经广泛环顾四周,在我能找到的解决方案中,要么是对接口的限制,要么是一个模糊描述的 iptable 设置,似乎只在 CentOS 6 上尝试过。
就我而言,我的2.6.8(代理程序)服务器端的监听端口1080,1081和1082上eth0。我想,让1080无限的带宽,但同时限制1081和1082各地1Mbps的到。由于它是一个代理应用程序,因此入站和出站流量大致相等。请注意,它是 Shadowsocks 的单个实例在 3 个端口上侦听,而不是3 个实例每个在 1 个端口上侦听,因此按进程限制带宽不适用。
但除此之外,任何解决方案对我来说都摆在桌面上,无论是 CentOS 开箱即用的支持,还是某种中间监控层。只要它完成工作,我就愿意接受。
提前致谢。
bandwidth ×5
networking ×2
array ×1
centos ×1
cpu ×1
ip ×1
limit ×1
math ×1
memory ×1
monitoring ×1
openvpn ×1
ping ×1
port ×1
shell-script ×1
tc ×1