# 与矿池中转机之间建立更安全的 SSL/TLS 连接

By [Untitled](https://paragraph.com/@0xec91cf635a5ff45dda384c7c3800657b05f42a1f) · 2021-12-16

---

ETH 挖矿时连接矿池常用的前缀是 `stratum+tcp://` ，这个大家都知道了。其中 Stratum 是为矿工和矿池进行通信所设计的网络协议，基于 TCP 传输。

大多数矿池使用的都是 Stratum V1 协议，而该版本下网络通信为明文。熟悉网络安全的工程师都知道，明文通信的协议理论都可能遭受到 “中间人攻击”。且该协议特征明显，经过大量数据训练，通过机器学习，该协议非常容易被识别。也就知道了你在家都干些啥 = =、

虽然有基于 TLS 加密后的 Stratum 协议，常见为 `stratum+ssl://`，但是也仅仅只是明文变成了加密数据，其外部特征不变。依然知道你在做什么。

绝望啊，有什么好法子吗？ 有的！

* * *

其实早在几年前，当时 Shadowsocks 被曝出已经能精确识别并封锁。大量搭建了 SS 的国外 VPS IP 被屏蔽，论坛一片哀嚎。人们舍不得放弃这样一款轻量、高效的的代理工具，但也不得不开始担心自己的安全。被知道你在翻墙可不是什么好事儿...

后来，Gost 出现了。它！@#%#^。！&@# 好！废话不多说直接进入主题

展开目录
----

[Github 项目主页](https://github.com/ginuerzh/gost/tree/master) [官方文档](https://v2.gost.run/) [下载地址](https://github.com/ginuerzh/gost/releases/latest)

### 展开目录

测试环境 Debian 10

   默认你会控制防火墙以及 wget 等基础软件

下载适用于 Linux x86\_64 的 gost

    wget https://github.com/ginuerzh/gost/releases/download/v2.11.1/gost-linux-amd64-2.11.1.gz
    gzip gost-linux-amd64-2.11.1.gz -d
    mv gost-linux-amd64-2.11.1 gost && chmod +x gost
    

接下来通过几条例子来学习如何建立一条 TLS 隧道:

`./gost -L=http+tls://:8443 -F=forward+tcp://eth.f2pool.com:6688`

`./gost -L=http+tls://:8443 -F=forward+tls://asia2.ethermine.org:5555`

`./gost -L=http+tls://:8443 -F=forward+tcp://asia2.ethermine.org:4444`

以上三条例子中，`8443` 代表了后面矿机上 gost 连接的端口，可以自定义。最后的域名表示这三条分别连接了 `鱼池TCP端口`，`E池SSL端口`，`E池TCP端口`。请务必确保他们与你实际需要使用的保持一致！

因为本文介绍的 gost 隧道使用的是 http+tls 的协议，目的是伪装成普通的网页流量访问。所以在服务端端口的选择上请尽量使用比较常见的 http ssl 端口。

例如：

    443 (太热门了... 别了吧)
    2053
    2083
    2087
    2096
    8443
    

输入完你想要测试的命令后 gost 开始跑起来了。先别管它，我们回到矿机。

### 展开目录

下载 Windows 64 位 gost：[点我下载](https://github.com/ginuerzh/gost/releases/download/v2.11.1/gost-windows-amd64-2.11.1.zip)

解压到 `C:\Windows\System32` 目录，方便使用。（我真懒）

新建一个 txt 文本，将下面的内容拷贝进去：

    @echo off
    gost-windows-amd64 -L=tcp://:54321/0:0 -F=http+tls://1.1.1.1:8443
    
    pause
    

其中 `54321` 为你矿机实际连接的端口，54321 后面跟的 `/0:0` 原本是应该填地址与端口，但这里用不到又不能不填，所以随意填了个。最后的 `1.1.1.1:12345` 必须修改为你的 `服务器IP` 以及当时定义的 `连接端口`，比如教程中的服务端就填写的 8443，所以这里也是 8443。

修改完毕后将文件改名为 `gost.bat`，双击运行开始调试。

### 展开目录

最后设置下矿机或挖矿软件。

将需要挖的池子的 `地址与端口` 修改为 `127.0.0.1:设置的端口`。例如上面客户端设置的就是 54321。

注意此处不能使用 SSL，即使你服务器端要连的是 SSL 的矿池，这里也只需要 TCP 的就行

如没有啥意外，它挖起来了。

如果运行或连接失败，仔细检查你前面的各项设置是否互相匹配。

* * *

展开目录
----

调试完成，确认无误后。就需要将它们放在后台默默干活了

### 展开目录

来个简单点的，在你已经准备好的命令前后加上以下内容↓

前：`nohup`, 后：`&`

比如：`nohup 你的完整命令 >/dev/null 2>&1 &`

然后会得到一个讯息，比如 `[1] 5721`，这是你这条命令的 PID，记下来：touch 5721。下次需要干掉他的时候 `ls` 一下，看到是 5721，然后 `kill -9 5721` 就结束掉它的后台运行了。

### 展开目录

将你测试好的 gost.bat 丢入 `C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp` 目录中。这样下次开机登录后就会自动启动了～以后需要修改麻烦你去这里找它。

---

*Originally published on [Untitled](https://paragraph.com/@0xec91cf635a5ff45dda384c7c3800657b05f42a1f/ssl-tls)*
