Skip to content

Commit

Permalink
fix: some bugs and docs update
Browse files Browse the repository at this point in the history
  • Loading branch information
DVKunion committed Apr 11, 2024
1 parent ff358b7 commit 2d0b0ca
Show file tree
Hide file tree
Showing 31 changed files with 579 additions and 697 deletions.
2 changes: 1 addition & 1 deletion docs/.vuepress/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ module.exports = {
{
iconClass: 'icon-mao',
title: '放一只猫',
link: 'http://www.serverless-devs.com'
link: 'https://github.com/DVKunion/SeaMoon'
},
{
iconClass: 'icon-github',
Expand Down
75 changes: 30 additions & 45 deletions docs/guide/00.概述/00.introduce.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
---
title: 简介
titleTag: 1.2.0-beta.2
titleTag: 2.0.0
date: 2022-09-28 22:39:36
permalink: /guide/introduce
article: false
---

## SeaMoon - 月海
# SeaMoon - 月海

![go-report](https://goreportcard.com/badge/github.com/DVKunion/SeaMoon)
![language](https://img.shields.io/github/languages/top/DVKunion/SeaMoon.svg?&color=blueviolet)
Expand All @@ -18,32 +18,18 @@ article: false

> 🌕 月出于云却隐于海
月海(Sea Moon) 是一款 FaaS/BaaS 实现的 Serverless 网络工具集,期望利用云原生的优势,实现更简单、更便宜的网络功能
月海(Sea Moon) 是一款 FaaS/BaaS 实现的 Serverless 网络工具集,期望利用云原生的优势,实现更简单、更便宜的网络工具

月海之名取自于苏轼的《西江月·顷在黄州》,寓意月海取自于传统工具,用之于云,最终达到隐匿于海的效果。

月海基于 Serverless 的动态特性、分别从网络层、应用层实现对应的能力,并利用serverless-devs工具来实现快捷的部署/跨厂商操作。
月海基于 Serverless 的动态与无状态的特性,从网络层实现了一个基于 Serverless 的网络工具集,包括代理、转发、隧道等等常见网络功能;
同时在客户端集成了大量云厂商,实现快捷的一键式部署和跨厂商与平台操作。

觉得项目不错的话,[还请给一个star ✨](https://github.com/DVKunion/SeaMoon), 你的支持是更新的最大动力~

## 🌟 月海能做什么

### 网络层

网络层支持是月海的基础功能,也是云函数最基本的优势和特性。

利用云函数的动态实例不同的出口IP,从而获取到了干净(非威胁情报黑名单)、随机的外网IP代理来进行测试。

同时月海集成了 Tor 网桥,实现了服务端 Tor 网络的访问。

目前网络层功能支持如下:

**网络隧道**

| 隧道类型 | 技术文档 | 支持情况 |
|-----------|------|:----:|
| websockst | []() ||
| grpc | []() ||
Serverless 的动态实例不同的出口IP,从而获取到了干净(非威胁情报黑名单)、随机的外网IP代理、用后即销毁的无痕状态等。

**网络代理**

Expand All @@ -52,45 +38,44 @@ article: false
| HTTP(S) | [HTTP.md](https://seamoon.dvkunion.cn/tech/net/http/) |||
| Socks5 | [Socks5.md](https://seamoon.dvkunion.cn/tech/net/socks5/) |||
| Socks4 | []() |||
| shadowsocks | []() |||
| Vmess | []() |||
| Vless | []() |||
| shadowsocks | []() |||

**网络隧道**

| 隧道类型 | 技术文档 | 支持情况 |
|-----------|------|:-----:|
| websockst | []() ||
| grpc | []() ||
| oss | []() | 🐷调研中 |

**其他**

+ 💻 多客户端支持,clash/shadowrocket 等。
+ 🧅 Tor 网络 .onion 支持. [如何开启 Tor 代理](https://seamoon.dvkunion.cn/guide/client/tor/)
+ ......

更多特性相关请移步: [技术文档](https://seamoon.dvkunion.cn/tech/feature/)

## 🧭 支持平台

| 平台名称 | 免费力度 | 是否支持 | 部署文档 |
|----------|:--------------------------:|:-----:|:------------------------------------------------------:|
| 阿里云 | 新用户三个月 || [部署](https://seamoon.dvkunion.cn/guide/deploy/aliyun) |
| 腾讯云 | 🈚️ || [部署](https://seamoon.dvkunion.cn/guide/deploy/tencent) |
| 🔥Sealos | 五元余额,流量不计费 || [部署](https://seamoon.dvkunion.cn/guide/deploy/sealos) |
| 🙅Render | ~~每月750小时免费 + 100G流量~~但是封号 || [部署](https://seamoon.dvkunion.cn/guide/deploy/render) |
| 华为云 | || [部署]() |
| 百度云 | || [部署]() |
| AWS | | 🐷调研中 | [部署]() |
| Google | | 🐷调研中 | [部署]() |

## ➡️ 后续方向

::: tip 关于规则匹配代理
很多代理支持根据不同的规则来进行转发或选择不走代理。月海的定位其实更偏重于利用云原生基础设施来廉价的进行渗透测试工作。
| 平台名称 | 免费力度 | 是否支持 |
|----------|:--------------------------:|:-----:|
| 阿里云 | 新用户三个月 ||
| 腾讯云 | 🈚️ ||
| Sealos | 五元余额 ||
| 华为云 | ||
| 百度云 | ||
| 🙅Render | ~~每月750小时免费 + 100G流量~~但是封号 ||
| AWS | | 🐷调研中 |
| Google | | 🐷调研中 |

因此在当前版本,并不打算支持规则代理,(因为很多代理客户端其实也有这个功能了,走客户端即可实现。)
:::

更多发展方向的说明和讨论请移步: [技术文档](https://seamoon.dvkunion.cn/tech/)

## 🕹 ️开始使用
## 🕹开始使用

[继续阅读: 快速开始](https://seamoon.dvkunion.cn/guide/start)

[跳过新手环节,直接进入部署](https://seamoon.dvkunion.cn/guide/deploy)

## ❗ 免责声明
## ❗免责声明

本工具仅用于学习 serverless 以及云原生相关技术,请勿用于其他用途。

Expand Down
17 changes: 10 additions & 7 deletions docs/guide/00.概述/01.structure.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,24 @@ permalink: /guide/structure
article: false
---

## 项目结构
# 项目结构

月海主要分为两部分:

+ 部署在云端的服务端
+ 客户端

## 客户端
## 服务端

云函数限制了大部分的协议模式,将能力限制在了七层网络;因此我们想在云函数上实现7层及一下的模式,就需要通过本地的客户端来进行协议封装
服务端为实际部署在云厂商的代码。负责实际计算的功能模块, 主要实现各类的隧道与协议解析

通过各类协议的转化,将协议封装置七层进行传输,再由服务端进行解码处理。
## 客户端

除了使用 seamoon 自身的客户端代理功能之外,还可以使用其他支持隧道模式的 客户端工具,如 gost, 可以实现在本地落地更多协议的代理。
为了方便管理和使用,月海提供了一个 B/S 架构的客户端,主要包括了以下内容:

## 服务端
+ 系统配置: 客户端相关配置
+ 云账户管理: 用于管控所有部署的云账户信息
+ 函数实例: 用于展示和管理所有已经部署的 Serverless 函数
+ 服务: 当没有使用其他的客户端时,月海还提供了一个简易的服务功能来提供一些网络服务,来实现对外的开放。

服务端为实际部署在云厂商的代码。负责实际计算的功能模块, 主要实现各类协议的隧道传递与解析
除了使用 seamoon 自身的客户端代理功能之外,还可以使用其他支持隧道模式的 客户端工具,如 clash/v2ray/gost, 可以实现在本地落地更多协议的代理
122 changes: 122 additions & 0 deletions docs/guide/01.开始使用/00.start.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
---
title: 快速开始
date: 2022-09-28 00:27:13
permalink: /guide/start/
article: false
---

# 快速开始

通过该页面,您可以快速的通过客户端来创建一个 http 代理服务,作为月海的基本使用演示。

### 事前准备

+ 云厂商账户(以阿里云为例),并开通对应的serverless服务(阿里云serverless服务名为:函数计算)
+ 云厂商账户 AK/SK,并拥有操作函数和账单相关的全部权限。


### 启动服务

`$ docker run -it -d --net=host dvkunion/seamoon:latest proxy`

如果一切正常,你将可以在 `http://localhost:7777` 访问到管理页面:

![login](https://seamoon.oss-cn-hangzhou.aliyuncs.com/fbc14247042b4608a99b18fce6682175.png)

:::tip
默认的账户密码为: seamoon/seamoon
:::

:::warning
安全起见,我们不建议直接通过 --net=host 将所有的端口直接暴露在网络中,更加推荐的做法请继续阅读: [客户端安装](https://seamoon.dvkunion.cn/guide/install/)
:::

### 修改默认密码

第一步一定要修改掉默认的密码。点击 [系统管理],填写一个新的密码,然后提交:

![password](https://seamoon.oss-cn-hangzhou.aliyuncs.com/b87e34d7b9114fabb1404ce99eef3097.png)

### 配置账户

我们来尝试创建一个账户, 点击 [云账户管理] -> [新增]:

![add-account](https://seamoon.oss-cn-hangzhou.aliyuncs.com/d580190a2ba74c178e1d5e239f2d82e3.png)

填写对应的字段:
+ 账户名称: 用于在客户端区分不同的账户,与具体云账户用户名无关
+ 账户类型: 选择账户对应的云平台类型
+ 最大部署限制: 该账户最多允许部署的函数数量,0表示不作限制。
+ 账户描述: 用于备注该账户的一些其他信息

![aliyun](https://seamoon.oss-cn-hangzhou.aliyuncs.com/d5e68b2e29754a68b1640c33c3b13bb0.png)

点击下一步,继续填写表单:
+ 账户允许部署区域: 表示当前账户允许部署的函数区域,可以多选
+ AccessID/AccessKey/SecretKey: 阿里云账户信息, AccountId 可在主页右上角个人信息处获取 accountId, AccessKeyId/AccessKeySecret 可在 [IAM](https://ram.console.aliyun.com/users) 页面添加子用户生成密钥

![aliyun-account](https://seamoon.oss-cn-hangzhou.aliyuncs.com/75c7aa76665740878c796d82aac17233.png)

点击提交,账户会开始自动同步余额信息、函数信息等等。等待账户显示为正常状态时,即表示该步骤正确完成。

![success](https://seamoon.oss-cn-hangzhou.aliyuncs.com/93e870aab1ba4519be7b1ddf6552155f.png)

如果出现错误,鼠标放置在状态处,即可显示错误详细信息。

![error](https://seamoon.oss-cn-hangzhou.aliyuncs.com/19d4ea3949934efe86666478d5daab0c.png)

### 创建服务

可以开始创建服务了, 点击 [服务] -> [新增]:

![add-service](https://seamoon.oss-cn-hangzhou.aliyuncs.com/12b854194e504602aeff41c8c58d9399.png)

对应的参数比较多,我们首先填写第一张表单:

+ 代理名称: 用于在客户端展示的代理名
+ 监听协议: 选择 http
+ 监听地址: 不需要改动
+ 监听端口: 不需要改动(默认1080)

![proxy](https://seamoon.oss-cn-hangzhou.aliyuncs.com/ab82aa10192049c28157856acc8e8be8.png)

点击下一步,选择 [选择账户并自动创建新实例]

![new-instance](https://seamoon.oss-cn-hangzhou.aliyuncs.com/ebe49e967ee94feabde0855691e79c08.png)

点击下一步,选择刚才创建好的账户

![select-account](https://seamoon.oss-cn-hangzhou.aliyuncs.com/6cfd9c34857047a5805140d4c51aef7c.png)

点击下一步,开始填写函数参数

+ 函数名称: 函数的名称,只允许英文
+ 函数所在区域: 只能选择账户允许的区域内部署

![func](https://seamoon.oss-cn-hangzhou.aliyuncs.com/367928eaf3ed4d3b9745a1a6976e05a0.png)

其他选项均不需要改动,点击提交。

![create](https://seamoon.oss-cn-hangzhou.aliyuncs.com/14ea9dfdf588445398aa8cca7be187a9.png)

### 开始使用

现在我们可以测试一下了。在终端输入:

```shell
export https_proxy=http://127.0.0.1:1080 http_proxy=http://127.0.0.1:1080 all_proxy=http://127.0.0.1:1080
```

然后查一下 IP:

```shell
curl cip.cc
```

如果显示为阿里云 IP,表明代理已经生效。

![ip](https://seamoon.oss-cn-hangzhou.aliyuncs.com/a88026e1cdab45f987c5cc66b6f81034.png)

同时服务页面会显示当前对应的延迟、连接数以及流量统计汇总。

![total](https://seamoon.oss-cn-hangzhou.aliyuncs.com/d819adccb751498fa2c3c82bae465024.png)
38 changes: 38 additions & 0 deletions docs/guide/01.开始使用/01.install.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
title: 客户端安装
date: 2024-04-02 18:42:45
permalink: /guide/install/
article: false
---

# 客户端安装

### Docker

推荐使用 docker 一键部署client

```shell
$ docker run -it -d --net=host dvkunion/seamoon:latest proxy
```

默认使用`--net=host`模式,这样比较简单易懂。为了更高的安全性、可控性,你也可以自己选择映射:

```shell
$ docker run -it -d -p 127.0.0.1:7777:7777 -p 1080:1080 dvkunion/seamoon:latest proxy
```

这样可以将管理端口限制只能通过本地 `127.0.0.1` 访问,如果你需要限制为其他 IP,可以自行修改。

然后浏览器打开:

`localhost:7777`

即可开启客户端

### Binary

#### 客户端下载

[Github Release](https://github.com/DVKunion/SeaMoon/releases) 界面。在最新版本列表哪,选择您对应系统型号的client 包下载。

![release](https://seamoon.oss-cn-hangzhou.aliyuncs.com/955161ed6d3c48b181397bed1bcaca45.png)
Loading

0 comments on commit 2d0b0ca

Please sign in to comment.