# pass 介绍

## 联系 @soga\_boy\_bot 购买

## 功能

| 功能                                                                        |
| ------------------------------------------------------------------------- |
| Unknown 隧道加密协议，支持连接复用                                                     |
| 内置 Agent AI 助手，配置大模型 API 后可通过 AI 助手操作面板，利用 AI 助手排查转发规则的问题                 |
| 可选 Golang 版或 Rust 版客户端，Rust 版性能更好，内存占用更低                                  |
| 面板管理，简单方便                                                                 |
| proxy protocol 支持，可将 proxy protocol 隐藏在隧道加密协议中                            |
| 负载均衡、故障转移、备用出站                                                            |
| 用户在线 IP 、连接数记录                                                            |
| tcp+udp，ipv4+ipv6                                                         |
| 端口段转发                                                                     |
| 自动更新转发域名解析                                                                |
| Telegram Bot 节点离线/上线提醒                                                    |
| 证书自动申请与续期                                                                 |
| 自定义tls客户端指纹                                                               |
| 支持 MPTCP                                                                  |
| pass 客户端与 pass 面板 webapi 通信，面板修改即可自动更新到客户端；支持通过代理进行对接，提升私密性，并解决对接网络不通畅问题  |
| 面板只需要一个二进制文件即可运行，一键式、数秒完成安装，无需宝塔、mysql、php 等软件，使用轻便的 sqlite3 文件数据库，迁移备份方便 |
| 更多功能详见面板截图                                                                |

## `入站`类型

| 类型           | 说明                                       |
| ------------ | ---------------------------------------- |
| 直连           | 接收到的数据`原封不动`的传给出站处理                      |
| tls          | 解密 tls 数据后传给出站处理                         |
| ws 加密隧道      | 使用 ws 隧道协议解密数据，将`解密后的数据`传给出站处理           |
| ws+tls 加密隧道  | 使用 ws+tls 隧道协议解密数据，将`解密后的数据`传给出站处理       |
| tcp 加密隧道     | 使用隧道协议解密数据，将`解密后的数据`传给出站处理               |
| tcp+tls 加密隧道 | 使用 tls 隧道协议解密数据，将`解密后的数据`传给出站处理          |
| 隧道代理模式       | 加密隧道均支持开启代理模式，作为隧道跳板，将数据发送到隧道客户端所要求的目标地址 |
| socks5 代理    | socks5 跳板，将数据发送到 socks5 客户端所要求的目标地址      |

## `出站`类型

| 类型           | 说明                                        |
| ------------ | ----------------------------------------- |
| 直连           | 从入站接收到的数据`原封不动`的传给目标地址                    |
| tls          | 从入站接收到的数据使用 tls 加密后传给目标地址                 |
| ws 加密隧道      | 使用`ws 隧道协议`加密从入站接收的数据，将`加密后的数据`传给目标地址     |
| ws+tls 加密隧道  | 使用`ws+tls 隧道协议`加密从入站接收的数据，将`加密后的数据`传给目标地址 |
| tcp 加密隧道     | 使用`隧道协议`加密从入站接收的数据，将`加密后的数据`传给目标地址        |
| tcp+tls 加密隧道 | 使用`tls 隧道协议`加密从入站接收的数据，将`加密后的数据`传给目标地址    |
| 隧道代理模式       | 加密隧道均支持开启代理模式，从入站接收的数据，通过隧道跳板发送至目标地址      |
| socks5 代理    | 从入站接收的数据，通过 socks5 跳板发送至目标地址              |

## 常见场景

{% hint style="info" %}
开启 Proxy Protocol 接收与发送即可传送用户真实 ip
{% endhint %}

{% hint style="info" %}
更多功能场景可根据你的需求自由组合搭配
{% endhint %}

| 功能场景            | 配置方式                                                         |
| --------------- | ------------------------------------------------------------ |
| 端口转发            | `用户`->`直连入站`->`直连出站`->`落地`                                   |
| 端口段转发           | `xx-yy 端口直连入站`->`直连出站 aa-bb 端口`                              |
| pass 隧道中转至 soga | `用户`->`直连入站`->`隧道出站`->(wall)->`soga(内置隧道入站，减少一层转发)`          |
| pass 隧道中转至其他落地  | `用户`->`直连入站`->`隧道出站`->(wall)->`隧道入站`->`直连出站`->`落地`           |
| pass 隧道代理模式     | `用户`->`直连入站`->`隧道出站(指定落地地址)`->(wall)->`隧道入站`->`落地`           |
| socks5 代理       | `用户`->`直连入站`->`socks5 出站(指定落地地址)`->(无墙专线)->`socks5 入站`->`落地` |

## 负载均衡策略

### 示意图

![负载均衡示意图](https://1879477708-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Mct-n1O8gD77QQyxudV%2F-MfMbG4Abf2_pPNxYaYF%2F-MfMbOLmk-cc1CeJcO5R%2Fstructure_1.png?alt=media\&token=c77234ef-60ea-476a-b409-3c2eb73c531b)

{% hint style="info" %}
负载均衡策略在配置了多个出站时才有效
{% endhint %}

### 1. 轮询

对于每个连接轮流切换出站，最简单的负载均衡策略

| 额外功能 | 说明                                   |
| ---- | ------------------------------------ |
| 备用出站 | 当所有非备用出站无法使用时使用备用出站，备用出站之间的负载均衡可自行选择 |

### 2. ip\_hash

给每个连接入站的 ip 平均分配到各个出站，适用于需要固定出站的情形

| 额外功能 | 说明                                     |
| ---- | -------------------------------------- |
| 故障转移 | 当用户分配到的出站不可用时，将会尝试使用其他可用的出站并固定，直到原出站可用 |
| 备用出站 | 当所有非备用出站无法使用时使用备用出站，备用出站之间的负载均衡可自行选择   |

### 3. fallback

每次连接都优先使用第一个出站，若第一个出站无法使用，则使用下一个出站。若上一个出站恢复，则重新使用上一个出站，以此类推

| 额外功能 | 说明                                   |
| ---- | ------------------------------------ |
| 备用出站 | 当所有非备用出站无法使用时使用备用出站，备用出站之间的负载均衡可自行选择 |

### 4. 最小连接数

每次优先使用当前连接数最少的出站，适用于连接负载均衡

| 额外功能 | 说明                                   |
| ---- | ------------------------------------ |
| 备用出站 | 当所有非备用出站无法使用时使用备用出站，备用出站之间的负载均衡可自行选择 |

### 主动健康检查机制

每种负载均衡均`默认启用`主动健康检查机制（可关闭），及时发现不可用的出站，并将此出站禁用。若此出站重新变得可用，则启用。

主动健康检查使用 tcp 测试端口连通性，若目标端口 tcp 可连通，则表示可用，否则表示不可用

#### 只有一个出站时

* 主动健康检查不会生效

#### 当有多个出站时

* 每隔 n 秒检查一次
* 已启用的出站若连续 x 次检查失败，禁用此出站，不再参与负载均衡
* 已禁用的出站若连续 y 次检查成功，启用此出站，重新加入负载均衡
* n，x，y 有默认值，可根据需要自行调整


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://pass.yougotme.cc/master.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
