1.前言
其实网上关于此类教程应该已经有不少了,但是发现能搜索到的教程都是直接采用gost默认证书,这样可能会出现中间人攻击,因此在这里写一篇更为安全的完整教程,就目前来说,安全性还是非常高的,网上有很多说自己加密了但还是被发现的,我猜是他们使用了带抽水的内核,抽水的连接一般都是明文TCP,所以你还得屏蔽抽水(可以用Proxifier软件实现,自行搜索)…….扯远了直接开始教程吧
2.准备
服务器选择没有什么讲究,只要是服务器距离矿池地址近,且到国内无loss即可,延迟并没有那么敏感,实际上我顶着200ms延迟连续跑了几个月也是0拒绝率。但是最关键的一点就是不要用国内服务器!
另外如果你只是临时用一下不考虑安全问题,也是不需要域名的,但是我这篇教程中为了安全性需要域名并申请DV证书,因此需要自备域名,当然了网上有大量的教程免费获取域名,这一点也完全不用担心,比如说我就是用的nic.ua免费申请的pp.ua域名。
3.服务器端配置
gost的github项目地址:https://github.com/ginuerzh/gost/releases/ 目前最新是2.11.1版本,因此本篇文章就用该版本实战演示
wget https://github.com/ginuerzh/gost/releases/download/v2.11.1/gost-linux-amd64-2.11.1.gz
gunzip gost-linux-amd64-2.11.1.gz
mkdir /root/gost
mv gost-linux-amd64-2.11.1 /root/gost/gost
chmod +x /root/gost/gost
网上的教程一般都是直接./gost -L=relay+tls://:443,但是本教程自然得安全性拉满,我们还需要添加可信证书以及证书校验再加上密码访问
之前我们准备了自己的域名,先把它解析到自己的服务器IP上,然后就接着申请免费证书,直接去腾讯云 申请个免费DV证书即可,之所以用这个不Let’s Encrypt是因为亚洲诚信的有一年时间,Let’s Encrypt的只有三个月,考虑到gost不带自动续期功能,自然选择时间长的
申请好了之后下载证书,反正类型里面都没有带PEM证书的,之后都要进行转换,随便下个nginx类型的吧
下载下来解压有四个文件,挑出其中两个文件,一个是xxxx.xxx_bundle.crt,一个是 xxxx.xxx.key,将它们上传至服务器进行转换,对了,请先安装openssl套件,centos就直接yum install openssl,debian就直接apt install openssl
openssl x509 -in xxxx.xxx_bundle.crt -out cert.pem
openssl rsa -in xxxx.xxx.key -out key.pem
好了转换成功,将这两个文件 cert.pem 和 key.pem 移动到/root/gost文件夹下,接着启动服务端,命令如下:
cd /root/gost && ./gost -L="relay+tls://账号:密码@:端口?cert=证书文件&key=私钥文件"
举个例子:设置访问账号5648密码1234,服务器端口8888,证书密钥文件在同一目录下
cd /root/gost && ./gost -L="relay+tls://5648:1234@:8888?cert=./cert.pem&key=./key.pem"
设置账号密码是防止被别人拿去用!
这样服务端就跑起来了,但是直接这样你只要断开ssh进程就会终止,因此需要放到后台运行,安装screen软件, centos就直接yum install screen ,debian就直接apt install screen
创建后台:
screen -dm -S gost cd /root/gost && ./gost -L="relay+tls://5648:1234@:8888?cert=./cert.pem&key=./key.pem"
如果你需要让gost开机自启或者进程掉线之后自动重启,可以创建一个脚本:
#gost服务端的启动脚本
ii=$(lsof -i:8888)
if [ "$ii" = "" ]
then
echo -e "gost在8888端口没有检测到正在运行"
killall gost
screen -dm -S gost cd /root/gost && ./gost -L="relay+tls://5648:1234@:8888?cert=./cert.pem&key=./key.pem"
echo -e "gost尝试启动完成"
else
echo -e "gost在8888端口正常运行"
fi
保存脚本,将其设置为自动任务,一分钟运行一次即可
crontab -e 在编辑界面填入 * * * * * bash 你的脚本文件路径
4.本地客户端配置
下载gost的windows端软件,地址:https://github.com/ginuerzh/gost/releases/download/v2.11.1/gost-windows-amd64-2.11.1.zip
解压出来,将gost-windows-amd64.exe重命名为gost.exe,我图方便直接丢到C:\Windows\System32目录下,这样就可以在cmd中直接调用
然后将之前服务端转换好的证书文件和私钥文件下载下来,至于丢哪个目录就是你自己怎么方便怎么来
gost -L=tcp://:本地代理端口/矿池地址:矿池端口 -F="relay+tls://服务端设置的账号:服务端设置的密码@gost服务端的域名:gost服务端的端口?secure=true&cert=./cert.pem"
举个例子:gost服务端设置的访问账号为5648密码1234,gost服务端的端口8888,gost服务端域名为eth.xxx.com证书密钥文件在E盘下,本地代理端口为16688(随便设置),矿池用的鱼池 eth.f2pool.com:6688 ,并开启双向证书强制验证
gost.exe -L=tcp://:16688/eth.f2pool.com:6688 -F="relay+tls://5648:[email protected]:8888?secure=true&cert=E:\cert.pem"
你也可以创建一个cmd脚本以便以后再次运行,随便创建一个xxxx.cmd文件即可,将以下文本粘贴进去(请自行修改)
@echo off
gost.exe -L=tcp://:16688/eth.f2pool.com:6688 -F="relay+tls://5648:[email protected]:8888?secure=true&cert=E:\cert.pem"
pause
将gost的cmd窗口放着别动保持运行即可
5.挖K内核运行设置
我用的Gminer内核进行举例实战,因为 Gminer 可以用软件禁止它的抽水连接而又不会影响正常运行(不禁止抽水链接会导致前功尽弃)
miner.exe --server 127.0.0.1 --port 16688 --user 挖K用户名.设备名称 --algo ethash
无论是什么内核,只要将矿池服务器设置为127.0.0.1,端口设置为之前gost客户端所设置的本地代理端口即可,不出意外的话,运行结果如下:
“因为 Gminer 可以用软件禁止它的抽水连接而又不会影响正常运行(不禁止抽水链接会导致前功尽弃)”请教大哥,怎么禁止它抽水
微信多少,我准备需要帮忙搭建一下
Proxifier的原理是不是类似矿机不连网,然后用局域网中另一台电脑连上gost,在本地路由器转发端口,矿机再连上那个端口,好像是这样,之前看过一篇帖子是这样写的
腾讯好像被警告了,请问腾讯云花钱么?
你好,可以把你的证书发我用一下吗?那儿都注册不到证书,谢谢
我想问下那个矿机本地代理端口是在哪里看的
请问 Proxifier 禁止抽水的用法 要用什么关键字搜呢。 搜了一圈找不到
请问
因为 Gminer 可以用软件禁止它的抽水连接而又不会影响正常运行(不禁止抽水链接会导致前功尽弃)
这里是需要文章中没有提到的软件吗