摘要本文详细介绍在macOS上修改最大文件描述符限制解决Too many open files错误和网络端口参数的两种方法临时修改通过ulimit命令调整文件描述符限制使用sysctl临时修改内核参数永久修改文件描述符推荐通过launchd创建系统级配置文件或修改Shell配置文件内核参数编辑/etc/sysctl.conf并应用验证与注意事项提供验证命令并提醒注意权限、数值合理性和应用适配问题。适用于需要突破系统默认资源限制的开发或运维场景。在 macOS 上修改 最大文件描述符限制Too many open files 和 网络端口相关参数 需要调整系统级配置。以下是详细步骤在 macOS 上修改 最大文件描述符限制和 网络端口相关参数 需要调整系统级配置的详细步骤—目录一、临时修改仅当前终端会话有效1. 修改文件描述符限制2. 修改网络端口相关参数二、永久修改系统重启后仍有效1. 修改文件描述符限制方法一通过 launchd 配置推荐方法二修改 Shell 配置文件如 .zshrc 或 .bash_profile2. 修改内核参数网络端口相关三、验证修改结果四、注意事项一、临时修改仅当前终端会话有效1. 修改文件描述符限制# 查看当前限制ulimit-n# 软限制ulimit-Hn# 硬限制# 临时提高限制例如设置为 65536ulimit-n655362. 修改网络端口相关参数# 查看当前内核参数sysctlkern.maxfilessysctlkern.maxfilesperproc# 临时修改内核参数例如设置为 65536sudosysctl-wkern.maxfiles65536sudosysctl-wkern.maxfilesperproc65536二、永久修改系统重启后仍有效1. 修改文件描述符限制方法一通过launchd配置推荐创建或编辑全局配置文件sudonano/Library/LaunchDaemons/limit.maxfiles.plist添加以下内容设置软硬限制为 65536?xml version1.0 encodingUTF-8?!DOCTYPEplistPUBLIC-//Apple//DTD PLIST 1.0//ENhttp://www.apple.com/DTDs/PropertyList-1.0.dtdplistversion1.0dictkeyLabel/keystringlimit.maxfiles/stringkeyProgramArguments/keyarraystringlaunchctl/stringstringlimit/stringstringmaxfiles/stringstring65536/stringstring65536/string/arraykeyRunAtLoad/keytrue/keyServiceIPC/keyfalse//dict/plist加载并生效sudolaunchctl load-w/Library/LaunchDaemons/limit.maxfiles.plist方法二修改 Shell 配置文件如.zshrc或.bash_profileechoulimit -n 65536~/.zshrc# 替换为你的 shell 文件source~/.zshrc2. 修改内核参数网络端口相关编辑内核配置文件sudonano/etc/sysctl.conf添加以下内容根据需求调整数值kern.maxfiles65536 kern.maxfilesperproc65536 kern.ipc.somaxconn65535 # 控制监听队列长度 net.inet.tcp.msl1000 # 调整 TCP 最大段生命周期单位毫秒应用配置sudosysctl-p三、验证修改结果检查文件描述符限制ulimit-nsysctlkern.maxfilessysctlkern.maxfilesperproc检查网络参数sysctlnet.inet.tcp.mslsysctlkern.ipc.somaxconn四、注意事项权限问题修改系统级配置需要sudo权限。数值选择根据实际需求调整避免设置过高导致系统资源耗尽。应用适配某些应用如 Nginx、Node.js可能需要单独配置其内部文件描述符限制。通过以上步骤可以解决 macOS 上因文件描述符或端口限制导致的Too many open files错误。