You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS Ventura 13.4下如何自动化定时切换Network Link Conditioner的启停状态

嗨,我看到你现在遇到的问题啦——你写的脚本里把Bash和JavaScript的语法混在一起了,这肯定会报语法错误的,因为Bash完全不支持async/await、function这些JS语法哦😯。别担心,我来给你整理一个适合Ventura系统的纯Bash脚本方案,帮你实现重复启停Network Link Conditioner的需求。

首先,先确认你已经安装了Network Link Conditioner:它属于Xcode开发者工具的一部分,你可以先运行xcode-select --install安装Command Line Tools,然后在「系统设置」→「网络」里找到它(如果没显示,可能需要在「系统设置」→「隐私与安全性」里启用开发者模式)。

接下来是核心脚本,这个脚本可以实现重复开启指定配置、保持指定时长、然后关闭、再等待指定时长的循环逻辑:

#!/bin/bash

# 配置参数,你可以根据需求修改
ON_DURATION=60  # 开启状态保持的秒数(比如60秒=1分钟)
OFF_DURATION=30 # 关闭状态等待的秒数
PROFILE_NAME="100% Loss" # 要使用的NLC配置文件名

# 检查是否有sudo权限,因为修改NLC设置需要管理员权限
if [ "$(id -u)" -ne 0 ]; then
    echo "请使用sudo运行此脚本,比如:sudo $0"
    exit 1
fi

# 循环执行启停逻辑
while true; do
    echo "[$(date)] 正在开启Network Link Conditioner,使用配置:$PROFILE_NAME"
    # 设置并启用指定配置
    defaults write /Library/Preferences/com.apple.networkConditioner.plist ActiveProfile -string "$PROFILE_NAME"
    defaults write /Library/Preferences/com.apple.networkConditioner.plist NetworkConditionerEnabled -bool true
    # 重启networkd让设置生效
    killall -HUP networkd

    # 保持开启状态
    sleep $ON_DURATION

    echo "[$(date)] 正在关闭Network Link Conditioner"
    # 关闭NLC
    defaults write /Library/Preferences/com.apple.networkConditioner.plist NetworkConditionerEnabled -bool false
    killall -HUP networkd

    # 等待关闭状态的时长
    sleep $OFF_DURATION
done

使用步骤:

  • 把上面的代码保存成nlc_toggle.sh文件
  • 给脚本添加执行权限:chmod +x nlc_toggle.sh
  • 用sudo运行:sudo ./nlc_toggle.sh

如果你需要停止脚本,只需要在终端按Ctrl+C就可以啦。

另外,如果你想确认自己的NLC配置名称是否正确,可以先运行这个命令查看所有可用配置:

defaults read /Library/Preferences/com.apple.networkConditioner.plist Profiles | grep -A 10 '"Name"'

这样就能准确找到你要使用的配置文件名啦。

备注:内容来源于stack exchange,提问作者user893468

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 09:28:06