MENU

【歪门邪道】利用闲置vps进行挖矿

April 30, 2018 • Read: 1609 • 瞎折腾

俗话说下雨打孩子,闲着也是闲着。既然这么闲,那么就用服务器的CPU资源做点事吧。这次挖的是XMR。

486df601dcd0b4c47e9754750fbe3243.gif

0 准备

想要挖矿,首先需要一个电脑,一个对应币种的钱包和一个矿工+矿池。

电脑

这里我使用了我三台目前正在闲置的服务器,其中一台就是目前正在运行网站的服务器,还有两台位于Vultr洛杉矶和日本机房。另外一台位于conoha的东京机房,暂不参与挖矿。原因是conoha对于服务器使用上有很严格的限制,虽然官网没说,但是根据网友反馈,每月使用的流量超过一定数额后会开启限速,而前几天我登陆conoha时发现我服务器的下载速度已经被限制到了60KB/s,因此为了防止挖矿占用大量CPU资源而导致被封,因此这台服务器不作为矿工。

目前这三台服务器的情况是:

网页服务器CPU使用率:

band.png

洛杉矶服务器CPU使用率:

us1.png

日本机房CPU使用率:

TIM截图20180430143433.png

可见这三台服务器的CPU日常都处于歇工状态。因此以挖矿的形式利用起来。虽然Vultr和Bandwagonghost对于CPU使用方面很开放,但是为了保证服务器能够有额外的CPU资源处理日常和突发事务,我对三台服务器的挖矿进程做出如下限制:

BandwagonHost上挖矿进程将只能占用40%的CPU时间,剩余的60%为网页和数据库做准备;Vultr上的每台服务器将占用50%的CPU时间,剩余50%用作处理网络流量。总的下来日常的服务器CPU使用率在60%~70%,我想这对于服务商来说应该还是可接受的。

钱包

这里我使用的是Monero官方提供的程序。这个在Monero官网上就可以找到,使用方法在这里不是重点,重点是收款栏中的钱包地址,这个要用来接受挖矿回报的。另外诸位读者也可以通过如下截图的地址给我发送XMR币。

钱包.png

矿工、矿池

在矿池的选择上,我选择的是nanopool。它使用起来比较简单,也无须注册什么账号,方便得很。而矿工程序,我选择的是纯CPU的xmr-stak。

1 部署矿工

下载源码

截止当前,xmr-stak的最后更新是2018年4月19日,26a5d65号提交。直接在网页上下载zip格式的压缩包或者直接在服务器上git clone都可以。在这里需要注意的是源代码默认会有2%的开发者贡献。换言之程序默认将会每100分钟为开发者挖2分钟的矿作为贡献,如果你想最大化收益的话,请在./xmrstak/donate-level.hpp文件中修改。

编译

xmr-stak依赖的编译工具是Cmake。除非你用的是LFS(Linux From Scratch,从源码编译可用的Linux系统),一般情况下你都可以直接在软件包管理器中很方便的安装它。推荐使用Debian9.

apt-get install -y libmicrohttpd-dev libssl-dev cmake build-essential libhwloc-dev

xmr-stak官方提供编译指南,因此我就不多赘述了。值得注意的是我们要在服务器上进行挖矿,而服务器多半是没有GPU的,因此Cmake时请附加-DCUDA_ENABLE=OFF-DOpenCL_ENABLE=OFF来关闭对GPU的支持。如果你也不想要它内建的http服务,你可以通过-DMICROHTTPD_ENABLE=OFF来关闭。

编译完成后在build文件夹下会有bin文件夹,该文件夹内的xmr-stak就是主程序了,在使用之前需要chmod +X xmr-stak赋予其运行权限。至此我们就可以开始配置了。

配置

首次运行xmr-stak文件,按照提示进行配置即可。如果想要使用网页监控,那么选取一个1024以上的端口作为端口号即可。接着按照提示输入你的矿池地址,nanopool提供了几个服务器,

地区地址
欧洲xmr-eu1.nanopool.org
欧洲xmr-eu2.nanopool.org
美国东部xmr-us-east1.nanopool.org
美国西部xmr-us-west1.nanopool.org
亚洲xmr-asia1.nanopool.org
日本xmr-jp1.nanopool.org
澳大利亚xmr-au1.nanopool.org

对于每个地址,nanopool都提供两个端口:普通的14444和支持SSL/TLS加密的14433。个人推荐的话,14433更好一些。

选好矿池地址后会要求你输入用户名或者钱包地址。nanopool的格式如下:

钱包地址.矿工名称/电子邮件

因此我的地址写成后应该是:

43sPemfDbYXKZcRVvG2MFj35ZZ5K3cwbHXt8HH47eTMdQDiwHXFVbyKJHSwLR1RGPT1gQ3UVUw73CdPMAYa6XyTe3pxHjtT.SKB2/hurui200320@126.com

关于nicehash和多矿池就因人而异了。我这里都不使用。进行了第一次配置后,我们就可以进行细节上的微调了。在xmr-stak的同级目录下将会出现三个文件:config.txtpools.txt和cpu.txt。这些分别对应xmr-stak、矿池和CPU的设置。在config文件中,我将daemon_mode调整为true,这样矿工可以后台运行。同时还在HTTP Authentication处增加了网页的登陆验证,这样可以防止别人查看你的统计信息。

而CPU.txt中可以配置每个逻辑核心CPU的使用情况,其中自带英文说明。但是因为我的服务器大多只是单核心的,因此没必要进行设置。

外部限制CPU使用率

如果xmr-stak成功连接到矿池,那么他就会立刻开始工作。这时候如果你使用htop这类工具看CPU使用率,你会发现它占用了全部的CPU使用率,这是很容易招致封号的,因此我使用cpulimit进行cpu限制。这个小工具是开源的,你可以从源码编译,也可以轻松的使用软件包管理器进行安装。具体的使用方法是:

cpulimit -e [xmr-stak所在路径] -l [每核心可使用的CPU资源,范围0-100]

其中要注意的是-l参数后面是每个核心的,如果你有四核心而想让总体使用40%,那么你应当设置-l 10,这样四核心加起来就是40%了。

开机自启动

服务器嘛,搞不好就会重启。因此将矿工加到开机自启动中是个不错的主意。这里使用了rc.local,该文件在不同系统中使用方式和开启方式不同,如无效请检查rc-local服务以及rc.local文件。自启动配置如下:

[xmr-stak所在路径] -c [config.txt所在路径] -C [pools.txt所在路径] --cpu [cpu.txt所在路径] &
cpulimit -e [xmr-stak所在路径] -l 50

随后重启一下查看效果即可。至此,一台矿工的配置就完成了。如果你有多台服务器,在每台服务器上重复上述操作即可。

2 实际效果

忙活了这儿大半天,是时候看看成效了。如图是我一下午在nanopool的成果:

TIM截图20180430192134.png

这一下午服务器一直好好的,但是nanopool却断断续续的跟我说三个节点掉线了,其中位于vultr日本机房的SKB2节点甚至都一直没有上过线。该节点目前的情况是:

jp1LOW.png

嗯,迷之低产出。不知道为什么,都是同样的vultr套餐,洛杉矶那个就相对好一点了:

USLOW.png

而我们这个有着3个核心的网页服务器呢,好像更好一些:

webHIGH.png

而且看样子它还找到了两个块:

blocks.png

然而,目前为止并不能保证实时上线,也不知道问题出在哪里。相比之下,该矿池算力第一的大佬,人家的算力嘛,大概也就是我的两万倍嘛,人家730个节点,我3个,也没差多少嘛。人家每小时产出约40USD,我这每个月产出2USD,也还行嘛。

隔壁大佬1.png

大佬2.png

表情包.jpg

3 关于掉线的一种猜测

刚刚正当我要点击发布文章时,突然发现图像里出现了这么个峰值:

峰值.png

我:表情2.jpg

然而我又赶紧看了一眼SKB3的状态,仍然是44Hash/s稳如狗。所以据我猜测三个节点之所以断断续续、SKB2节点至今仍未上线,我猜测应该是算力不足导致的。图表统计显示节点在线时为210Hash/s,但是实际远远不够,而为了节省矿池的连接数,矿工程序将计算出来的hash暂时储存起来,等到一定数量时再一起发给矿池。因此这样粗略计算,SKB2节点4Hash/s,那么其首次上线应该在启动后的9~27小时。届时其将向矿池持续以210Hash/s发送10~30分钟。

所以。。。果然算力还是重点啊。看来是时候买个新路由器,重新打开我那个56核的双路E5了。不过这些嘛,就是下期的事了。

789afd73e43432b3d877de08408d8178.gif


知识共享许可协议
【歪门邪道】利用闲置vps进行挖矿天空 Blond 采用 知识共享 署名 - 非商业性使用 - 相同方式共享 4.0 国际 许可协议进行许可。
本许可协议授权之外的使用权限可以从 https://www.skyblond.info/about.html 处获得。

Archives QR Code Tip
QR Code for this page
Tipping QR Code
Leave a Comment

已有 12 条评论
  1. 蜡笔小新 蜡笔小新

    你是怎么后台挖矿的啊,我用的screen,然后cpulimit命令则说no process found

    1. @蜡笔小新我这边没用screen,直接在命令后面加 & 就行了,要结束的话直接用htop之类的结束

    2. 蜡笔小新 蜡笔小新

      @天空Blond嗯,这个搞定了,我有多个服务器同时挖矿,使用同一个钱包,需要怎么设置啊

    3. @蜡笔小新在矿工名称那里区别一下,不做区别的话也无妨

    4. 蜡笔小新 蜡笔小新

      @天空Blond非常感谢,再问一句,这个博客网站是你自己写的吗,还是用的开源的模板

    5. @蜡笔小新不是啊,付费模板

    6. 蜡笔小新 蜡笔小新

      @天空Blond这个付费模板叫什么啊,我感觉挺好看的。

    7. @蜡笔小新Mirages

    8. 蜡笔小新 蜡笔小新

      @天空Blond我百度了以下,好像mirages只是个主题,你能给个购买链接吗

    9. 蜡笔小新 蜡笔小新

      @天空Blond我用了梯子也打不开上面这个网站,能加下你的qq吗

  2. 对挖矿还真不了解,看了2遍都没有搞懂

0:00