oes 无法重启

既然你已验证 sudo reboot -f 有效,我们直接让 reboot 命令永久指向强制重启,完全绕过 systemd 关机流程。

1.创建别名配置文件
echo “alias reboot=’sudo systemctl –force reboot'” | sudo tee /etc/profile.d/force-reboot.sh

2.立即生效(当前终端测试)
source /etc/profile.d/force-reboot.sh

3.测试重启 reboot

系统应该立即重启,不会再卡住。

如果想恢复默认重启行为

删除配置文件即可:sudo rm /etc/profile.d/force-reboot.sh

ctrl+b默认密码Admin@huawei(清除密码)

  • 修改密码
  • system-view
    [Huawei] aaa
    [Huawei-aaa] local-user admin password irreversible-cipher Admin@2026
    [Huawei-aaa] local-user admin privilege level 15
    [Huawei-aaa] local-user admin service-type terminal ssh
    [Huawei-aaa] quit
    [Huawei] save
    The current configuration will be written to the device.
    Are you sure to continue?[Y/N] y

[Huawei-aaa] undo local-user admin 除可能残留的旧用户配置
[Huawei-aaa] local-user admin password irreversible-cipher Admin@2026
[Huawei-aaa] local-user admin privilege level 15
[Huawei-aaa] local-user admin service-type terminal ssh

[Huawei-aaa]local-user admin service-type telnet ssh terminal 开启telnet


[Huawei-aaa] quit
[Huawei] save

  • 清除保存配置
  • reset saved-configuration # 清除保存的配置
    reboot # 重启,提示时选 “N” 不加载配置

二、配置8号口(GE0/0/7)PPPoE拨号上网

1. 基础配置

system-view
[Huawei] sysname AR1220E-S
[AR1220E-S] dhcp enable # 启用DHCP服务
[AR1220E-S] dns resolve # 启用DNS解析
[AR1220E-S] dns server 114.114.114.114 # 配置DNS(可选)
[AR1220E-S] dns server 8.8.8.8

2. 配置Dialer拨号接口

[AR1220E-S] dialer-rule
[AR1220E-S-dialer-rule] dialer-rule 1 ip permit
[AR1220E-S-dialer-rule] quit

[AR1220E-S] interface dialer 1
[AR1220E-S-Dialer1] dialer user your_username # 替换为宽带账号
[AR1220E-S-Dialer1] dialer-group 1
[AR1220E-S-Dialer1] dialer bundle 1
[AR1220E-S-Dialer1] dialer timer idle 300 # 空闲300秒断开
[AR1220E-S-Dialer1] ppp chap user your_username # PPP认证用户名
[AR1220E-S-Dialer1] ppp chap password cipher your_password # 替换为宽带密码
[AR1220E-S-Dialer1] ip address ppp-negotiate # 自动获取公网IP
[AR1220E-S-Dialer1] quit

3. 绑定物理接口(8号口 = GE0/0/8)

[AR1220E-S] interface gigabitethernet 0/0/7
[AR1220E-S-GigabitEthernet0/0/7] pppoe-client dial-bundle-number 1
[AR1220E-S-GigabitEthernet0/0/7] quit

4. 配置默认路由

[AR1220E-S] ip route-static 0.0.0.0 0.0.0.0 dialer 1

5. 配置NAT(让内网设备上网)

[AR1220E-S] acl number 2000
[AR1220E-S-acl-basic-2000] rule 5 permit source 192.168.1.0 0.0.0.255
[AR1220E-S-acl-basic-2000] quit

[AR1220E-S] interface dialer 1
[AR1220E-S-Dialer1] nat outbound 2000
[AR1220E-S-Dialer1] quit

三、配置其他端口为局域网口(可上网)

1. 配置局域网接口IP(以GE0/0/0~GE0/0/6为例)

[AR1220E-S] interface vlanif 1
[AR1220E-S-Vlanif1] ip address 192.168.1.1 255.255.255.0
[AR1220E-S-Vlanif1] quit

2. 将其他端口加入VLAN 1(默认已在)

[AR1220E-S] interface gigabitethernet 0/0/0
[AR1220E-S-GigabitEthernet0/0/0] port link-type access
[AR1220E-S-GigabitEthernet0/0/0] port default vlan 1
[AR1220E-S-GigabitEthernet0/0/0] quit

重复以上步骤配置 GE0/0/1 ~ GE0/0/6

3. 配置DHCP自动分配内网IP

[AR1220E-S] ip pool lan_pool
[AR1220E-S-ip-pool-lan_pool] network 192.168.1.0 mask 255.255.255.0
[AR1220E-S-ip-pool-lan_pool] gateway-list 192.168.1.1
[AR1220E-S-ip-pool-lan_pool] dns-list 114.114.114.114 8.8.8.8
[AR1220E-S-ip-pool-lan_pool] quit

[AR1220E-S] interface vlanif 1
[AR1220E-S-Vlanif1] dhcp select global
[AR1220E-S-Vlanif1] quit

4. 保存配置

[AR1220E-S] quit
save
The current configuration will be written to the device.
Are you sure to continue?[Y/N] y

四、验证配置

看PPPoE拨号状态display pppoe-client session summary

查看拨号接口状态display interface dialer 1

查看NAT配置display nat outbound

测试外网连通性ping 8.8.8.8

修改宽带账号密码—————–

system-view
interface dialer 1
ppp chap user 新账号
ppp chap password cipher 新密码
quit
save

修改内网网段(如改为 192.168.10.1/24)

system-view
interface vlanif 1
ip address 192.168.10.1 24
quit
ip pool lan_pool
network 192.168.10.0 mask 255.255.255.0
gateway-list 192.168.10.1
quit
save

更换账号密码

===== 1. 进入系统视图 =====

system-view

===== 2. 进入拨号接口,修改认证信息 =====

请将下方 your_username / your_password 替换为您的联通账号密码

[Huawei] interface dialer 1

清除旧账号配置

[Huawei-Dialer1] undo ppp chap user
[Huawei-Dialer1] undo ppp chap password
[Huawei-Dialer1] undo ppp pap local-user

配置新联通账号(二选一,根据实际格式)

格式1:带@unicom后缀(北方常见)

[Huawei-Dialer1] ppp chap user 053212345678@unicom
[Huawei-Dialer1] ppp chap password cipher your_password
[Huawei-Dialer1] ppp pap local-user 053212345678@unicom password cipher your_password

格式2:纯手机号(南方常见)

[Huawei-Dialer1] ppp chap user 18612345678

[Huawei-Dialer1] ppp chap password cipher your_password

[Huawei-Dialer1] ppp pap local-user 18612345678 password cipher your_password

[Huawei-Dialer1] quit

===== 3. 重启拨号接口,触发重新认证 =====

[Huawei] interface dialer 1
[Huawei-Dialer1] shutdown
[Huawei-Dialer1] undo shutdown
[Huawei-Dialer1] quit

===== 4. 保存配置 =====

[Huawei] quit
save

python3 虚拟环境

python3 -m venv myenv

source myenv/bin/activate
deactivate

system-view

ar1220es 开启web页面

🔹 步骤1:配置管理接口

  • [Huawei] interface GigabitEthernet 0/0/0
  • [Huawei-GigabitEthernet0/0/0] ip address 192.168.1.1 24
  • [Huawei-GigabitEthernet0/0/0] undo shutdown
  • [Huawei-GigabitEthernet0/0/0] quit

🔹 步骤2:开启 HTTPS 服务

  • [Huawei] http secure-server enable
  • [Huawei] undo http server enable # 关闭不安全的 HTTP(推荐)

🔹 步骤3:创建 Web 登录用户

  • [Huawei] aaa
  • [Huawei-aaa] local-user admin password cipher Admin@123456
  • [Huawei-aaa] local-user admin service-type web
  • [Huawei-aaa] local-user admin state active
  • 根据 VRP 版本选择授权命令:
  • 老版本:[Huawei-aaa] local-user admin privilege level 15
  • 新版本(V200R019+):
  • [Huawei-aaa] local-user admin authorization-attribute user-role level-15
  • [Huawei-aaa] quit

🔹 步骤4:保存配置

  • [Huawei] quit
  • save

📤 将 Docker 镜像上传到仓库(完整指南)

方式 B:仅构建 App 镜像 docker build -t hik-shentong-bridge:latest .

方式 A:使用 Docker Compose(推荐)

构建并启动docker compose up -d –build

查看日志docker compose logs -f app

停止并清理docker compose down

你的镜像 hik-shentong-bridge:latest 已构建成功,现在可以上传到 Docker Hub私有仓库,方便在其他设备部署。

# 仅清理悬空构建缓存(默认,需手动确认)
docker builder prune

# 清理所有未使用构建缓存(需手动确认)
docker builder prune -a

# 强制清理所有缓存,不询问
docker builder prune -af

清理 Docker 无用资源

  • 停止所有容器(避免清理时冲突)
  • docker compose down
  • 清理悬空镜像、构建缓存、未使用卷
  • docker system prune -af –volumes
  • 查看剩余空间
  • df -h /



🔐 第一步:登录 Docker 仓库
✅ Docker Hub(官方公共仓库)

  • 登录(输入用户名和密码/访问令牌)
  • docker login或者docker login -u 用户名
  • 或指定服务器(默认就是 hub.docker.com)
  • docker login https://index.docker.io/v1/

私有仓库(如 Harbor、自建 Registry)

  • docker login your-registry.com:5000
  • 输入用户名密码

🏷️ 第二步:给镜像打标签(Tag)

  • Docker 要求镜像名格式:<仓库用户名>/<镜像名>:<标签>
    假设你的 Docker Hub 用户名是:myuser
  • docker tag hik-shentong-bridge:latest myuser/hik-shentong-bridge:latest
  • 可选:添加版本标签
  • docker tag hik-shentong-bridge:latest myuser/hik-shentong-bridge:v2.4.0

📌 示例:上传到私有仓库

  • 假设私有仓库地址:registry.example.com:5000
  • docker tag hik-shentong-bridge:latest registry.example.com:5000/hik-shentong-bridge:latest
  • ✅ 验证标签是否成功:
    docker images | grep hik-shentong-bridge

🚀 第三步:推送镜像到仓库

# 推送到 Docker Hub
docker push myuser/hik-shentong-bridge:latest
# 如果同时打了版本标签,也推送
docker push myuser/hik-shentong-bridge:v2.4.0

🔄 第四步:在其他机器拉取并运行
1️⃣ 拉取镜像

  • 新机器先登录(如果需要)
  • docker login
  • 拉取镜像
  • docker pull myuser/hik-shentong-bridge:latest

2️⃣ 运行容器(示例)

docker run -d --name st-bridge \
-p 7200:7200 \
-e SQLALCHEMY_DATABASE_URL="mysql+pymysql://user:pass@db:3306/shentong" \
-e REDIS_HOST="redis" \
-e REDIS_PORT="6379" \
--restart unless-stopped \
myuser/hik-shentong-bridge:latest

3️⃣ 推荐:使用 docker-compose 一键部署
在新机器创建 docker-compose.yml

yaml

version: ‘3.8’
services:
app:
image: myuser/hik-shentong-bridge:latest
container_name: st-bridge
ports:
– “7200:7200”
environment:
– SQLALCHEMY_DATABASE_URL=mysql+pymysql://user:pass@db:3306/shentong
– REDIS_HOST=redis
– REDIS_PORT=6379
depends_on:
– db
– redis
restart: unless-stopped

redis:
image: redis:7-alpine
container_name: st-redis

db:
image: mysql:8.0
container_name: st-db
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: shentong
volumes:
– db_/var/lib/mysql

volumes:
db_

opencalw

  • 局域网配置
  • “gateway”: {
    “port”: 18789,
    “mode”: “local”,
    “bind”: “lan”,
    “controlUi”: {
    “allowedOrigins”: [“*”],
    “allowInsecureAuth”: true,
    “dangerouslyDisableDeviceAuth”: true
    },
    “auth”: {
    “mode”: “token”,
    “token”: “************************”
    },
    “tailscale”: {
    “mode”: “off”,
    “resetOnExit”: false
    }
    },

安装技能 openclaw skills install <skill_name>

docker 部署ntfy 设置权限

在 docker-compose.yml 中添加以下参数: 

services:
  ntfy:
    image: binwiederhier/ntfy
    container_name: ntfy
    volumes:
      - ./cache:/var/cache/ntfy  # 确保持久化,auth.db 会存放在这里
    environment:
      - NTFY_AUTH_FILE=/var/cache/ntfy/auth.db
      - NTFY_AUTH_DEFAULT_ACCESS=deny-all # 默认拒绝匿名访问,也可设为 read-only
    command: serve
    ports:
      - 8080:80

进入容器终端:docker exec -it ntfy sh

创建管理员 (Admin):ntfy user add –role=admin <你的用户名>

创建普通用户并分配权限(例如只允许 bob 往 alerts 发消息):

ntfy user add bob
ntfy access bob alerts write-only

查看当前权限列表:ntfy access

基础权限分配指令 你需要进入容器执行命令。权限级别分为:read-write (rw), read-only (ro), write-only (wo), deny (none)。

通配符权限:如果你有多个以 home- 开头的 Topic,可以批量授权:ntfy access bob “home-*” read-write

完全禁止:覆盖默认权限,禁止某用户访问特定 Topic:ntfy access bob private_topic deny

1. 生成 Token

进入容器内部,为指定用户创建一个永久或有有效期的令牌:

bash

# 进入容器
docker exec -it ntfy sh

# 为用户 bob 创建一个 Token(默认永久有效)
ntfy token add bob

# 或者创建一个有效期为 30 天的 Token
ntfy token add bob --expires 30d

移除特定用户的 Topic 权限如果你想删除之前为用户设置的特定权限,使其恢复到系统的默认状态(auth-default-access),请在 access 命令中不指定权限参数: # 语法:ntfy access <用户名> <Topic名称>
docker exec -it ntfy ntfy access alice my_topic

彻底禁止访问 (Deny)如果你不是想删除规则,而是想显式地封杀某个用户对特定 Topic 的访问(即便默认权限是允许的),请将其设为 none 或 deny:docker exec -it ntfy ntfy access bob private_alerts none

清理匿名用户权限如果你之前允许了所有人(匿名)查看某个 Topic,现在想撤销:docker exec -it ntfy ntfy access everyone public_topic

验证移除结果每次操作后,建议运行以下命令确认权限表已更新:docker exec -it ntfy ntfy access


在 ntfy 中,权限级别(Permission Levels)决定了用户对特定 Topic(主题)的交互能力。以下是各级别的详细用途和典型场景:

1. read-write (rw) – 读写权限

  • 用途:允许用户既能发布(Publish)消息,也能订阅(Subscribe)并查看历史记录。
  • 场景
    • 管理员/主用户:需要完全控制某个 Topic 的交互。
    • 协作频道:团队成员之间互发通知,大家都能发也能收。 

2. read-only (ro) – 只读权限

  • 用途:仅允许接收和查看消息,无法向该 Topic 发送任何内容。
  • 场景
    • 终端接收设备:例如你的手机 App 只需要接收告警,不需要通过该 Topic 反馈数据。
    • 公告板:只允许服务器发送系统通知,普通用户仅负责“听”。 

3. write-only (wo) – 只写权限

  • 用途:仅允许发布消息,无法看到该 Topic 的任何已有内容或实时订阅。
  • 场景
    • 外部服务/脚本推送到自建服务器:例如 Uptime Kuma 或 IoT 传感器只需要在出故障时“喊一嗓子”,它们不应该(也没必要)看到其他历史消息。
    • 安全性增强:防止泄露 Token 的脚本被恶意利用来窥探频道历史。 

4. deny (none) – 拒绝访问

  • 用途:禁止任何形式的发布或订阅。
  • 场景
    • 精准屏蔽:如果你设置了全局 read-only,但想禁止某个特定用户访问敏感的 admin-alerts 频道,可以显式设为 deny
    • 临时封禁:无需删除用户,通过权限覆盖快速切断其访问。

Linux如何禁用ping

1.通过修改配置参数

执行以下命令来关闭ping请求的应答。

[root@localhost etc]# echo “1” > /proc/sys/net/ipv4/icmp_echo_ignore_all

执行以下命令来开启ping请求的应答。

[root@localhost etc]# echo “0” > /proc/sys/net/ipv4/icmp_echo_ignore_all

通过上图可以看出执行完命令之后,确实不能够ping通了,接着改为0之后又可以ping通了。但是上图配置的这种方式只是临时的,只对当前会话有用,当重启之后,就恢复了,所以有没有啥办法是重启之后对任何会话都适用的呢?还确实有这种能够使修改的配置长期生效,在以后的重启后都能够使服务器的ping不能够应答。配置方式如下,在/etc/sysctl.conf文件中增加以下命令行:

net.ipv4.icmp_echo_ignore_all = 1

保存文件,接着执行以下命令使其生效。

sysctl -p

2,通过iptables

iptables是Linux命令行防火墙,也可以配置规则禁用ping流量。在Linux服务器上通过iptables来禁用ping请求,请运行以下命令。首先来检测一下iptables的版本。

[root@localhost ~]# iptables -V

iptables是Linux命令行防火墙,它允许我们根据一组规则管理传入和传出流量。新增了两条规则丢掉ping请求和ping应答。以下规则用于正常禁用与服务器之间的 ping 操作。

[root@localhost ~]# sudo iptables -A INPUT -p icmp –icmp-type echo-request -j DROP
[root@localhost ~]## sudo iptables -A OUTPUT -p icmp –icmp-type echo-reply -j DROP

上面是关闭ping请求和应答的iptables。那么如何恢复ping请求和ping应答呢?其实很简单,把刚才那两条规则删除掉即可,删除通过-D来删除,新增是通过-A来新增。

[root@localhost ~]# iptables -D OUTPUT -p icmp –icmp-type echo-reply -j DROP
[root@localhost ~]# iptables -D INPUT -p icmp –icmp-type echo-request -j DROP

tc命令使用总结

查看queue状态

查看所有网卡 ​​tc qdisc ls

查看指定网卡 tc qdisc show dev enp0s3​

delay延迟 tc qdisc add dev enp0s3 root netem delay 1000ms​

命令详解
qdisc: 类型为 queuing discipline,不懂的请先查询一下基本概念
add: add a new rule
dev eth0: rules will be applied on device eth0
root: modify the outbound traffic scheduler (aka known as the egress qdisc)
netem: use the network emulator to emulate a WAN property
delay: the network property that is modified
1000ms: introduce delay of 1000 ms

执行前

执行后

delay最后还是有两个参数

命令1.增加振幅

delay不是一个固定的值,而是在后面这个参数的增加减少幅度内变动

tc qdisc add dev enp0s3 root netem delay 1000ms 500ms​

可以看到delay的幅度在500(1000-500)和1500(1000+500)之间了。

命令2. uniform variation with correlation value

tc qdisc add dev enp0s3 root netem delay 1000ms 500ms 20%​

使振幅根据uniform variation with correlation value发生变化。

命令3. distribution normal正态分布变化

tc qdisc add dev enp0s3 root netem delay 1000ms 500ms distribution normal​

Packet Loss丢包 tc qdisc add dev enp0s3 root netem loss 50%​

Packet Corruption 包损 tc qdisc add dev enp0s3 root netem corrupt 50%​

通过PING看不出corruption,包的传送都没有问题的

Packet Duplicates 重复包 tc qdisc add dev enp0s3 root netem duplicate 50%​

通过PING看不出Duplicates,包的传送都没有问题的

Bandwidth limit限制带宽 tc qdisc add dev enp0s3 root tbf rate 1mbit burst 32kbit latency 400ms

参数说明:
tbf: use the token buffer filter to manipulate traffic rates
rate: sustained maximum rate
burst: maximum allowed burst
latency: packets with higher latency get dropped

其他操作

删除 tc qdisc del dev enp0s3 root​

修改 tc qdisc change dev enp0s3 root netem delay 1000ms​

通常,要对网卡进行流量控制的配置,需要进行如下的步骤:

1、为网卡配置一个队列

2、在该队列上建立分类

3、根据需要建立子队列和子分类

4、为每个分类建立过滤器

下面,将以HTB队列为主,结合需求来讲述TC的使用。假设eth0出口有100Mbit/s的带宽,分配给WWW 、E-mail和Telnet三种数据流量,其中分配给WWW的带宽为40Mbit/s,分配给Email的带宽为40Mbit/s,分配给Telnet的带宽为20Mbit/s。

需要注意的是, 在TC 中使用下列的缩写表示相应的带宽:

  • Kbps:kiIobytes per second,即 “千字节每秒”
  • Mbps:megabytes per second,即 “兆字节每秒 ”
  • Kbit:kilobits per second,即 “千比特每秒”
  • Mbit:megabits per second,即 “兆比特每秒”

有关队列的TC命令的一般形式:

# tc qdisc [add|change|replace|link] dev DEV [parent qdisk-id|root][handle qdisc-id] qdisc[qdisc specific parameters]

 1、创建HTB队列

为网卡etho配置一个HTB队列的tc命令:

# tc qdisc add dev eth0 root handle 1: htb default 11

  • add 表示要添加
  • dev eth0 表示要操作的网卡为eth0
  • root 表示为网卡eth0添加的是一个根队列
  • handle 1: 表示队列的句柄为1:
  • htb 表示要添加的队列为HTB队列
  • default 11 是htb特有的队列参数,意思是所有未分类的流量都将分配给类别1:11

2、为根队列创建相应的类别

有关类别的TC一般命令形式:

# tc class [add|change|replace] dev DEV parent qdisc-id [classid class-id] qdisc [qdisc specific parameters]

可以使用以下3个命令为根队列1创建三个类别,分别是1:11、1:12、1:13

tc class add dev eth0 parent 1: classid 1:11 htb rate 40mbit ceil 40mbit

tc class add dev eth0 parent 1: classid 1:12 htb rate 40mbit ceil 40mbit

tc class add dev eth0 parent 1: classid 1:13 htb rate 40mbit ceil 20mbit

各项的含义:

  • parent 1: 表示类别的父亲为根队列1:
  • classid 1:11 表示创建一个标识为1:11的类别
  • rate 40mbit 表示系统将为该类别确保带宽40mbit
  • ceil 40mbit 表示该类别的最高可占用带宽为40mbi

3、为各个类别设置过滤器

有关过滤器的tc一般命令:

# tc filter [add|change|replace] dev DEV [parent qdisc-id|root] protocol protocol prio priority filtertype [filtertype specific parameters] flowid flow-id

由于需要将WWW、E-mail、Telnet三种流量分配到三个类别,即上述1:11、1:12和1:13,因此,需要创建三个过滤器,如下面的三个命令:

# tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 80 0xffff flowid 1:11
# tc filter add dev eth0 prtocol ip parent 1:0 prio 1 u32 match ip dport 25 0xffff flowid 1:12
# tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 23 oxffff flowid 1:13

各项的含义:

  • protocol ip 表示该过滤器应该检查报文分组的协议字段
  • prio 1 表示它们对报文处理的优先级是相同的,对于不同优先级的过滤器,系统将按照从小到大的优先级顺序来执行过滤器,对于相同的优先级,系统将按照命令的先后顺序执行
  • 这几个过滤器还用到了u32选择器(命令中u32后面的部分)来匹配不同的数据流。以第一个命令为例,判断的是dport字段,如果该字段与Oxffff进行与操作的结果是80,则 flowid 1:11 表示将把该数据流分配给类别1:11

Linux系统中有多个命令可用于控制带宽,下面将介绍常用的几个命令。

Linux系统中有多个命令可用于控制带宽,下面将介绍常用的几个命令。

1. tc命令:tc命令是Linux系统中最常用的带宽控制工具之一,它可以用于控制网络流量的速率、延迟、丢包等。下面是tc命令的一些常用选项和用法:

– tc qdisc add:添加一个队列规则
– tc class add:添加一个分类规则
– tc filter add:添加一个过滤规则
– tc qdisc del:删除一个队列规则
– tc class del:删除一个分类规则
– tc filter del:删除一个过滤规则
– tc qdisc show:显示当前的队列规则
– tc class show:显示当前的分类规则
– tc filter show:显示当前的过滤规则

2. wondershaper命令:wondershaper是一个小型的脚本工具,可以方便地控制网络带宽。通过wondershaper命令,可以设置网络的最大传输速率、最大接收速率,以及设置延迟和丢包。

– wondershaper eth0 1024 256:限制eth0接口的最大传输速率为1024kbps,最大接收速率为256kbps
– wondershaper clear eth0:清除eth0接口上的带宽限制

3. trickle命令:trickle命令可以控制进程的带宽使用,通过限制进程的上传和下载速度,来达到控制带宽的目的。

– trickle -d 1024 -u 256 :限制命令的下载速度为1024kbps,上传速度为256kbps

4. htb工具:htb是Linux系统中一个非常强大的带宽控制工具,它可以用于创建复杂的带宽控制策略。

– htb init:初始化htb工具
– htb rate 1Gbit:设置根类别的速率为1Gbps
– htb class add dev eth0 parent 1: classid 1:1 htb rate 100Mbit:为eth0接口添加一个类别,限制带宽为100Mbps
– htb class change dev eth0 parent 1: classid 1:1 htb rate 200Mbit:修改eth0接口的类别,将带宽限制改为200Mbps
– htb delete:删除所有的htb规则

5. iptables命令:iptables是Linux系统中用于配置网络防火墙的工具,它也可以用于限制网络带宽。

– iptables -A INPUT -m limit –limit 10/s -j ACCEPT:设置输入流量的带宽限制为每秒10个包
– iptables -A OUTPUT -m limit –limit 10/s -j ACCEPT:设置输出流量的带宽限制为每秒10个包
– iptables -A INPUT -m limit –limit 10/s -j DROP:设置输入流量的带宽限制为每秒10个包,超过限制则丢弃
– iptables -A OUTPUT -m limit –limit 10/s -j DROP:设置输出流量的带宽限制为每秒10个包,超过限制则丢弃

以上是常用的几个Linux带宽控制命令。通过使用这些命令,可以灵活地控制网络的带宽使用,满足不同的需求。

WonderShaper 安装与使用指南

WonderShaper 安装与使用指南

项目地址:https://gitcode.com/gh_mirrors/wo/wondershaper

1. 项目介绍

WonderShaper 是一个脚本工具,由 Bert Hubert 等人开发,用于限制网络适配器的带宽。它允许用户自定义下载和上传速率,适用于家庭网络中的流量管理或者测试不同网络条件对应用程序性能的影响。WonderShaper 遵循 GPL-2.0 许可协议。

2. 项目快速启动

步骤一:克隆仓库

首先,打开终端并克隆 WonderShaper 的 Git 仓库:

git clone https://github.com/magnific0/wondershaper.gitcd wondershaper

步骤二:安装

在终端中运行以下命令以安装 WonderShaper:

sudo make install

步骤三:设置开机启动

要让 WonderShaper 在系统启动时自动运行,执行:

sudo systemctl enable wondershaper.servicesudo systemctl start wondershaper.service

步骤四:使用 WonderShaper

查看帮助信息:

/wondershaper -h

设置网络接口的带宽限制,例如限制 eth0 接口的下载速率为 1Mbit/s,上传速率为 512Kbit/s:

sudo /wondershaper -a eth0 -d 1024 -u 512

要清除已设置的限制:

sudo /wondershaper -c -a eth0

3. 应用案例和最佳实践

  • 优化家庭网络:通过分配不同设备的网络带宽,确保关键任务如视频会议、在线学习或游戏的稳定性。
  • 模拟低速网络环境:测试你的应用在慢速连接上的表现,以优化用户体验。
  • 故障排查:临时限速某个接口,以确定是否与带宽相关的问题有关。

最佳实践建议在调整带宽限制前记录原始配置,并定期检查 WonderShaper 的设置,以保持其有效性。

4. 典型生态项目

虽然 WonderShaper 是一个独立工具,但它常与其他网络管理和监控工具一起使用,比如:

  • iftop:实时显示网络流量信息。
  • nethogs:按进程显示网络带宽使用情况。
  • collectdPrometheus:收集系统性能数据,包括网络利用率,用于长期监控和分析。

结合这些工具,你可以更全面地管理和监控网络资源。


以上即为 WonderShaper 的安装与使用指南,希望对你有所帮助。在实践中如有疑问或发现任何问题,请查阅官方仓库的 Issue 或者向社区寻求支持。