上一篇文章 说到近期各大矿池被 GFW DNS 污染的情况。
虽然还没有上升到阻断IP那么严重的情况,但应该只是迟早的事了。
再加上大部分矿池都已宣布停止对中国大陆用户服务,现在就是时候想想该如何应对了。
身在国内,怎样连接到国外的矿池
在很久很久以前,有一堵墙架在大陆与国际互联网之间,它就是 GFW!
从那时起,人们就已经开始想各种办法跨过它。
所以不用担心,此问题已经有解!
大体上可以分为三种情况:
- 直连矿池的国外 CDN 域名
- 使用国外服务器转发矿池端口
- 依靠现有的代理软件为挖矿提供翻墙
直连矿池的国外CDN域名
众所周知,挖矿是门躺赚的活 (矿潮时期)。
而开矿池,抽矿友门的佣金,虽然比挂机挖矿累点,但只要用户体量上去了,赚得只会更多。
作为一个矿池,肯定希望自己的用户越多越好。但架不住有些国家地区法律禁止了挖矿活动。
这里以鱼池举例
在国外,鱼池使用的是 Cloudflare (以下简称 CF)的 CDN 服务为全球矿友提供连接。
而为了服务中国大陆地区用户,鱼池则使用了阿里云的 CDN 服务。想必大家能猜到 CF 的使用体验在大陆地区一定很差吧?但有一个好处是 CF 的 CDN 域名不用担心被大面积阻断。因为除了矿池,还有其他的厂商同样使用 CF 的 CDN 服务。一旦全部阻断,受牵连的无辜厂商肯定是多于需要 “制裁” 的厂商的
结合上一篇分析文章,鱼池使用的 CF CDN 域名为eth.f2pool.com.cdn.cloudflare.net
和 12f713daf74148c18f110d179fc6170c.pacloudflare.com
纠正上一篇文章的一个错误:
当时我认为这种随机数前缀的 CDN 域名是不可持久使用 CDN 域名。不过这几天我观察之后发现这个域名一直没变,并且多个地区测试出的结果都是这个域名。
所以我觉得这个随机前缀域名拿来一直用也是 OK 的,在此纠正一下!
不过 CF CDN 在国内的服务连通性也一般。所以也不会太好用,比较看地区。
像我老家的测试矿机就无法连上,而居住地的测试机器就可以连上但也丢包严重
以下是一些矿池ETH节点的CDN域名,端口保持原来的不变
鱼池海外CDN服务由Cloudflare提供:
eth.f2pool.com.cdn.cloudflare.net
12f713daf74148c18f110d179fc6170c.pacloudflare.com
Ethermine矿池海外CDN服务由CLoudflare提供:
Asia1:49544245d7934e5baaec258728a04c33.pacloudflare.com
Asia2:c2e74ad4719846c686448bd4c8071e88.pacloudflare.com
EU、US地区的链接不推荐使用就不放出了
币安矿池海外CDN服务由AWS提供:
ab189dbfcc17c21af.awsglobalaccelerator.com
使用国外服务器转发矿池端口
这种方法是现阶段最推荐的,但随着 GFW 的包检测以及各地区运营商的包检测开始后也不排除被阻断的可能
能用且用!
转发矿池端口的原理是利用一台海外的服务器将矿池的数据原样转发,在通过自己的端口送出去。
你连上中转机的 IP 或域名 + 端口,就等同于连上了海外矿池。
并且由于是海外机器转发的海外矿池,在钱包地址匿名挖矿的情况下矿池是无法判断你是不是大陆用户的,所以此方法不会受到各大矿池清退大陆用户的影响~
大致原理图:
【待补充】
挖矿流量的传输采用的是基于 TCP 的 Stratum 协议,理论上能转发 TCP 流量的工具都 OJBK
有兴趣了解 Stratum 协议的矿友可以跳转进行阅读:
Stratum协议文档
大家比较常用的是矿池给到的 stratum+tcp:// 前缀,也就是未经加密的普通传输。
有的则采用了 stratum+ssl:// 前缀,是在前者的基础上套了一层 SSL 加密。内容虽不再是明文可见,但两者的特征明显,可被大量训练后的数据模型检测识别。
虽然是这样,但能用 SSL 还是尽量用(虽然自建中转要用 SSL 会麻烦很多很多)
经过这几天的测试,个人倾向于使用以下两种工具进行转发。
下面将 "简单" 介绍下搭建与使用方法,承让了...
( SSL 的使用单独讲)
以下方法均系个人使用,如哪里讲错欢迎指出
请自行检查防火墙是否放行,不懂的话请使用搜索引擎
Realm: 一个全新的流量转发工具
一款由 Rust 编写的高性能中转工具
使用简单,支持转发 DDNS 域名,支持多端口,支持配置文件。作为一款轻量转发工具,个人认为很完美!
Github 直接下载:Github Realm v1.4
使用方法
搭建并测试
需要一台安装了 Linux 系统的服务器,登录 root 用户。
防小白
Debian: ape update -y && apt install wget -y Centos: yum update -y && yum install wget -y
下载 Realm 并赋予执行权限
wget -O /root/realm https://github.com/zhboner/realm/releases/download/v1.4/realm chmod +x /root/realm
- 一条命令开始测试使用
/root/realm -l 0.0.0.0:16688 -r eth.f2pool.com:6688
上一条命令中的 矿池地址与端口 可随意替换为你需要使用的矿池,但不可使用矿池提供的 SSL 端口。
敲完命令后回到矿机进行测试,将挖矿软件中矿池的地址与端口修改为你中转机的 IP 地址与端口 即可开始挖矿。
测试没问题后,你可能会发现一旦关闭服务器的窗口转发就失效了?那是因为那条命令是让 Realm 运行在前台,一旦关闭后就会失效。
如果测试没问题,接下来我们要用更加稳定可靠的方式去运行它。
将需要的转发写入配置文件
Realm 支持通过配置文件启动,我们将需要的转发确定别写入配置文件后,Realm 每次启动就会从配置文件中读取你需要的转发,就不用每次都敲一大串命令啦。
确定你要的转发端口与矿池,以下端口均为举例,请根据自己实际需求修改。
下面的配置文件我将通过 16688,14444,18888 分别转发 鱼池6688,E池4444,币安8888。
写入示例配置文件:
cat > /root/realmconfig.json <<EOF
{
"listening_addresses": ["0.0.0.0"],
"listening_ports": ["16688", "14444", "18888"],
"remote_addresses": ["eth.f2pool.com", "asia1.ethermine.org", "ethash.poolbinance.com"],
"remote_ports": ["6688", "4444", "8888"]
}
EOF
以上内容一次性复制粘贴进终端并回车,或者你一行一行复制粘贴回车复制粘贴回车直到最后一行也彳亍...
可自定义选项:
listening_ports 监听端口,即你矿机连接的端口
remote_addresses 远程地址,即被转发的域名或IP地址
remote_ports 远程端口,即被转发的域名或IP对应的端口
以上三项必须在配置中 一 一 对 应
实际使用时只需将上面给出的自定义选项进行修改即可。
(也有可能会挨揍消耗大量流量并影响正常使用)
配置修改并保存后,让我们测试一下:
/root/realm -c /root/realmconfig.json
然后逐个测试你定义的端口吧~
最后,测试完成,都没问题了。可它还是在系统前台运行~ 关了终端就停止了。
记得先 Ctrl+C 结束正在运行的 Realm!
守护进程
顾名思义,就是保持它一直在运行。
废话不多说我尼玛直接开始:
cat > /etc/systemd/system/realm.service <<EOF
[Unit]
Description=realm
After=network-online.target
Wants=network-online.target systemd-networkd-wait-online.service
[Service]
Type=simple
User=root
Restart=on-failure
RestartSec=5s
DynamicUser=true
ExecStart=/root/realm -c /root/realmconfig.json
[Install]
WantedBy=multi-user.target
EOF
以上内容一次性复制粘贴进终端并回车,或者你一行一行复制粘贴回车复制粘贴回车直到最后一行也彳亍...
创建完成后需要重新加载并手动启动一下服务,最后开启开机自启。
systemctl daemon-reload \\ 重新加载
systemctl start realm \\ 手动启动服务
再次测试无误后
systemctl enable realm \\ 开启开机自启
到这里 Realm 的教程就结束了 ✿✿ヽ(°▽°)ノ✿
教程中 Realm 与其配置文件的位置仅仅是为了方便而放在 root 目录,实际为了方便管理请养成该放哪儿放哪儿的良好习惯(小白忽略)
接下来的工具就很有名了... 但配置难度稍高。我思考了下直接部署和Docker哪一个更适合小白。
还是... 直接部署吧!
Xray:支持 XTLS 的 Best v2ray-core
Project X originates from XTLS protocol, provides a set of network tools such as Xray-core and Xray-flutter.
功能强大,但... 这里我们既不会用到 VMess VLESS 或是 Torjan,也不会用到 XTLS Fallbak
转发矿池主要用到了 Xray 入站代理中的 Dokodemo-Door 协议
Dokodemo door(任意门)可以监听一个本地端口,并把所有进入此端口的数据发送至指定服务器的一个端口,从而达到端口映射的效果。
Xray的配置稍有难度,容易出错,尽量直接说操作不讲原理吧
- 安装 Xray
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install -u root
直接用我写好的现成配置
rm /usr/local/etc/xray/config.json
mkdir /root/xray
cat > /usr/local/etc/xray/config.json <<EOF { "log": { "access": "/root/xray/access.log", "error": "/root/xray/error.log", "loglevel": "warning" }, "inbounds": [ { "listen": "0.0.0.0", "port": 16688, "protocol": "dokodemo-door", "settings": { "address": "eth.f2pool.com", "port": 6688, "network": "tcp", "timeout": 300, "followRedirect": false }, "tag": "F2Pool" }, { "listen": "0.0.0.0", "port": 14444, "protocol": "dokodemo-door", "settings": { "address": "asia1.ethermine.org", "port": 4444, "network": "tcp", "timeout": 300, "followRedirect": false }, "tag": "EPool" }, { "listen": "0.0.0.0", "port": 18888, "protocol": "dokodemo-door", "settings": { "address": "ethash.poolbinance.com", "port": 8888, "network": "tcp", "timeout": 300, "followRedirect": false }, "tag": "BinancePool" } ], "outbounds": [ { "protocol": "freedom", "tag": "free" } ] } EOF 从开始的 cat .... 到上面这行的 EOF,一次性复制之后粘贴进终端然后回车
完成后 systemctl start xray
开启 Xray 进行测试,矿池和所占端口与上面 Realm 示例相同。
确认无问题后 systemctl enable xray
开启开机自启,服务器重启也不用担心转发中断。
有需要请自行修改
修改完成后请重启 Xray 以生效
重启 Xray:systemctl restart xray
Xray 是一个我很喜欢的工具
依靠现有的代理软件为挖矿提供翻墙
此方法应该是现阶段最安全靠谱的方法
前提是你需要有一个 已经能正常工作的代理软件,包括但不限于V2rayN,Clash,Shadowsocks等
请自行打开这几个软件的 “允许局域网连接” 的功能
然后用到了一个大佬提供的工具 6娃,基于 gost 编写的用来桥接挖矿软件与代理软件的工具
以 V2rayN 举例
V2rayN 打开局域网连接。
软件主界面底部显示开放给局域网的 SOCKS5 代理地址与端口为 127.0.0.1:10808。
这时打开6娃,主界面如图
中转机IP:指的是你当前机器在局域网内的 IP 地址,如果希望局域网内其他机器也能连接到六娃,请不要修改。
中转机IP 端口:可自定义
矿池地址与端口:自定义需要连接的矿池,支持 SSL
SOCKS5 地址与端口:本机使用请填写 127.0.0.1 和 你所使用的代理软件提供的 SOCKS5端口,局域网内其他机器请使用中转机 局域网IP 和代理软件提供的 SOCKS5端口。
tips:局域网 IP 即打开六娃默认第一栏的IP
一切设置好后点击启动,并将 中转机IP与端口 填入挖矿软件的 矿池地址与端口 中。
本机使用的话 矿池地址请填写 127.0.0.1,局域网机器使用请填写六娃所在机器的局域网IP。
查看挖矿内核日志,代理软件日志,观察是否正常。
IPLC 节点最好
后话
写了这么多,也不知道能帮助到多少人...
但折腾网络,折腾服务器,折腾 Linux,不是一日能成的。
希望本文能帮助到你...
PS:创建了一个挖煤工人TG交流群,欢迎大家来玩~ 有时间我都会解答大家的问题的!
**请理性发言,拒绝争吵。
大家都是一届小矿工,应当互相帮助。**
读都没读,先来点赞
兄弟,矿池自动添加这个前缀
stratum+tcp://。。。用SSL,前面也会自动添加这个,如何解决啊?
自己手动加一个 stratum+ssl://或者 ssl:// 也行
你好呀 之前按照您提出的教程,用clash及六娃工具成功续上了但好景不长只有一天,之后都是无法连接矿池提示protocol may be wrong ,但直连IP可挖,想请教一下这种错误提示一般是出了什么问题?
有个老矿的mp软件有没有用过
很有用,感觉大佬
写的好,不管有用没用,先赞为敬。
持续分享,很有用。感谢朋友!
换矿池ip地址是一个方案,但换了之后很快又会被封啊,尤其是高收益的矿池。
自己搭建代理也是一个方法,但就是相对麻烦,需要自己维护。花点钱买专业的服务可能更值。
我目前用的是joyminer.com 矿池被墙的解决方案,配置简单,像我这种没任何技术背景的小白,也能轻松搞定。
感谢大佬,顺利解决。