V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  huangzhiyia  ›  全部回复第 8 页 / 共 18 页
回复总数  357
1 ... 4  5  6  7  8  9  10  11  12  13 ... 18  
2024-07-23 21:48:37 +08:00
回复了 Ansen 创建的主题 Linux 请教一下如何优雅的使用 TC 对大量的 IP 限速
@Ansen

#!/bin/sh -e


# 清除现有的 qdisc
tc qdisc del dev ens33 root
tc qdisc del dev ens33 ingress

# 配置上传( egress )限速
tc qdisc add dev ens33 root handle 1: htb default 30
tc class add dev ens33 parent 1: classid 1:1 htb rate 10000kbit burst 15k

# 限制特定 IP 地址的上传
tc class add dev ens33 parent 1:1 classid 1:10 htb rate 10000kbit
tc filter add dev ens33 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.102.134 flowid 1:10

tc class add dev ens33 parent 1:1 classid 1:20 htb rate 10000kbit
tc filter add dev ens33 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.102.135 flowid 1:20

# 限制所有 IP 地址的上传
tc class add dev ens33 parent 1:1 classid 1:30 htb rate 10000kbit
tc filter add dev ens33 protocol ip parent 1:0 prio 2 u32 match ip dst 0.0.0.0/0 flowid 1:30

# 配置下载( ingress )限速
tc qdisc add dev ens33 handle ffff: ingress

# 限制特定 IP 地址的下载
tc filter add dev ens33 parent ffff: protocol ip prio 1 u32 match ip src 192.168.102.134 police rate 10000kbit burst 10k drop flowid :1
tc filter add dev ens33 parent ffff: protocol ip prio 1 u32 match ip src 192.168.102.135 police rate 10000kbit burst 10k drop flowid :1

# 限制所有 IP 地址的下载
tc filter add dev ens33 parent ffff: protocol ip prio 2 u32 match ip src 0.0.0.0/0 police rate 10000kbit burst 10k drop flowid :1

exit 0
2024-07-23 17:06:36 +08:00
回复了 Ansen 创建的主题 Linux 请教一下如何优雅的使用 TC 对大量的 IP 限速
tc qdisc del dev $1 root
tc qdisc add dev $1 root handle 1: htb default 20
tc class add dev $1 parent 1:0 classid 1:1 htb rate 10mbit burst 1000mbit
tc qdisc add dev $1 parent 1:1 handle 10: sfq
tc filter add dev $1 parent 1: protocol ip prio 16 u32 match ip dst 0.0.0.0/0 flowid 1:1

直接对所有 IP 进行限速,速率为 10mbit 突发 1000mbit ,连空闲宽带都不想给,就把突发也改成 10 mbit 即可。
2024-07-18 18:50:33 +08:00
回复了 Features 创建的主题 Amazon Web Services 有 V 友在使用 Amazon CloudFront 加速服务吗?
配合 AWS WAF
2024-07-08 08:44:07 +08:00
回复了 LonnyWong 创建的主题 推广 在升级到 go1.21 与兼容 Win7 之间,你会如何选择?
1. 不会即时跟上,起码半年后再更新。
2. 旧系统用户给钱了吗?不给不更新,愿意给钱的用户大概率有钱换新电脑了,剩下用不被支持的系统的愿意给钱的用户,那几个钱需要考虑是否值得有精力去维护?

对待那些始终使用旧系统的群体,最好的办法就是出一个公告,上游 xxx 不再支持 xx 系统,然后说没有那么精力维护 xx 系统,但是考虑部分用户的需求,xx 系统版本的软件将以收费的形式提供,建议用户升级系统继续免费使用。巴拉巴拉吧
2024-06-30 18:48:05 +08:00
回复了 angeni 创建的主题 程序员 熟悉阿里云产品的大佬们帮我看下
做个 API 服务还是够用的,要不然 200GB 实在有点少
2024-06-28 20:48:17 +08:00
回复了 AM2coder 创建的主题 Python 求救 django 项目 bug
没代码和项目结构不好分析。

建议在这个模块每个文件夹里检查下 __init__.py 是否存在。
这个第三方改的 apk 安全嘛
lg superslim
2024-06-03 12:58:36 +08:00
回复了 wuyadaxian 创建的主题 程序员 [疑问]如何使用 cron 让脚本每 7 分钟执行一次?
上面每分钟执行一次就行了,第一次就会运行并输出到 0 ,每次运行命令后文件里的值执行以下逻辑:

v=(v+1) % 7

然后判断 v 是否等于 0 ,是的话就执行 your_command_here 命令。

这个命令放在 crontab 可能会有点问题,可能需要加绝对路径以及对特殊的符合进行转义。
2024-06-03 12:52:05 +08:00
回复了 wuyadaxian 创建的主题 程序员 [疑问]如何使用 cron 让脚本每 7 分钟执行一次?
value=$(echo $(( ($(cat /tmp/1045433_time 2>/dev/null || echo 0) + 1) % 7 )) > /tmp/1045433_time && cat /tmp/1045433_time) && [ "$value" -eq 0 ] && your_command_here
2024-06-03 11:05:03 +08:00
回复了 hadami 创建的主题 DNS 114dns 也开始劫持用户 dns 了
@hadami 下次记得附带 traceroute 114.114.114.114 记录,一次篡改的时候,一次正常的时候。
2024-06-03 10:47:19 +08:00
回复了 hadami 创建的主题 DNS 114dns 也开始劫持用户 dns 了
udp 包,在网络链路任何一个节点都能修改,之前也自建过 DNS 一天查询量 8 千万,总有用户投诉我们劫持 dns 插入广告,真的无语了。大部分就是三种:

第一:DNS 服务器递到上游 DNS 服务器链路途中被篡改
第二:DNS 到用户之间的链路途中被篡改
第三:DNS 服务器本身劫持

具体是不是 114 的锅还是不要张口就来。

--------------------------------------------------------
nslookup clm37.click 114.114.114.114
服务器: public1.114dns.com
Address: 114.114.114.114

非权威应答:
名称: ns-mainweb.5338.org
Address: 172.247.129.109
Aliases: clm37.click
ns-mainweb2.5338.org
2024-04-24 18:01:25 +08:00
回复了 devzhaoyou 创建的主题 React React hook 使用疑惑
import { useState } from 'react';
import useSWR from 'swr';

const fetchMoreData = async (count: number) => {
await new Promise((resolve) => setTimeout(resolve, count * 100));
return count
}

export default function Demo() {
const [count, setCount] = useState(0);
const { data, error, isLoading } = useSWR(`count-${count}-swr`, async () => {
if (count == 5) {
throw new Error("count is 5")
}
return await fetchMoreData(count)
})

const handleClick = () => {
setCount(0);
};

if (isLoading) return <div>Loading...</div>
if (error) return <div>{`${error}`}</div>

return (<div >
<div>{data}</div>

<button onClick={() => setCount(count + 1)}>+</button>

<button onClick={handleClick}>handleClick</button>
</div>)

}
1 ... 4  5  6  7  8  9  10  11  12  13 ... 18  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5105 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 49ms · UTC 09:34 · PVG 17:34 · LAX 02:34 · JFK 05:34
Developed with CodeLauncher
♥ Do have faith in what you're doing.