☰
CGMiner 3.1.1 Windows版实战:老矿工的工具箱与避坑指南
2026/10/18 10:18:36 网站建设 项目流程

简介:这是一份面向加密货币挖矿用户的 cgminer 3.1.1 Windows 版完整资源包,适用于比特币及各类衍生币,支持多线程、多矿池,并能对 ATI GPU 进行监控、超频与风扇调控,同时兼容 FPGA 与 ASIC 设备。压缩包共 43 个文件,体积约 6.83MB,核心内容包括 cgminer.exe 与 cgminer-nogpu.exe 两个主程序,12 个 txt 文档涵盖 README、API、GPU/FPGA/ASIC 等专项说明,8 个 dll 运行库保证依赖环境,另有 .cl 挖矿内核、.bit/.bin/.ncd 设备位流文件及 API.java、api-example.c/php 等接口示例。资源还附带 example.conf 配置文件、ChangeLog、NEWS 及完整源码级参考文件,便于新手快速上手、排查运行错误,也为二次开发与多币种调优提供了实用素材。目前已有 558 人学习下载,适合矿业技术人员、矿场维护者及对挖矿原理感兴趣的开发者使用。

1. CGMiner 3.1.1 Windows版:老矿工手里最顺手的那把扳手

拿到cgminer-3.1.1-windows这个包,第一反应不是新,而是稳。CGMiner 3.1.1是比特币矿机软件史上一个标志性版本,Windows版的存在,意味着很多人不用折腾Linux虚拟机,直接在桌面系统里就能把矿机跑起来。这套资源解决的是一类很具体的问题:在Windows上驱动你的ASIC矿机或旧显卡,通过stratum协议连接矿池,稳定出图、看日志、调参数。适合三种人:还在维护老矿机的运维、研究挖矿客户端源码的开发者,以及想理解矿机软件工作机制的爱好者。它的价值在于,几乎全部核心功能都压在几个命令行参数上,没有花哨界面,没有多余依赖,甚至不需要安装——解压后一个exe就是全部。但它也挑剔:驱动版本不对、运行库缺失、参数配错,都会让你面对一个看似死掉的窗口。

2. 运行环境三件套:命令行、运行库与驱动依赖

2.1 为什么这个版本不用安装也能跑

CGMiner从诞生起就走的是“绿色便携”路线。它核心是C语言编译出的单个可执行文件,运行时所需的动态链接库(比如pthread、OpenSSL相关DLL)和配置文件都放在同一目录。解压后目录里通常会看到cgminer.exe、若干.dll、cgminer.conf示例文件,以及一份README或release notes。

这种设计的直接好处是:你可以把整个文件夹拷到U盘,插到任何一台Windows机器上直接运行,不会污染系统注册表。反过来说,它也对系统环境更敏感——缺运行库、缺驱动、缺特定版本的VC++库,它不会像安装版软件那样弹一个友好提示,而是直接闪退或报0xc000007b错误。

我一般拿到包的第一件事,不是双击运行,而是先看一眼压缩包里的文件清单,确认exe和DLL版本是否匹配。3.1.1这个版本依赖的通常是Visual C++ 2010运行库,如果你机器上只装了2015或更新的版本,反而可能因为库版本不兼容跑不起来。这里有个常用排查动作:用dumpbin /dependents cgminer.exe(Visual Studio自带工具)看它到底依赖哪些DLL,或者直接用Dependency Walker这类工具扫一遍。

2.2 先把运行库补齐

Windows系统本身不带完整的VC++运行库,尤其是老版本。实操中,我建议按顺序做三件事:

# 第一步:确认系统架构,3.1.1版本常见为x86或x64,别搞混 wmic OS get OSArchitecture # 第二步:检查VC++运行库是否已安装 reg query "HKLM\SOFTWARE\Microsoft\VisualStudio\10.0\VC\Runtimes\x86" /v Version

第一段命令查系统位数,第二段查VC++ 2010运行库版本。如果注册表项不存在,就去微软官网下载对应运行库安装。注意:Windows 10/11系统自带的UWP版运行库不一定包含老版本(如VC++ 2010)所需的msvcp100.dll和msvcr100.dll。这两个文件是CGMiner最常见的缺失依赖。

2.3 驱动选择比软件版本更影响稳定性

CGMiner 3.1.1诞生年代对应的显卡驱动是催化剂(AMD)和GeForce驱动(NVIDIA)的老版本。如果你拿新显卡、新驱动去跑,大概率出现两种结果:设备枚举不到,或者内核态驱动直接让系统蓝屏。

常见做法是:如果目标设备是AMD显卡,优先尝试安装与该卡发布时匹配的驱动版本;如果是ASIC矿机(比如蚂蚁矿机老型号),插上USB即可,不需要显卡驱动,但需要安装设备对应的USB驱动。一个容易踩的坑是:先插设备再装驱动,Windows会匹配一个错误驱动,导致设备管理器里显示感叹号。正确顺序是:先装驱动,重启,再插设备。这个顺序讲不出什么高深道理,但我实际遇到过很多次,几乎成了标准操作。

# 查看设备是否被系统识别(用PowerShell) Get-PnpDevice | Where-Object {$_.FriendlyName -match "Serial|ASIC|Ant"} # 查看CGMiner能否枚举到设备 cgminer.exe --ndevs --verbose

--ndevs参数让程序只枚举设备就退出,不进入挖矿循环。如果这里显示的设备数量和实际不符,问题一定出在驱动层,而不是参数配置层。--verbose会打印更多内核通信细节,反馈给驱动开发或社区排查时特别有用。

3. 把矿机拉起来:配置、池参数与候选参数

3.1 用命令行启动还是用配置文件

CGMiner同时支持命令行参数和JSON配置文件。命令行适合快速验证,配置文件适合固定场景。我第一次跑通这个版本时用的是纯命令行,三行搞定:

cd /d D:\miner\cgminer-3.1.1-windows cgminer.exe --scrypt --url=stratum+tcp://pool.example.com:3333 --user=yourname.worker1 --pass=x

这里--scrypt作用是切换算法模式。3.1.1版本默认可能跑的是SHA-256,如果你的矿池是莱特币类(scrypt算法),不加这个参数会把任务类型发错,屏幕直接刷“invalid job”。--url指定矿池stratum协议的地址和端口,--user格式是“矿池账号.矿机编号”,.worker1部分相当于给这台矿机起名字,方便在矿池后台统计算力。--pass通常可以为任意值,但最好设置一个,避免矿池端拒绝空密码连接。

3.2 配置文件详解:从示例到可用

如果你想把参数固化,就用配置文件方式。CGMiner读取cgminer.conf,优先级是命令行参数覆盖配置文件。一个典型的配置如下:

{ "pools": [ { "url": "stratum+tcp://pool.example.com:3333", "user": "yourname.worker1", "pass": "x" }, { "url": "stratum+tcp://backup.example.com:4444", "user": "yourname.worker2", "pass": "x" } ], "scrypt": true, "intensity": "13", "worksize": "256", "gpu-threads": "2", "gpu-fan": "45-85", "temp-target": "70", "temp-overheat": "85", "queue": "1", "expiry": "120", "log": "5", "quiet": "false" }

每个字段的设定逻辑后面会展开,这里先注意两个通用细节:pools是一个数组,支持配置多个备用矿池,主池掉线自动切换——这个机制在3.1.1里已经比较成熟。scrypt字段与命令行的--scrypt对应,老矿池如果走SHA-256,记得改回false或者删掉。

3.3 设备参数:不是越激进越好

配置里最核心的三个参数是intensity(强度)、worksize(工作规模)和gpu-threads(GPU线程数)。很多人上来就把intensity调到19或20,觉得算力高就是好,结果要么驱动重置,要么直接蓝屏。

# 用一条命令实时调整,不必重启进程 cgminer.exe -c cgminer.conf --set-device-intensity=2:13

这个命令的语法是--set-device-intensity=设备编号:强度值。2:13表示对第2号设备设置intensity为13。CGMiner会在运行时把这个参数下发到设备驱动,无需重启,这是调参时最实用的功能之一。

intensity的取值范围通常是0到20,数值越高,GPU分配越多计算资源,但留给显示输出的资源越少。如果这台机器你还想正常看桌面,建议intensity不超过13;如果是纯挖矿机,不接显示器,可以逐步调高直到出现Hardware Error比例升高,然后回调1-2个点。这个“摸到边界再稍微退回来”的做法,是我最常用的调参策略。

3.4 温度与风扇策略:别让矿机无声无息烧掉

设备长时间高负载运行,散热比算力更值得关注。3.1.1版本里直接内置了温度控制参数,不需要外部脚本。配置中gpu-fan: "45-85"表示风扇转速范围从45%到85%随温度自适应,temp-target: 70是目标温度,temp-overheat: 85是过热阈值,达到这个值程序会主动降频。这块参数用得好,能避免显卡长期在90度以上的劣化环境里跑。

顺便提一句,CGMiner读的是GPU核心温度,不读显存温度。如果显卡显存过热,在软件日志里看不到异常,只能通过整机稳定性判断。这属于老版本软件的固有边界,遇到频繁掉设备,别一直在intensity上找原因,先摸一摸散热片是不是已经烫手了。

4. 日志、算力与拒绝率:看穿黑匣子

4.1 五分钟看懂挖矿日志

CGMiner启动后,屏幕会持续刷新统计信息。一堆不断跳动的数字里,真正需要关心的只有四类指标:Accepted(接受数)、Rejected(拒绝数)、Stale(过期数)和Hardware Error(硬件错误)。这四个指标共同决定你实际上交到矿池的有效算力,而不是设备端显示的哈希率。

# 把日志输出到文件,方便事后分析 cgminer.exe -c cgminer.conf --log=5 --log-file=miner.log

--log=5表示日志级别,5是包含调试信息的最详细级别;--log-file把屏幕输出同时写入文件。如果你发现窗口里日志刷新太快看不清,这个命令可以让你在挖矿结束后慢慢翻。我习惯每次调整参数都新建一个日志文件,这样同一个参数组合前后对比很简单,不需要凭记忆判断。

4.2 Accepted/Rejected/Stale:三个名词决定收益

Accepted代表矿池认可的有效算力,这是一切收益的基础。Rejected出现的原因,最常见的是矿池端和矿机端的“难度”配置不一致,或者矿机提交的share在传输中损坏。Stale相对特殊,指share计算太慢、超过了矿池设定的有效期,交上去已经成为废票。

# 运行时看核心指标,按键盘 s 键

在交互界面按S可以查看详细统计,包括:Difficulty Accepted、Difficulty Rejected、Discarded。这三个值和百分比是判断矿机健康度的核心依据。如果Rejected比例高于2%,优先检查网络延迟;如果Stale偏高,优先看看queue和expiry参数,它们控制着任务缓存的有效期和重试机制。

4.3 真实算力与设备标称算力的差距

设备本身显示的MHS av是核心计算速度,但这是理论值。真正贡献给矿池的算力,要看你单位时间内Accepted的数量。有些设备标称能达到400 MHS,实际稳定Accepted只有360。这中间的差额,一部分是软件开销(日志、网络、UI渲染),一部分是Stale和Rejected损耗。

调优的目标不是让MHS av最大化,而是让Accepted / (Accepted + Rejected + Stale)最大化。我曾经调高intensity让哈希率涨了10%,结果Rejected从0.5%飙到4%,实际收益反而下降。后来把intensity从17回调到15,哈希率降了3%,但Accepted比例提高了,收益实实在在变好了。

4.4 重启后参数是否生效

配置文件修改后需要重启进程才能完整加载,但运行时的--set-device-*命令是即时生效的。如果不需要改算法和矿池地址,只调intensity和worksize,完全不用重启——这也是我强烈建议在生产环境先跑起来,再慢慢用实时命令调参的原因。反复重启矿机对USB设备连接稳定性有隐性损耗,尤其是在老设备上,重启十次可能有一次设备起不来。

5. 避坑与排查:老版本在Windows上的五条血泪教训

5.1 双击exe闪退,没有任何提示

现象:窗口一闪就没了,或者系统直接报“已停止工作”。
原因:绝大多数是缺少VC++ 2010运行库,或者exe依赖的DLL没有放在同一目录下。还有人把64位系统的文件拷到32位系统上跑,系统兼容性直接不认。
解决:先确认系统位数,再装对应VC++运行库;然后用Dependency Walker打开exe,看哪些DLL标红缺失。补齐后还是闪退,就把CGMiner整个目录放在纯英文路径下再试。这个坑我以前踩过多次,路径中带中文或空格时,老版本对路径解析非常脆弱。

5.2 设备管理器能识别,但CGMiner报“No devices found”

现象:设备插上了,系统也弹出“新硬件已就绪”,但运行cgminer.exe --ndevs显示设备数量为0。
原因:CGMiner访问硬件设备走的是专门的驱动接口,系统识别的是串口设备,但CGMiner要求的驱动协议没有被绑定。多半是USB驱动装成了USB Serial Port,而不是矿机厂商提供的专属驱动。
解决:卸载当前驱动,重新安装矿机厂商匹配版本的驱动。安装顺序必须是先驱动、后设备。我遇到过一个更隐蔽的情况:主板USB口供电不稳,设备枚举到了但握手失败。换一个直连主板后置USB口(不要通过Hub),问题立刻消失。

5.3 窗口显示哈希率很高,但矿池后台统计为0

现象:设备端MHS av数值漂亮,矿池后台长时间无算力显示,Accepted一直是0。
原因:矿池地址拼写错误,比如stratum+tcp写成了stratum,或者端口号不对;更常见的是--user账号名没带矿池要求的前缀或后缀,矿池根本无法把share对应到你的账户。
解决:先看日志里有没有Accepted字样,完全没有就重点排查pool地址和端口;然后用浏览器直接访问矿池状态页,用你的账号名.矿机名搜一下设备是否出现在矿池后台。正常情况下连接成功后几分钟内就能看到设备上线,如果长时间没有,问题不在矿机端,而在账号或池配置。

5.4 运行半小时后设备丢失,必须重启软件才能恢复

现象:挖矿进程一直在,日志突然停住,GPU从设备列表中消失,或者MHS av瞬间掉到0。
原因:驱动在高温或高负载下崩溃,常见于intensity设置过高、或散热不足触发驱动自我保护。另一个容易被忽略的原因:Windows定时关机/休眠设置,默认在通电状态下可能进入睡眠,USB设备整体断电。
解决:控制面板把电源计划设为“高性能”,关闭硬盘和USB选择性暂停;intensity回退到保守值;把temp-overheat从85降低到80,让程序在驱动崩溃前主动介入。如果设备还是掉,看Windows事件查看器里有没有驱动崩溃记录,有的话基本锁死驱动问题。

5.5 配置文件改了不生效,重启后还是旧参数

现象:明明在cgminer.conf里改了intensity,启动界面显示的还是原来的值。
原因:命令行参数优先级高于配置文件,你启动时可能带了老参数的--set-device-intensity;还有一种可能,配置文件存的路径不是CGMiner默认读取的位置。
解决:启动命令中显式指定-c 完整路径\cgminer.conf,同时检查命令里是否有残留的参数覆盖配置。我习惯的做法是:命令行参数只保留-c和--log,其余全部写进配置文件,这样不会出现两处设置互相打架的情况。

6. 把挖矿进程变成Windows服务:重启自恢复脚本实战

这个版本的CGMiner没有原生Windows服务模式,进程崩溃后不会自愈。我的做法是写一个批处理配合计划任务,实现“掉线自动重启”和“定时重启防止内存泄漏”。实际生产环境里,很多问题不是版本本身造成的,而是进程长期运行后网络重连逻辑出Bug,定期重启反而是最简单有效的后悔药。

@echo off cd /d D:\miner\cgminer-3.1.1-windows :loop echo [%date% %time%] starting cgminer... cgminer.exe -c cgminer.conf --log=5 --log-file=miner_%date:~0,4%%date:~5,2%%date:~8,2%.log echo [%date% %time%] process exited with code %errorlevel% echo restarting in 10 seconds... timeout /t 10 > nul goto loop

这段批处理的逻辑是死循环:启动CGMiner,进程退出后等待10秒再拉起。%errorlevel%记录退出码,如果CGMiner是正常收到Q退出,退出码为0;如果是崩溃,退出码非0,两者都会触发重启。日志文件名带日期,方便日后按天回溯。

配合Windows计划任务,把系统启动自动运行这个批处理加进去:任务计划程序创建任务,触发器选“启动时”,操作选“启动程序”,指向这个bat。另外再加一个每4小时间隔的计划任务,执行taskkill /IM cgminer.exe /F,强制杀掉进程让批处理循环拉起,相当于一次温和重启。

检测是否还在正常运行,用一条PowerShell命令定时检查:

$proc = Get-Process -Name cgminer -ErrorAction SilentlyContinue if ($proc) { "OK" } else { "DOWN" }

如果对自动化要求更高,可以把程序内嵌的API打开(3.1.1版本有实验性的API端口),通过HTTP请求读取算力和温度并写进监控系统。这一步实现起来有一点门槛,但效果立竿见影:所有参数数据和设备健康状态一目了然。

从压测到生产,我每次接手一批矿机,固定流程都是先配置环境、再单机跑通、确认Accepted稳定后,才批量部署和加计划任务。这套流程走了很多遍,几乎没有遇到“参数组合对但收益没道理”的玄学情况——绝大多数异常都能在日志和退出码里找到答案。希望对拿到这份资源的你也有帮助。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询