LoveBundle 单端口全协议解决方案

LoveBundle 是什么?

对于服务器来说,端口似乎用不完,但常用端口是很紧缺的资源(特别是目前端口白名单的传闻),很多协议使用标准端口(如443)能达到最好的效果,但是一个端口只能跑一个进程,要是想在一个端口上跑所有协议该怎么办呢?

LoveBundle 就是这样的一个应用,专为 HyperApp 用户提供,使用 haproxy 来自动分流各种协议的流量,从而实现用一个端口(443)来提供所有类型的服务,你只需要为不同的代理使用不同的混淆域名。

比如当你使用 bing.com (可以自己定义域名)连接时 LoveBundle 会将其识别为 SS 流量,当你用 cloudflare.com 连接时会将其识别为 SSR 流量,使用 mydomain.com 链接时会自动识别为 Cisco AnyConnect 流量。

LoveBundle 包含哪些应用?

  • SS TLS 混淆 —— 你懂得
  • SSR tls1.2_ticket_auth —— 你也懂
  • V2Ray VMess TCP TLS —— 女神 V2Ray
  • V2Ray VMess WebSocket TLS —— 女神第二种食用方法
  • nghttpx HTTP2 TLS —— 高效的 HTTP2 + TLS 代理,即使在 SS/SSR 被严重干扰的时候由于其小众性质也一直超稳定。
  • ocserv: Cisco AnyConnect VPN —— 广泛使用的企业级 VPN,出自 Cisco,全端客户端免费。

其中 V2Ray/nghttpx/AnyConnect 需要SSL证书的可以自动生成自签证书,也支持自动获取可信的 LetsEncrypt 证书,通过 certbot 来自动生成,非常简单,具体使用请参阅 certbot 自动生成LetsEncrypt 证书教程 下文也会有提到怎么使用。

什么是 HyperApp

HyperApp 是一个iOS 上的自动化部署工具,提供可视化的配置界面,就算你不懂任何 Linux 命令也可以在 Linux 上一键部署多达几十个应用,LoveBundle 是其中之一。

HyperApp on AppStore


LoveBundle 配置

我们需要为除了SS/SSR之外的其它服务准备不同的子域名,如果你没有域名也不要着急,你可以使用 xip.io 提供的免费服务。你只需要简单的在 xip.io 前面加上的IP,就能获得一个域名,IP前面还可以加无限子域名,下文将直接以 xip.io 来举例。如果你了解怎么配置域名解析,可以自行添加DNS解析并替换成相关的域名。

配置界面

配置详解

HyperApp 商店中点击 LoveBundle,在出现的配置页面中按如下填写:

注意,如果你只想开启一部分功能,只需要填写对应服务的子域名即可,没有填写域名的服务将不会开启

通用配置

* Port              LoveBundle 监听的端口(推荐443)
* Password          此密码用来登录 SS/SSR/AnyConnect
* Username          此用户名可以用来登录 AnyConnect

其中只有 AnyConnect 需要会用到用户名,SS/SSR 认证只用到密码部分。

SS 和 SSR

* SS Domain         SS TLS 混淆的域名(可以任意域名,不需要解析)
* SS Method         SS 的加密协议

* SSR Domain        SSR TLS 混淆的域名(可以任意域名,不需要解析)
* SRR Protocol      SSR 协议
* SSR Method        SSR 加密方法

你可以,在 SS Domain 中填入 bing.comSSR Domain 中填入 cloudflare.com 并且选择加密方法。

SS/SSR 的混淆域名可以随便填,但下面的其它服务就需要一个指向你服务器的真实域名了。

V2Ray 配置

* V2Ray UUID        V2Ray 的 uuid,这儿会自动生成一个 (默认 alterID 是32)
* V2Ray TLS         V2Ray TLS 的域名,推荐使用自己的域名+certbot证书。
* V2Ray WS          V2Ray WebSocket TLS 的域名,推荐使用自己的域名+certbot证书。

假设你的VPS IP是 10.10.10.10,你可以在 TLS Domain 中填入 tls.10.10.10.10.xip.ioWS Domain 中填入 ws.10.10.10.10.xip.io

如果你有自己的域名,做好解析后,可以在这儿填写你自己的域名。

HTTP2 和 Cisco AnyConnect 配置

* HTTPS Domain      HTTP2 TLS Proxy 的域名,推荐使用自己的域名+certbot 证书。

* OCServ Domain     AnyConnect 的域名,可以填写 IP(但是可能导致提示证书不可信的问题)。推荐使用自己的域名+certbot 证书。
* CN no route       开启后将会忽略国内IP段,只对国外IP进行代理。

和上面一样,我们在 HTTPS Domain 中填入 http2.10.10.10.10.xip.io.

OCServ 就是 Cisco AnyConnect,我们可以填写另外一个域名 ocserv.10.10.10.10.xip.io

Volumes

certs   默认为 certbot 或者 Nginx SSL Support 的证书输出目录,
        LoveBundle 会自动在这里寻找可信的证书。
        如果找不到则会在下面的目录里生成自签证书。
CA      LoveBundle 用来生成自签证书以及VPN登录证书的目录

其中 V2Ray TLS/WS 和 HTTP2/AnyConnect 会用到 certsCA 里面的证书。SS/SSR 不需要,你甚至可以使用任何一个域名来连接 SS/SSR(原理请参考下文背景知识里面的真假 TLS)。


客户端配置

SS 配置方法

* 服务器           VPS IP
* 端口            上面设置的端口
* 密码            上面的密码
* 混淆            TLS
* 混淆域名         上面的 SS Domain

SSR 配置方法

* 服务器           VPS IP
* 端口            上面设置的端口
* 密码            上面的密码
* 加密、协议       和上面一一对应
* 混淆方式         tls1.2_ticket_auth
* 混淆参数         上面的 SSR Domain

V2Ray TCP TLS 方式配置

* Address           上面的 V2Ray TLS Domain(需要解析到你VPS上)
* Port              上面设置的端口
* UUID              上面的UUID
* alterId           32
* Network           tcp
* TCP               ✅ Conection Reuse
* TCP header typ    none
* TLS               ✅
                    ✅ Allow insecure (如果使用自签证书)

V2Ray WebSocket TLS 方式配置

* Address       上面的 V2Ray WS Domain(需要解析到你VPS上)
* 端口/UUID/alterID 和上面的保持一致
* Network       WebSocket
* WebSocket     ✅ Conection Reuse
* path          /
* TLS           ✅
                ✅ Allow insecure (如果使用自签证书)

HTTP2(nghtpx) 连接方法

可以参考 nghttpx 的教程

Cisco AnyConnect 链接方法

* Address   上面的 OCServ Domain

一切就绪!

开始尽情冲浪吧!请问你是GG还是MM?

.

.

.

稍等 ……

上文是用自签证书来链接的,V2Ray/HTTP2/AnyConnect 默认都会提示 TLS 链接不受信任。上面的配置中 V2ray 已经开启了 Allow Insecure 选项,所以会忽略自签证书的安全问题。AnyConnect 检测到自签证书时也不会自动重连,如果你追求完美可以继续阅读下面 👇 的段落,来免费自动生成可信的 SSL 证书。放心不难的!

即使你没有自己的域名也可以尝试使用上面的 xip.io 来进行下面的步骤(只是成功率很低,因为LetsEnrypt 对域名的请求次数有限制,xip.io 的所有子域名公用限制次数……)。


背景知识

真假 TLS

SS/SSR 的 TLS 混淆并非是真正的 TLS 流量,而是通过伪装成 TLS 的特征来欺骗运营商/观察者,使其将其当做 TLS 流量。

V2Ray/nghttpx/ocserv 则是真正的 TLS,真正的 TLS 需要服务端有 SSL 证书,证书也分为自签和可信的两种。

自签证书和可信证书

简单来说,如果自签的证书,浏览器、AnyConnect 等客户端链接时都会显示一个安全警告(最常见的比如你访问 12306.cn)。如果你打算使用自签证书则不需要做任何额外的配置,LoveBundle 会自动生成。 可信的 SSL 并不会显示安全警告,你可以通过商店里的 certbot 来自动生成可信的SSL(LetsEncrypt)证书,LoveBundle 会自动在 certbot 目录中寻找指定域名的证书,如果没有找到则会自动生成自签证书。

获取可信的 SSL 证书

你上面应该也看到了,为了开启 LoveBundle 全部功能,我们共需要四个子域名:

  • V2Ray TCP TLS
  • V2Ray Websocket TLS
  • HTTP2 (https)
  • AnyConnect

使用 certbot 获取证书

先稍作准备……

  1. 将你的域名解析到 VPS 上域名解析的相关介绍与方法见域名解析的方法。如果你没有域名可以参考 如何获取免费顶级域名 来注册一个免费的域名。
  2. 参考 certbot 教程 来获取可信的 SSL 证书。

下面在 HyperApp 商店中,选择 certbot 并按下文填写配置:

  1. 假设在 1. 中注册了 love.ml 域名,然后将 v2ray-ws.love.ml v2ray-tls.love.ml http2.love.ml oc.love.ml 分别指向到你的VPS IP上。
  2. 然后在 certbot 的域名中填入四个域名,用英文逗号分隔, v2ray-ws.love.ml,v2ray-tls.love.ml,http2.love.ml,oc.love.ml
  3. 填入你的邮箱(邮箱将用来接收证书过期通知)
  4. 配置完 certbot 后,点击 安装,运行结束后,certbot 的状态会变成 existed xxx minutes 成功后你会得到三个可信的 SSL 证书。
  5. 更改 LoveBundle 的配置,分别填入对应的域名即可。LoveBundle 会自动去对应的目录寻找证书。
  6. 点击 LoveBundle 菜单 安装 下面的 更新配置 将新的配置应用到 VPS 上面。

等待成功后,你的所有服务都是可信的 TLS 了!


结尾

FAQ

LoveBundle 全开会占用多少内存?

服务全开的话 80M 左右

我不想开启某个服务怎么办?

只要不填相关服务的域名即可,只要没有域名就不会开启服务。

有问题解决不了怎么办?

不要找我私聊,进 HyperApp Telegram 群 详细描述你的配置方法以及为什么不能用即可。

results matching ""

    No results matching ""