From 32144e7a927b64568feb56ba6f40fdae724dcf15 Mon Sep 17 00:00:00 2001 From: DVK Date: Thu, 11 Apr 2024 15:30:11 +0800 Subject: [PATCH] fix: some bugs and docs update (#83) --- README.md | 115 +++++------- docs/.vuepress/config.js | 2 +- .../00.introduce.md" | 75 ++++---- .../01.structure.md" | 17 +- .../00.start.md" | 122 +++++++++++++ .../01.install.md" | 38 ++++ .../01.start.md" | 159 ---------------- .../02.provider.md" | 36 ++++ .../03.tunnel.md" | 50 ++++++ .../04.proxy.md" | 60 +++++++ .../README.md" | 6 + .../01.aliyun.md" | 57 ------ .../04.render.md" | 124 ------------- .../09.serverless.md" | 169 ------------------ .../00.paas.md" | 160 +++++++++++++++-- .../01.faas.md" | 51 +++++- .../README.md" | 6 +- .../01.tor.md" | 2 +- .../02.gost.md" | 2 +- .../03.v2ray.md" | 8 + .../README.md" | 22 ++- .../01.docker.md" | 43 ----- .../02.binary.md" | 38 ---- .../00.position.md" | 4 + .../01.\347\275\221\347\273\234/01.HTTP.md" | 2 - docs/yarn.lock | 4 +- pkg/sdk/aliyun/aliyun_sdk.go | 11 +- pkg/sdk/sealos/sealos_sdk.go | 1 - pkg/sdk/tencent/tencent_sdk.go | 1 - web/config/proxy.ts | 2 +- .../pages/service/components/CreateForm.tsx | 1 + web/src/services/service/api.ts | 3 +- 32 files changed, 627 insertions(+), 764 deletions(-) create mode 100644 "docs/guide/01.\345\274\200\345\247\213\344\275\277\347\224\250/00.start.md" create mode 100644 "docs/guide/01.\345\274\200\345\247\213\344\275\277\347\224\250/01.install.md" delete mode 100644 "docs/guide/01.\345\274\200\345\247\213\344\275\277\347\224\250/01.start.md" create mode 100644 "docs/guide/01.\345\274\200\345\247\213\344\275\277\347\224\250/02.provider.md" create mode 100644 "docs/guide/01.\345\274\200\345\247\213\344\275\277\347\224\250/03.tunnel.md" create mode 100644 "docs/guide/01.\345\274\200\345\247\213\344\275\277\347\224\250/04.proxy.md" create mode 100644 "docs/guide/01.\345\274\200\345\247\213\344\275\277\347\224\250/README.md" delete mode 100644 "docs/guide/02.\346\234\215\345\212\241\351\203\250\347\275\262/01.aliyun.md" delete mode 100644 "docs/guide/02.\346\234\215\345\212\241\351\203\250\347\275\262/04.render.md" delete mode 100644 "docs/guide/02.\346\234\215\345\212\241\351\203\250\347\275\262/09.serverless.md" rename "docs/guide/02.\346\234\215\345\212\241\351\203\250\347\275\262/03.sealos.md" => "docs/guide/02.\351\253\230\347\272\247\350\277\233\351\230\266/00.paas.md" (50%) rename "docs/guide/02.\346\234\215\345\212\241\351\203\250\347\275\262/02.tecent.md" => "docs/guide/02.\351\253\230\347\272\247\350\277\233\351\230\266/01.faas.md" (78%) rename "docs/guide/02.\346\234\215\345\212\241\351\203\250\347\275\262/README.md" => "docs/guide/02.\351\253\230\347\272\247\350\277\233\351\230\266/README.md" (90%) rename "docs/guide/03.\345\256\242\346\210\267\347\253\257\351\203\250\347\275\262/04.tor.md" => "docs/guide/03.\345\205\266\344\273\226\345\256\242\346\210\267\347\253\257\346\224\257\346\214\201/01.tor.md" (99%) rename "docs/guide/03.\345\256\242\346\210\267\347\253\257\351\203\250\347\275\262/03.gost.md" => "docs/guide/03.\345\205\266\344\273\226\345\256\242\346\210\267\347\253\257\346\224\257\346\214\201/02.gost.md" (99%) create mode 100644 "docs/guide/03.\345\205\266\344\273\226\345\256\242\346\210\267\347\253\257\346\224\257\346\214\201/03.v2ray.md" rename "docs/guide/03.\345\256\242\346\210\267\347\253\257\351\203\250\347\275\262/README.md" => "docs/guide/03.\345\205\266\344\273\226\345\256\242\346\210\267\347\253\257\346\224\257\346\214\201/README.md" (55%) delete mode 100644 "docs/guide/03.\345\256\242\346\210\267\347\253\257\351\203\250\347\275\262/01.docker.md" delete mode 100644 "docs/guide/03.\345\256\242\346\210\267\347\253\257\351\203\250\347\275\262/02.binary.md" diff --git a/README.md b/README.md index 5e44b5a..01bbbab 100644 --- a/README.md +++ b/README.md @@ -23,95 +23,82 @@ > 🌕 月出于云却隐于海 -月海(Sea Moon) 是一款 FaaS/BaaS 实现的 Serverless 网络工具集,期望利用云原生的优势,实现更简单、更便宜的网络功能。 +月海(Sea Moon) 是一款 FaaS/BaaS 实现的 Serverless 网络工具集,期望利用云原生的优势,实现更简单、更便宜的网络工具。 月海之名取自于苏轼的《西江月·顷在黄州》,寓意月海取自于传统工具,用之于云,最终达到隐匿于海的效果。 -月海基于 Serverless 的动态特性、分别从网络层、应用层实现对应的能力,并集成了SDK来实现快捷的部署/跨厂商操作。 +月海基于 Serverless 的动态与无状态的特性,从网络层实现了一个基于 Serverless 的网络工具集,包括代理、转发、隧道等等常见网络功能; +同时在客户端集成了大量云厂商,实现快捷的一键式部署和跨厂商与平台操作。 想要了解更多,请移步 [官方手册](https://seamoon.dvkunion.cn) 觉得项目不错的话,[还请给一个star ✨](https://github.com/DVKunion/SeaMoon), 你的支持是更新的最大动力~ -## 🔔 V2.0 大更新 +## 🌟 月海能做什么 -最近在测试 2.0 大版本的更新发布,但是 2.0 更新跨度太大,需要逐步测试完善后再一同和入主线分支,来保证主线代码正常工作。 +Serverless 的动态实例不同的出口IP,从而获取到了干净(非威胁情报黑名单)、随机的外网IP代理、用后即销毁的无痕状态等。 -2.0 版本的提前试用再 2.0-dev 分支,增加和变动了很多功能如: - -+ 客户端改版升级 -+ 支持自动部署服务端 -+ 认证相关功能增加 -+ 可视化流量统计等等 - -预计近期完成测试后就会合并进来, 这里放几张预告图: - -**登陆认证** -![login](https://seamoon.oss-cn-hangzhou.aliyuncs.com/62564a7263484cddb622d27abf09e4ed.png) - -**代理管控** -![proxy](https://seamoon.oss-cn-hangzhou.aliyuncs.com/a473e1b3a2cd45379737bba56bc9cb8b.png) - -**函数管控** -![func](https://seamoon.oss-cn-hangzhou.aliyuncs.com/ac38d83adf69439baf694f6705b3f9f4.png) - -**账户管控** -![account](https://seamoon.oss-cn-hangzhou.aliyuncs.com/ea911c9b2f3c4fb886f04f7043a6e5f9.png) +**网络代理** +| 代理类型 | 技术文档 | Seamoon 客户端支持 | 其他客户端支持 | +|-------------|-----------------------------------------------------------|:-------------:|:-------:| +| HTTP(S) | [HTTP.md](https://seamoon.dvkunion.cn/tech/net/http/) | ✅ | ✅ | +| Socks5 | [Socks5.md](https://seamoon.dvkunion.cn/tech/net/socks5/) | ✅ | ✅ | +| Socks4 | []() | ❌ | ✅ | +| Vmess | []() | ✅ | ✅ | +| Vless | []() | ✅ | ✅ | +| shadowsocks | []() | ✅ | ✅ | -## 🕹 快速开始 +**网络隧道** -[⚡️ 快速开始](https://seamoon.dvkunion.cn/guide/start) +| 隧道类型 | 技术文档 | 支持情况 | +|-----------|------|:-----:| +| websockst | []() | ✅ | +| grpc | []() | ✅ | +| oss | []() | 🐷调研中 | -[✨ 新增Render部署, ~~完全免费的套餐且功能不减!!!~~ 免费但是封号的SB ](https://seamoon.dvkunion.cn/guide/deploy/render) +**其他** -[✨ 新增Sealos部署, 价格更低更实惠!](https://seamoon.dvkunion.cn/guide/deploy/sealos) ++ 💻 多客户端支持,clash/shadowrocket 等。 ++ 🧅 Tor 网络 .onion 支持. [如何开启 Tor 代理](https://seamoon.dvkunion.cn/guide/client/tor/) ++ ...... -[🔥 新增 seamoon 支持 tor 网络访问 onion 域名](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 | | 🐷调研中 | [部署]() | - -## 🔥 使用展示 +| 平台名称 | 免费力度 | 是否支持 | +|----------|:--------------------------:|:-----:| +| 阿里云 | 新用户三个月 | ✅ | +| 腾讯云 | 🈚️ | ✅ | +| Sealos | 五元余额 | ✅ | +| 华为云 | | ✅ | +| 百度云 | | ✅ | +| 🙅Render | ~~每月750小时免费 + 100G流量~~但是封号 | ❌ | +| AWS | | 🐷调研中 | +| Google | | 🐷调研中 | -![client](https://seamoon.oss-cn-hangzhou.aliyuncs.com/0dd37f5600364e59a9457e38eaf77b1f.png) +## 🕹开始使用 -## 🔨 功能简要 +[继续阅读: 快速开始](https://seamoon.dvkunion.cn/guide/start) -**网络隧道** +## 💻 技术文档 -| 隧道类型 | 技术文档 | 支持情况 | -|-----------|------|:----:| -| websockst | []() | ✅ | -| grpc | []() | ✅ | +[🧑‍💻 技术文档](https://seamoon.dvkunion.cn/tech/feature) -**网络代理** +## 🛜 使用展示 -| 代理类型 | 技术文档 | Seamoon 客户端支持 | 其他客户端支持 | -|-------------|-----------------------------------------------------------|:-------------:|:-------:| -| HTTP(S) | [HTTP.md](https://seamoon.dvkunion.cn/tech/net/http/) | ✅ | ✅ | -| Socks5 | [Socks5.md](https://seamoon.dvkunion.cn/tech/net/socks5/) | ✅ | ✅ | -| Socks4 | []() | ❌ | ✅ | -| shadowsocks | []() | ❌ | ✅ | - -**其他** +**登陆认证** +![login](https://seamoon.oss-cn-hangzhou.aliyuncs.com/62564a7263484cddb622d27abf09e4ed.png) -+ 🧅 Tor 网络 .onion 支持. [如何开启 Tor 代理](https://seamoon.dvkunion.cn/guide/client/tor/) -+ ...... +**代理管控** +![proxy](https://seamoon.oss-cn-hangzhou.aliyuncs.com/a473e1b3a2cd45379737bba56bc9cb8b.png) -## 💻 技术文档 +**函数管控** +![func](https://seamoon.oss-cn-hangzhou.aliyuncs.com/ac38d83adf69439baf694f6705b3f9f4.png) -[🧑‍💻 技术文档](https://seamoon.dvkunion.cn/tech/feature) +**账户管控** +![account](https://seamoon.oss-cn-hangzhou.aliyuncs.com/ea911c9b2f3c4fb886f04f7043a6e5f9.png) ## ❗ 免责声明 @@ -119,12 +106,6 @@ 如您在使用本工具的过程中存在任何非法行为,您需自行承担相应后果,我们将不承担任何法律及连带责任。 -## ☎️ 联系方式 - -Serverless in Cybersecurity 讨论微信群: - -也可以在 项目 Discuss 处发起讨论。 - ## ✨ CTStack diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 6b80b52..6812017 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -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', diff --git "a/docs/guide/00.\346\246\202\350\277\260/00.introduce.md" "b/docs/guide/00.\346\246\202\350\277\260/00.introduce.md" index a1a4391..b39158e 100644 --- "a/docs/guide/00.\346\246\202\350\277\260/00.introduce.md" +++ "b/docs/guide/00.\346\246\202\350\277\260/00.introduce.md" @@ -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) @@ -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代理、用后即销毁的无痕状态等。 **网络代理** @@ -52,10 +38,21 @@ 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/) + ...... @@ -63,34 +60,22 @@ article: false ## 🧭 支持平台 -| 平台名称 | 免费力度 | 是否支持 | 部署文档 | -|----------|:--------------------------:|:-----:|:------------------------------------------------------:| -| 阿里云 | 新用户三个月 | ✅ | [部署](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 以及云原生相关技术,请勿用于其他用途。 diff --git "a/docs/guide/00.\346\246\202\350\277\260/01.structure.md" "b/docs/guide/00.\346\246\202\350\277\260/01.structure.md" index 84452c0..df6e35a 100644 --- "a/docs/guide/00.\346\246\202\350\277\260/01.structure.md" +++ "b/docs/guide/00.\346\246\202\350\277\260/01.structure.md" @@ -5,21 +5,24 @@ permalink: /guide/structure article: false --- -## 项目结构 +# 项目结构 月海主要分为两部分: + 部署在云端的服务端 + 客户端 -## 客户端 +## 服务端 -云函数限制了大部分的协议模式,将能力限制在了七层网络;因此我们想在云函数上实现7层及一下的模式,就需要通过本地的客户端来进行协议封装。 +服务端为实际部署在云厂商的代码。负责实际计算的功能模块, 主要实现各类的隧道与协议解析。 -通过各类协议的转化,将协议封装置七层进行传输,再由服务端进行解码处理。 +## 客户端 -除了使用 seamoon 自身的客户端代理功能之外,还可以使用其他支持隧道模式的 客户端工具,如 gost, 可以实现在本地落地更多协议的代理。 +为了方便管理和使用,月海提供了一个 B/S 架构的客户端,主要包括了以下内容: -## 服务端 ++ 系统配置: 客户端相关配置 ++ 云账户管理: 用于管控所有部署的云账户信息 ++ 函数实例: 用于展示和管理所有已经部署的 Serverless 函数 ++ 服务: 当没有使用其他的客户端时,月海还提供了一个简易的服务功能来提供一些网络服务,来实现对外的开放。 -服务端为实际部署在云厂商的代码。负责实际计算的功能模块, 主要实现各类协议的隧道传递与解析。 \ No newline at end of file +除了使用 seamoon 自身的客户端代理功能之外,还可以使用其他支持隧道模式的 客户端工具,如 clash/v2ray/gost, 可以实现在本地落地更多协议的代理。 \ No newline at end of file diff --git "a/docs/guide/01.\345\274\200\345\247\213\344\275\277\347\224\250/00.start.md" "b/docs/guide/01.\345\274\200\345\247\213\344\275\277\347\224\250/00.start.md" new file mode 100644 index 0000000..631f4a3 --- /dev/null +++ "b/docs/guide/01.\345\274\200\345\247\213\344\275\277\347\224\250/00.start.md" @@ -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) diff --git "a/docs/guide/01.\345\274\200\345\247\213\344\275\277\347\224\250/01.install.md" "b/docs/guide/01.\345\274\200\345\247\213\344\275\277\347\224\250/01.install.md" new file mode 100644 index 0000000..b12c386 --- /dev/null +++ "b/docs/guide/01.\345\274\200\345\247\213\344\275\277\347\224\250/01.install.md" @@ -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) \ No newline at end of file diff --git "a/docs/guide/01.\345\274\200\345\247\213\344\275\277\347\224\250/01.start.md" "b/docs/guide/01.\345\274\200\345\247\213\344\275\277\347\224\250/01.start.md" deleted file mode 100644 index 0b70679..0000000 --- "a/docs/guide/01.\345\274\200\345\247\213\344\275\277\347\224\250/01.start.md" +++ /dev/null @@ -1,159 +0,0 @@ ---- -title: 快速开始 -date: 2022-09-28 00:27:13 -permalink: /guide/start -article: false ---- - -## 🕹 快速开始 - -通过该页面,您可以通过推荐的部署方式快速开始使用 SeaMoon。 - -::: tip 写在前面 -本页面按照阿里云标准云函数服务进行部署,如果您希望获取到更多自定义的配置和使用方式,[请跳转](https://seamoon.dvkunion.cn/guide/deploy) - -🔥 如果您的钱包和预算有限,并且代理IP需求并不是特别高,这里推荐使用 [sealos部署服务端](https://seamoon.dvkunion.cn/guide/deploy/sealos) - -🙅 如果只想测试一下 seamoon 感受一下效果,可以使用 [render部署服务端](https://seamoon.dvkunion.cn/guide/deploy/render), 但是注意极容易封号。 - -🔧 如果你不想仅拥有 http/socks5 协议的代理,期望使用更多代理,请移步 [更多客户端适配](https://seamoon.dvkunion.cn/guide/client/) -::: - -### 事前准备 - -+ 云厂商账户(以阿里云为例),并开通对应的serverless服务(阿里云serverless服务名为:函数计算) -+ 云厂商账户 AK/SK,并拥有操作FC的全部权限。 -+ 一台存在docker、Nodejs >= 12 的客户端的机器,同时保证 7777、1080、9999端口未被占用,该机器将作为使用的客户端。 - -### Step.1 安装serverless-devs工具 - -```shell -$ npm install @serverless-devs/s -g -``` - -国内加速: - -```shell -$ cnpm install @serverless-devs/s -g -``` - -如果不存在npm包管理器,请先通过node安装npm/cnpm - -安装后运行 - -```shell -$ s -v -``` - -将可以看到serverless-devs版本,表示安装成功。 - -```shell -@serverless-devs/s3: 0.1.0, s-home: /Users/DVK/.s, darwin-arm64, node-v20.9.0 -``` - -然后通过如下命令开始配置云厂商认证 - -```shell -$ s config add -``` - -按提示即可选择即可,本次我们以 `Alibaba Cloud` 为例,输入对应的账户`AccessKeyID`、`AccessKeySecret` - -最后一步填写`alias`时,请确保值为`default`(一般初次安装与认证该字段都默认为default,回车即可)。 - -如果AK/SK无误,那么你将会看到认证成功的提示。 - -### Step.2 部署服务端 - -```shell -$ git clone https://github.com/DVKunion/SeaMoon.git -``` - -进入到项目目录 - -```shell -$ cd SeaMoon -$ s deploy -``` - -如果你不是第一次部署,那么将会提示你选择冲突的配置:remote/local,一般选择local即可。 - -稍等片刻,你将会得到部署好的两个地址: - -```yaml -SeaMoon-WST-Node: - region: cn-hongkong - service: - name: SeaMoon-Service - function: - name: ws-node - runtime: custom - handler: main - memorySize: 128 - timeout: 300 - cpu: 0.05 - diskSize: 512 - url: - system_url: https://ws-node-seamoon-service-xxxxxxxx.cn-hongkong.fcapp.run - system_intranet_url: https://ws-node-seamoon-service-xxxxxxxx.cn-hongkong-vpc.fcapp.run - triggers: - - type: http - name: httpTrigger -SeaMoon-GRT-Node: - region: cn-hongkong - service: - name: SeaMoon-Service - function: - name: grpc-node - runtime: custom - handler: main - memorySize: 128 - timeout: 300 - cpu: 0.05 - diskSize: 512 - url: - system_url: https://grpc-node-seamoon-service-xxxxxxxx.cn-hongkong.fcapp.run - system_intranet_url: https://grpc-node-seamoon-service-xxxxxxxx.cn-hongkong-vpc.fcapp.run - triggers: - - type: http - name: httpTrigger -``` - -这里是用的都是默认配置,如果你需要更多高级可选项,[请继续阅读](https://seamoon.dvkunion.cn/guide/deploy) - -同样,如果你不想使用阿里云,或者想寻求更廉价的计费方式,[请继续阅读](https://seamoon.dvkunion.cn/guide/deploy) - -服务端部署完成 - -### Step.3 开启客户端使用 - -```shell -$ docker run -it -d --net=host dvkunion/seamoon:latest proxy - -``` - -默认使用`--net=host`模式,然后浏览器打开: - -`localhost:7777` - -即可开启客户端, 点击配置管理 - -![client](https://seamoon.oss-cn-hangzhou.aliyuncs.com/0dd37f5600364e59a9457e38eaf77b1f.png) - -添加云端配置 - -![client-config](https://seamoon.oss-cn-hangzhou.aliyuncs.com/66b1b150238e400483adf936649b7ed5.png) - -::: tip 如何填写地址 -我们在步骤2的时候,如果你是使用 s 工具实现的部署,那么最终的 yaml 内可以看到 url 字段,url 字段内的 system_url 即为我们需要的地址。 -不要使用带有 vpc 字样的 url, 也就是 system_intranet_url 字段的值,这是内网 vpc 访问的域名。 -除此之外,需要自行将协议头 https:// 替换为对应的隧道协议,如: ws:// 或是 grcp:// 。默认两种协议的隧道是都部署了的。 -grpc 按照阿里云的要求,还需要自行声明端口,由此,一个 grpc 隧道的填写应该是这样: grpc://grpc-node-seamoon-service-xxxxxxxx.cn-hongkong.fcapp.run:8089 -8089 是阿里云的固定 grpc 协议端口,不需要改动。 -::: - -开启socks5代理,并保持默认`:1080`不改变。 - -此时,你已经可以通过云函数启动socks5代理访问了。 - -![speed](https://seamoon.oss-cn-hangzhou.aliyuncs.com/7bfff588795a4e41b488694ad4eb5153.png) \ No newline at end of file diff --git "a/docs/guide/01.\345\274\200\345\247\213\344\275\277\347\224\250/02.provider.md" "b/docs/guide/01.\345\274\200\345\247\213\344\275\277\347\224\250/02.provider.md" new file mode 100644 index 0000000..5cf79ff --- /dev/null +++ "b/docs/guide/01.\345\274\200\345\247\213\344\275\277\347\224\250/02.provider.md" @@ -0,0 +1,36 @@ +--- +title: 云账户管理 +date: 2024-04-02 18:44:26 +permalink: /guide/provider/ +article: false +--- + +# 云账户管理 + +### 阿里云 + +阿里云账户需要三个信息:AccessID/AccessKey/SecretKey。 + +AccountId 可在主页右上角个人信息处获取 accountId + +![aliyun-account](https://seamoon.oss-cn-hangzhou.aliyuncs.com/75c7aa76665740878c796d82aac17233.png) + +AccessKeyId/AccessKeySecret 可在 [IAM](https://ram.console.aliyun.com/users) 页面添加子用户生成密钥。 + +:::warning +创建的 AK/SK 请确保拥有账单权限和函数相关权限 +::: + +### 腾讯云 + +腾讯云账户只需要两个信息: SecretID/SecretKey + +可在 [IAM](https://console.cloud.tencent.com/cam) 页面添加子用户生成密钥 + +### Sealos + +Sealos 只需要一个 `kubeconfig` 凭证即可。我们登录 cloud.sealos.io: + +![sealos](https://seamoon.oss-cn-hangzhou.aliyuncs.com/6fd4b2d188794b88aae2ae0c27fc2531.png) + +点击复制粘贴过来即可。 diff --git "a/docs/guide/01.\345\274\200\345\247\213\344\275\277\347\224\250/03.tunnel.md" "b/docs/guide/01.\345\274\200\345\247\213\344\275\277\347\224\250/03.tunnel.md" new file mode 100644 index 0000000..13576b5 --- /dev/null +++ "b/docs/guide/01.\345\274\200\345\247\213\344\275\277\347\224\250/03.tunnel.md" @@ -0,0 +1,50 @@ +--- +title: 函数实例 +date: 2024-04-02 18:44:43 +permalink: /guide/func/ +article: false +--- + +# 函数实例 + +函数实例对应着在云上部署的每一个函数 + +### 创建函数实例 + +点击 [新增], 会要求选择一个关联的账户,将会使用这个账户进行部署 + +![tunnel](https://seamoon.oss-cn-hangzhou.aliyuncs.com/0cd322d2dac14f77b117ff1024c047b9.png) + +点击 [下一步], 进入具体的函数参数配置 + +![config](https://seamoon.oss-cn-hangzhou.aliyuncs.com/4f49e3f00b7a4e28a4152b8504354b08.png) + ++ 函数名称:用于在平台区分各个函数 ++ 函数所在地区:只能选择当前账户允许的区域 ++ CPU、内存: 一般默认即可,如果有需求也可以自行调整(不同平台有相关要求,不建议自行调整) ++ 最大处理数:指一个实例最多同时可以处理的请求数;如果你希望获取更多的IP,该值越小越好(最低为1);如果你想节约成本,那么可以调整大一些。 ++ 端口号配置:默认不要改动。 ++ 函数认证方式: 指函数调用时的认证方法,可以避免一些反制与滥用。默认请选择无认证;如果你需要导入其他客户端使用,请确保此选项为无认证方式, ++ 隧道协议类型: websocket/gprc。推荐websockets, grpc 目前测试较少,不太稳定 ++ TLS: 默认开启即可;不开启的时候走80端口,数据为明文传输。 ++ Tor: 开启 Tor 网桥时,会允许代理访问 onion域名,但是会导致内存占用增高。 + +### 停用函数实例 + +![stop](https://seamoon.oss-cn-hangzhou.aliyuncs.com/da2a2030a728415cbbe0014b52b01b0d.png) + +点击停用后,远端的函数实例将会销毁,但平台的配置数据依旧存在;你可以通过再次启用来部署一个新的服务。 + +### 删除函数实例 + +![delete](https://seamoon.oss-cn-hangzhou.aliyuncs.com/d640f664ef4249e09461999fd6776107.png) + +点击删除后,远端函数实例将会销毁,同时本地的数据也会随之删除;基于此函数隧道的代理也会一起删除。 + +### 导入其他客户端 + +![import](https://seamoon.oss-cn-hangzhou.aliyuncs.com/52f88f5bf8904aa293eaffcdd4091203.png) + +目前支持导入 Clash、ShadowRocket 两种客户端,可以选择自动导入,也可以手动复制订阅地址。 +注意,此订阅地址会随着服务重启后失效。当客户端重启后,需要重新获取订阅地址。 + diff --git "a/docs/guide/01.\345\274\200\345\247\213\344\275\277\347\224\250/04.proxy.md" "b/docs/guide/01.\345\274\200\345\247\213\344\275\277\347\224\250/04.proxy.md" new file mode 100644 index 0000000..c7d495d --- /dev/null +++ "b/docs/guide/01.\345\274\200\345\247\213\344\275\277\347\224\250/04.proxy.md" @@ -0,0 +1,60 @@ +--- +title: 服务 +date: 2024-04-02 18:44:49 +permalink: /guide/service/ +article: false +--- + +# 服务 + +### 创建服务 + +点击 [新增]: + +![create](https://seamoon.oss-cn-hangzhou.aliyuncs.com/fe87befcb18c4e059951f8f1ed2dbe91.png) + ++ 代理名称:用于在平台区分不同的代理 ++ 监听协议: 选择代理的服务类型 ++ 监听地址: 监听的 IP 信息 ++ 监听端口: 监听的端口信息 + +#### 从账户直接创建服务 + +![select-1](https://seamoon.oss-cn-hangzhou.aliyuncs.com/700cea1e620f40f1beb6596bd48565a0.png) + +直接从账户创建,将会从选择的账户创建一个新的函数与服务绑定。具体请参考 [创建函数实例](https://seamoon.dvkunion.cn/guide/func/) + +#### 选择已有函数进行关联 + +![select-2](https://seamoon.oss-cn-hangzhou.aliyuncs.com/120fa192be864d4293ea51344542f336.png) + +选择已有函数进行关联时,将会从已有的函数实例进行选择,无需进行其他配置。 + +![select-4](https://seamoon.oss-cn-hangzhou.aliyuncs.com/af8eaa396fac4413a2a6d54d715412a5.png) + +### 修改服务 + +目前允许修改的内容有:代理类型、监听地址、监听端口三个选项。点击对应服务,即可进行详情修改。 + +![update](https://seamoon.oss-cn-hangzhou.aliyuncs.com/1cb9366981cf4432898a179f1e380004.png) + +### 测速 + +点击测速,将会通过当前服务访问测速网站进行上行与下行的速率测试。 + +![speed](https://seamoon.oss-cn-hangzhou.aliyuncs.com/31c585b8ed8d4cc0994cad33ad554852.png) + +### 停止服务 + +点击停止服务,代理服务将会停止,但数据不会删除。 + +![stop](https://seamoon.oss-cn-hangzhou.aliyuncs.com/53605b61a97e48218caca2f0eb8b175f.png) + +### 删除服务 + +点击删除服务,将会删除对应的代理服务数据。 + +![delete](https://seamoon.oss-cn-hangzhou.aliyuncs.com/b4b1fb410f1a4d9798956e0ad80cebc9.png) + + + diff --git "a/docs/guide/01.\345\274\200\345\247\213\344\275\277\347\224\250/README.md" "b/docs/guide/01.\345\274\200\345\247\213\344\275\277\347\224\250/README.md" new file mode 100644 index 0000000..d395eae --- /dev/null +++ "b/docs/guide/01.\345\274\200\345\247\213\344\275\277\347\224\250/README.md" @@ -0,0 +1,6 @@ +--- +title: 开始使用 +date: 2024-04-02 18:47:03 +permalink: /guide/ +article: false +--- diff --git "a/docs/guide/02.\346\234\215\345\212\241\351\203\250\347\275\262/01.aliyun.md" "b/docs/guide/02.\346\234\215\345\212\241\351\203\250\347\275\262/01.aliyun.md" deleted file mode 100644 index 4066549..0000000 --- "a/docs/guide/02.\346\234\215\345\212\241\351\203\250\347\275\262/01.aliyun.md" +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: 阿里云 -date: 2022-09-28 00:27:13 -permalink: /guide/deploy/aliyun -article: false ---- - -## 三步部署到阿里云 - -阿里云是使用上最为规范、标准化场景下的serverless部署方式。 - -如果你对serverless的运作感兴趣,并希望寻找更多的玩法,阿里云是一个不错的选择,各种选项可以帮助你更好地理解和配置serverless。 - -## 如何部署 - -如果你了解云函数,可以使用自定义镜像 / 自定义运行时 / 二进制等等方式部署。 - -下文是基于对完全不了解云函数的同学给出的最简单的部署方式。 - -### Step.1 - -+ 阿里云首先要开通函数计算服务。 -+ fork 该仓库(https://github.com/DVKunion/SeaMoon.git)到您自己的 github 账户下 -+ 进入阿里云控制台,点击应用 -> 创建应用 - -![aliyun-create-app](https://seamoon.oss-cn-hangzhou.aliyuncs.com/66d81e68e1fa4ef9b8aa3775b4957552.png) - -### Step.2 - -选择 `通过仓库导入应用` , 授权Github账户后,选择fork好的仓库,如果您之前没有使用过阿里云,在角色权限处还需要进行一次授权。 - -![aliyun-app-import](https://seamoon.oss-cn-hangzhou.aliyuncs.com/d00b5116362d47cdb429f91e48ab2d3a.png) - -### Step.3 - -点击创建,等待服务部署成功,即可获取到代理地址 - -![aliyun-deploy](https://seamoon.oss-cn-hangzhou.aliyuncs.com/a43730eaa80a4885a5eaee853ff3a781.png) - - -> 其他注意事项: -> 如果您想要修改代理生效的区域,请修改s.yaml内的 vars -> region字段 -> -> 目前阿里云支持的字段有: cn-hangzhou, cn-beijing, cn-beijing, cn-hangzhou, cn-shanghai, cn-qingdao, cn-zhangjiakou, cn-huhehaote, cn-shenzhen, cn-chengdu, cn-hongkong, ap-southeast-1, ap-southeast-2, ap-southeast-3, ap-southeast-5, ap-northeast-1, eu-central-1, eu-west-1, us-west-1, us-east-1, ap-south-1 - -[开启客户端并填入配置](https://seamoon.dvkunion.cn/guide/client/), 尽情享用。 - -::: tip 如何填写地址 -将协议头 https:// 替换为对应的隧道协议,如: ws:// 或是 grcp:// 。默认两种协议的隧道是都部署了的。 - -grpc 按照阿里云的要求,还需要自行声明端口,由此,一个 grpc 隧道的填写应该是这样: grpc://grpc-node-seamoon-service-xxxxxxxx.cn-hongkong.fcapp.run:8089 - -8089 是阿里云的固定 grpc 协议端口,不需要改动。 -::: - -## 效果展示 -![speed](https://seamoon.oss-cn-hangzhou.aliyuncs.com/7bfff588795a4e41b488694ad4eb5153.png) \ No newline at end of file diff --git "a/docs/guide/02.\346\234\215\345\212\241\351\203\250\347\275\262/04.render.md" "b/docs/guide/02.\346\234\215\345\212\241\351\203\250\347\275\262/04.render.md" deleted file mode 100644 index d44f6e5..0000000 --- "a/docs/guide/02.\346\234\215\345\212\241\351\203\250\347\275\262/04.render.md" +++ /dev/null @@ -1,124 +0,0 @@ ---- -title: Render -date: 2023-07-21 18:29 -permalink: /guide/deploy/render -article: false ---- - -## 部署到Render: ~~免费的永远是最好的~~ 去**的免费的,号没了 - -::: danger -2024.02.02 更新 -render 不但 ban 了 `seamoon` 镜像,还把号封了,*** 玩不起就别玩。 -虽然还有各种各样的绕过方式,其账户注册起来也不困难,但是可以看出该运营商的顺准了,云计算这么多家,你不声明禁止直接ban号ban镜像有点东西的 -也可能是我没仔细看声明,如果有找到的师傅麻烦让我看一下在哪。先喷为敬了。 -![render-ban](https://seamoon.oss-cn-hangzhou.aliyuncs.com/4170f495a85d4cc6a6ff64ddedee9c3e.png) - -::: - -[Render公有云地址](https://www.render.com/) - -> Render是一个新的PaaS( Platform as a service)云端服务,也就是说你的代码部署到Render之后,你不用(也不能)去管Linux/firewall/nginx的设定。把你的Github网址给Render,设定一下用鼠标点点点,等个几分钟,你的程序就上线了,全世界都能看到你的网站或是存取你提供的API。[(选自知乎)](https://zhuanlan.zhihu.com/p/377558120) - -我们来看一下官方是如何介绍自己的: - -> Build, deploy, and scale your apps with unparalleled ease – from your first user to your billionth. -> - -其实这些都不重要,重要的是你只需要知道,~~render提供的free套餐完全支持我们部署 seamoon,不需要花费一分钱!这就够了,足够我们给他树一个👍。~~ 第二天就封号了的臭SB。 - - -## 如何部署 - -render 部署与 sealos 部署一样简单,在新版本中,我会逐步减少部署步骤,降低这部分交互。 - -### Step.1 注册账户 - -render 账户支持 github / gitlab / google 等一键登陆,建议直接 github 账户登陆即可。 - -实在不行,他也支持邮箱注册,自己注册一个,此处不再废话。 - -![render-register](https://seamoon.oss-cn-hangzhou.aliyuncs.com/7d00a615cd45480bad1b7ade33b7e543.png) - -### Step.2 部署 - -注册账户登陆后,进入控制台,选择创建一个 web service 应用: - -![render-web-service](https://seamoon.oss-cn-hangzhou.aliyuncs.com/ffcd48fa203b4959bdde631bdf77610e.png) - -然后选第二个,从存在的镜像中部署服务: - -![render-web-deploy](https://seamoon.oss-cn-hangzhou.aliyuncs.com/faa0f096dcfa40998b518b5e4de96534.png) - -点击下一步,要求我们填写部署的镜像名称,我们填写:`dvkunion/seamoon` - -![render-image](https://seamoon.oss-cn-hangzhou.aliyuncs.com/3bc5a0437ea94a348f9841864f5c2df3.png) - -开始填写详细的应用字段了,我们依次填写: - -+ Name: 应用名称,这个最终会对应生成你的服务域名,因此这里我建议越复杂越好,因为 seamoon 当前版本没有做认证,导致如果服务名称过于简单,很容易被其他人连上。 -+ Region: 地域,选择服务部署的地区,现在支持四个区域:oregon-俄勒冈州(美国西部)、Frankfurt-法兰克福(欧盟)、ohio-俄亥俄州(美国东部)、singapore-新加坡(东亚) -+ 实例类型: 选免费的。 - -![render-config](https://seamoon.oss-cn-hangzhou.aliyuncs.com/160ff4f44e5a4e9d9128269dbc1a3e26.png) - -往下滑,看到 Docker Command 填写如下: - -![render-docker](https://seamoon.oss-cn-hangzhou.aliyuncs.com/51fa80f6e4c84ae985bdb23ac8acf673.png) - -完成,点击创建即可。 - -![render-url](https://seamoon.oss-cn-hangzhou.aliyuncs.com/158478ce77a84130b43f786670a40c65.png) - -### Step.3 本地客户端 - -在本地启动客户端,推荐 docker 一键拉起: - -```shell -$ docker run -it -d --net=host dvkunion/seamoon proxy -``` - -默认使用`--net=host`模式, 如需要高级设置,如下: - -```shell -$ docker run -it -d -p 7777:7777 -p 1080:1080 dvkunion/seamoon proxy -``` - -访问本地控制台 localhost:7777 , 将此地址填入客户端即可。 - -::: tip 如何填写地址 -填写的代理在步骤2已经明确给出,给出的地址是 https:// 开头的,需要改为如: wss://。 - -grpc目前没有测试是否支持,测试支持后后续会更新文档并补充。 -::: - -## 测试效果 - -整体机房是 amazon 的,所属地基本正确。 - -![render-cip](https://seamoon.oss-cn-hangzhou.aliyuncs.com/db670fef7f4f47cd95108a656c28c9a5.png) - -速度的话,也就是正常水平,基本满足日常浏览和视频播放的样子。 - -![render-speed](https://seamoon.oss-cn-hangzhou.aliyuncs.com/80aee46729ca4ecdbda4c244ac26835b.png) - -免费的来说已经是很不错的了。 - -## 一些小细节问题 - -访问不到render/dashboard/github...... - -我的建议是,先用阿里云等国内方案临时解决访问一下,然后在方案 render 等作为长期持久使用的方案。 - -支持 grpc 吗? - -没做测试,个人测试使用的是 websocket 隧道,然后也没有发现官方文档中提到 grpc 相关的,有兴趣的各位可以试一下然后反馈给我。 - -关于动态IP 问题 - -免费版本的 render 是不支持动态 scaling (动态伸缩扩容) 的,因此,这个方案部署的 seamoon 将会是一个固定 IP。 -只有当 pod 销毁了,或者是你升级了套餐内容 (每月7刀) 才支持 scaling,才可以获取到动态 IP 的方案。 - -当然,事无绝对,你非要使用 "动态" + "免费" 的方式,也有,通过 api 调用每小时自动删除再创建应用,即可实现这个效果,还可以实现动态的地区变动。。。。 - -不过人家已经免费了,我不是非常建议这样做了。想要动态的 7刀一个月也不是一个过分的价格了,能支持的还是支持一下。 diff --git "a/docs/guide/02.\346\234\215\345\212\241\351\203\250\347\275\262/09.serverless.md" "b/docs/guide/02.\346\234\215\345\212\241\351\203\250\347\275\262/09.serverless.md" deleted file mode 100644 index 78d03e7..0000000 --- "a/docs/guide/02.\346\234\215\345\212\241\351\203\250\347\275\262/09.serverless.md" +++ /dev/null @@ -1,169 +0,0 @@ ---- -title: Serverless-Devs -date: 2022-09-29 23:43:29 -permalink: /guide/deploy/serverlessDevs -article: false ---- - -## serverless-devs - -你也可以通过[serverless-devs](http://www.serverless-devs.com),快速部署到各个云平台。 - -## 安装 serverless-devs 工具 - -```shell -$ npm install @serverless-devs/s -g -``` - -国内加速: - -```shell -$ cnpm install @serverless-devs/s -g -``` - -如果不存在npm包管理器,请先通过node安装npm/cnpm - -安装后运行 - -```shell -$ s -v -``` - -将可以看到serverless-devs版本,表示安装成功。 - -```shell -@serverless-devs/s3: 0.1.0, s-home: /Users/DVK/.s, darwin-arm64, node-v20.9.0 -``` - -然后通过如下命令开始配置云厂商认证 - -```shell -$ s config add -``` - -按提示即可选择即可,本次我们以 `Alibaba Cloud` 为例,输入对应的账户`AccessKeyID`、`AccessKeySecret` - -最后一步填写`alias`时,请确保值为`default`(一般初次安装与认证该字段都默认为default,回车即可)。 - -如果AK/SK无误,那么你将会看到认证成功的提示。 - -## 部署 - -```shell -$ git clone https://github.com/DVKunion/SeaMoon.git -``` - -进入到项目目录 - -```shell -$ cd SeaMoon -$ s deploy -``` - -如果你不是第一次部署,那么将会提示你选择冲突的配置:remote/local,一般选择local即可。 - -稍等片刻,你将会得到部署好的两个地址: - -```shell -SeaMoon-WST-Node: - region: cn-hongkong - service: - name: SeaMoon-Service - function: - name: ws-node - runtime: custom - handler: main - memorySize: 128 - timeout: 300 - cpu: 0.05 - diskSize: 512 - url: - system_url: https://ws-node-seamoon-service-xxxxxxxx.cn-hongkong.fcapp.run - system_intranet_url: https://ws-node-seamoon-service-xxxxxxxx.cn-hongkong-vpc.fcapp.run - triggers: - - type: http - name: httpTrigger -SeaMoon-GRT-Node: - region: cn-hongkong - service: - name: SeaMoon-Service - function: - name: grpc-node - runtime: custom - handler: main - memorySize: 128 - timeout: 300 - cpu: 0.05 - diskSize: 512 - url: - system_url: https://grpc-node-seamoon-service-xxxxxxxx.cn-hongkong.fcapp.run - system_intranet_url: https://grpc-node-seamoon-service-xxxxxxxx.cn-hongkong-vpc.fcapp.run - triggers: - - type: http - name: httpTrigger -``` - -服务端部署完成。 - -## 高级选项 - -## 地域 - -如果你想要修改部署的地域,请修改 `s.yaml` 中的 `region` 字段。 - -目前支持的 `region` : - -``` -cn-hangzhou, -cn-beijing, -cn-shanghai, -cn-qingdao, -cn-zhangjiakou, -cn-huhehaote, -cn-shenzhen, -cn-chengdu, -cn-hongkong, -ap-southeast-1, -ap-southeast-2, -ap-southeast-3, -ap-southeast-5, -ap-northeast-1, -eu-central-1, -eu-west-1, -us-west-1, -us-east-1, -ap-south-1 -``` - -## 花费 vs 更多的IP - -阿里云的 FC 计费模式与实例数、vCPU消耗息息相关。 - -由于我们的流量中转单例,cpu 消耗并不会打满,而仍然会依照 0.33 计费。 - -因此,控制多个请求到一个实例,即可控制消费;对应的能够获取到的IP也会随之减少。 - -10线程、每个线程 100 个用例打满ip查询测试的结果为: - -+ 实例数目不设限、最高超时时间为600s、每个实例只处理一个请求: 70 IP -+ 实例数目不设限、最高超时时间为300s、每个实例处理10请求: 45IP (目前默认配置) - -如果你需要自行调整,可修改s.yaml中的: - -```yaml -services: - SeaMoon-WST-Node: - component: fc - props: - ...... -instanceConcurrency: 10 #一个实例最多请求处理数 - ...... -timeout: 300 #超时时间,数值越大,可维持的不中断连接时间就会越长 -``` - -随着修改,改方案可能导致的花费也会随之不同。 - -## 可能遇到的坑 - -+ 需要能够访问的到 github, 在 pre-load 脚本中会从 github 上拉取最新版本的 release 用于部署。 -+ 需要系统有 wget 命令。(windows 用户可以暂时放弃这个方式,不打算支持 windows 通过此类方式部署) \ No newline at end of file diff --git "a/docs/guide/02.\346\234\215\345\212\241\351\203\250\347\275\262/03.sealos.md" "b/docs/guide/02.\351\253\230\347\272\247\350\277\233\351\230\266/00.paas.md" similarity index 50% rename from "docs/guide/02.\346\234\215\345\212\241\351\203\250\347\275\262/03.sealos.md" rename to "docs/guide/02.\351\253\230\347\272\247\350\277\233\351\230\266/00.paas.md" index 478c54b..b99f02a 100644 --- "a/docs/guide/02.\346\234\215\345\212\241\351\203\250\347\275\262/03.sealos.md" +++ "b/docs/guide/02.\351\253\230\347\272\247\350\277\233\351\230\266/00.paas.md" @@ -1,49 +1,52 @@ --- -title: Sealos -date: 2023-07-21 18:29 -permalink: /guide/deploy/sealos +title: PaaS 平台部署 +date: 2024-04-02 18:40:46 +permalink: /guide/paas article: false --- +# PaaS 平台部署 + +SeaMoon 的服务端其实支持部署到多种 PaaS 类型的平台 + ## 部署到Sealos: 拥抱更便宜、更舒适、更优美可控的云服务平台 [Sealos公有云地址](https://cloud.sealos.io/) + 先说下我喜欢Sealos的原因: 简单的页面,适合新手小白,无需了解过多的云服务相关知识 -操作起来和操作一个os一样,点击、配置、部署,一气呵成。 -对比各大厂的balabala一堆限制,sealos的门槛更低,更适合小白上手。 +操作起来和操作一个os一样,点击、配置、部署,一气呵成。 对比各大厂的balabala一堆限制,sealos的门槛更低,更适合小白上手。 ![sealos-dashboard](https://seamoon.oss-cn-hangzhou.aliyuncs.com/b792343632554e7fab560b74d3fb57b7.png) 简单易懂的计费方式:花费更低,效果不变 -对比各大厂花里胡哨的各项计费指标(尤其是流量也要收费), -sealos的计费方式真正的做到按照计算量计费,费用透明,整体使用下来价格更低。 +对比各大厂花里胡哨的各项计费指标(尤其是流量也要收费),sealos的计费方式真正的做到按照计算量计费,费用透明,整体使用下来价格更低。 ![sealos-app](https://seamoon.oss-cn-hangzhou.aliyuncs.com/31c6d9dae9534812b909e1a5f9cf3df8.png) 配置更加灵活:不用了pause、用的时候start、想要多少的IP自行可控 -sealos支持快速弹性扩容,当需求高时,可以调低扩容触发点,获取到更多IP -当不需要使用时,可以快速的pause停止;下次使用时又能快速的恢复。 + +sealos支持快速弹性扩容,当需求高时,可以调低扩容触发点,获取到更多IP 当不需要使用时,可以快速的pause停止;下次使用时又能快速的恢复。 ![sealos-container](https://seamoon.oss-cn-hangzhou.aliyuncs.com/500897ae5b5f48d9b20f18d3f3eaa7ea.png) -## 如何部署 +### 如何部署 sealos上部署seamoon服务将更加简单,只需要鼠标点击操作: -### Step.1 注册账户 +#### Step.1 注册账户 注册并登陆[cloud.sealos.io](https://cloud.sealos.io/), 点击`App Launchpad` ![sealos-applanch](https://seamoon.oss-cn-hangzhou.aliyuncs.com/4bfbdf9f9ad5440b91ec85831c062b07.png) -### Step.2 部署 +#### Step.2 部署 ::: warning 注意 sealos 并不是部署一个服务 就带着两种类型的隧道。因此,如果你希望使用 websocket 隧道, 需要部署 websocket 类型的服务。 @@ -55,7 +58,7 @@ sealos 并不是部署一个服务 就带着两种类型的隧道。因此,如 ![sealos-config](https://seamoon.oss-cn-hangzhou.aliyuncs.com/f331255e64724bba8d84add292cae6e0.png) -::: tip 提示 +::: tip 提示 此处,如果你部署的是 grpc 隧道的话,请将端口改为 8089,协议选择 grpc, 如下图: ![sealos-config-grpc](https://seamoon.oss-cn-hangzhou.aliyuncs.com/68f55dbfb40d4310b9aae6674d335817.png) ::: @@ -68,11 +71,8 @@ sealos 并不是部署一个服务 就带着两种类型的隧道。因此,如 此处,如果你部署的是 grpc 隧道的话,请修改此处的启动命令为: `/app/seamoon server -p 8089 -t grpc` , 如下图: ![sealos-config-grpc-2](https://seamoon.oss-cn-hangzhou.aliyuncs.com/608d9fcde8684d5cb19940bb33e90a4a.png) - ::: - - 你也可以直接选择yaml文件,参考如下: > 注意,下面的 yaml 仅供参考,我隐去了一些身份相关的字段,没有展示出来,只列出了一些关键的项目。 @@ -189,7 +189,7 @@ spec: -### Step.3 本地客户端 +#### Step.3 本地客户端 填写完成后,点击右上角 `Deploy`, 等待部署完成,状态success后,获取到服务地址。 @@ -217,7 +217,7 @@ wss 隧道直接复制即可,注意 grpc 服务还需要指定一下端口号 ![sealos-config](https://seamoon.oss-cn-hangzhou.aliyuncs.com/a931e0b42c8748649d5156b2b0884fcb.png) -## 效果展示 +### 效果展示 [旺柴] 谷歌云的IP访问谷歌简直不能再丝滑 @@ -228,3 +228,127 @@ wss 隧道直接复制即可,注意 grpc 服务还需要指定一下端口号 ![speed](https://seamoon.oss-cn-hangzhou.aliyuncs.com/7bfff588795a4e41b488694ad4eb5153.png) 如果不需要多IP,实例副本数目固定为1即可;如果需要多IP,副本越多,获取到的IP就越多。(理性使用) + + +## 部署到Render: ~~免费的永远是最好的~~去**的免费的,号没了 + +::: danger +2024.04.02 更新 +由于封号的问题,在 2.0 的初代版本没有集成自动化部署 render 服务。 +但是你仍可以通过手动部署的方式来 + + +2024.02.02 更新 +render 不但 ban 了 `seamoon` 镜像,还把号封了,*** 玩不起就别玩。 +虽然还有各种各样的绕过方式,其账户注册起来也不困难,但是可以看出该运营商的顺准了,云计算这么多家,你不声明禁止直接ban号ban镜像有点东西的 +也可能是我没仔细看声明,如果有找到的师傅麻烦让我看一下在哪。先喷为敬了。 +![render-ban](https://seamoon.oss-cn-hangzhou.aliyuncs.com/4170f495a85d4cc6a6ff64ddedee9c3e.png) +::: + + +[Render公有云地址](https://www.render.com/) + +> Render是一个新的PaaS( Platform as a service)云端服务,也就是说你的代码部署到Render之后,你不用(也不能)去管Linux/firewall/nginx的设定。把你的Github网址给Render,设定一下用鼠标点点点,等个几分钟,你的程序就上线了,全世界都能看到你的网站或是存取你提供的API。[(选自知乎)](https://zhuanlan.zhihu.com/p/377558120) + +我们来看一下官方是如何介绍自己的: + +> Build, deploy, and scale your apps with unparalleled ease – from your first user to your billionth. +> + +其实这些都不重要,重要的是你只需要知道,~~render提供的free套餐完全支持我们部署 seamoon,不需要花费一分钱!这就够了,足够我们给他树一个👍。~~ 第二天就封号了的臭SB。 + + +### 如何部署 + +render 部署与 sealos 部署一样简单,在新版本中,我会逐步减少部署步骤,降低这部分交互。 + +#### Step.1 注册账户 + +render 账户支持 github / gitlab / google 等一键登陆,建议直接 github 账户登陆即可。 + +实在不行,他也支持邮箱注册,自己注册一个,此处不再废话。 + +![render-register](https://seamoon.oss-cn-hangzhou.aliyuncs.com/7d00a615cd45480bad1b7ade33b7e543.png) + +#### Step.2 部署 + +注册账户登陆后,进入控制台,选择创建一个 web service 应用: + +![render-web-service](https://seamoon.oss-cn-hangzhou.aliyuncs.com/ffcd48fa203b4959bdde631bdf77610e.png) + +然后选第二个,从存在的镜像中部署服务: + +![render-web-deploy](https://seamoon.oss-cn-hangzhou.aliyuncs.com/faa0f096dcfa40998b518b5e4de96534.png) + +点击下一步,要求我们填写部署的镜像名称,我们填写:`dvkunion/seamoon` + +![render-image](https://seamoon.oss-cn-hangzhou.aliyuncs.com/3bc5a0437ea94a348f9841864f5c2df3.png) + +开始填写详细的应用字段了,我们依次填写: + ++ Name: 应用名称,这个最终会对应生成你的服务域名,因此这里我建议越复杂越好,因为 seamoon 当前版本没有做认证,导致如果服务名称过于简单,很容易被其他人连上。 ++ Region: 地域,选择服务部署的地区,现在支持四个区域:oregon-俄勒冈州(美国西部)、Frankfurt-法兰克福(欧盟)、ohio-俄亥俄州(美国东部)、singapore-新加坡(东亚) ++ 实例类型: 选免费的。 + +![render-config](https://seamoon.oss-cn-hangzhou.aliyuncs.com/160ff4f44e5a4e9d9128269dbc1a3e26.png) + +往下滑,看到 Docker Command 填写如下: + +![render-docker](https://seamoon.oss-cn-hangzhou.aliyuncs.com/51fa80f6e4c84ae985bdb23ac8acf673.png) + +完成,点击创建即可。 + +![render-url](https://seamoon.oss-cn-hangzhou.aliyuncs.com/158478ce77a84130b43f786670a40c65.png) + +#### Step.3 本地客户端 + +在本地启动客户端,推荐 docker 一键拉起: + +```shell +$ docker run -it -d --net=host dvkunion/seamoon proxy +``` + +默认使用`--net=host`模式, 如需要高级设置,如下: + +```shell +$ docker run -it -d -p 7777:7777 -p 1080:1080 dvkunion/seamoon proxy +``` + +访问本地控制台 localhost:7777 , 将此地址填入客户端即可。 + +::: tip 如何填写地址 +填写的代理在步骤2已经明确给出,给出的地址是 https:// 开头的,需要改为如: wss://。 + +grpc目前没有测试是否支持,测试支持后后续会更新文档并补充。 +::: + +### 测试效果 + +整体机房是 amazon 的,所属地基本正确。 + +![render-cip](https://seamoon.oss-cn-hangzhou.aliyuncs.com/db670fef7f4f47cd95108a656c28c9a5.png) + +速度的话,也就是正常水平,基本满足日常浏览和视频播放的样子。 + +![render-speed](https://seamoon.oss-cn-hangzhou.aliyuncs.com/80aee46729ca4ecdbda4c244ac26835b.png) + +免费的来说已经是很不错的了。 + +### 一些小细节问题 + +访问不到render/dashboard/github...... + +我的建议是,先用阿里云等国内方案临时解决访问一下,然后在方案 render 等作为长期持久使用的方案。 + +支持 grpc 吗? + +没做测试,个人测试使用的是 websocket 隧道,然后也没有发现官方文档中提到 grpc 相关的,有兴趣的各位可以试一下然后反馈给我。 + +关于动态IP 问题 + +免费版本的 render 是不支持动态 scaling (动态伸缩扩容) 的,因此,这个方案部署的 seamoon 将会是一个固定 IP。 +只有当 pod 销毁了,或者是你升级了套餐内容 (每月7刀) 才支持 scaling,才可以获取到动态 IP 的方案。 + +当然,事无绝对,你非要使用 "动态" + "免费" 的方式,也有,通过 api 调用每小时自动删除再创建应用,即可实现这个效果,还可以实现动态的地区变动。。。。 + +不过人家已经免费了,我不是非常建议这样做了。想要动态的 7刀一个月也不是一个过分的价格了,能支持的还是支持一下。 diff --git "a/docs/guide/02.\346\234\215\345\212\241\351\203\250\347\275\262/02.tecent.md" "b/docs/guide/02.\351\253\230\347\272\247\350\277\233\351\230\266/01.faas.md" similarity index 78% rename from "docs/guide/02.\346\234\215\345\212\241\351\203\250\347\275\262/02.tecent.md" rename to "docs/guide/02.\351\253\230\347\272\247\350\277\233\351\230\266/01.faas.md" index bcdd50a..1b8e8c4 100644 --- "a/docs/guide/02.\346\234\215\345\212\241\351\203\250\347\275\262/02.tecent.md" +++ "b/docs/guide/02.\351\253\230\347\272\247\350\277\233\351\230\266/01.faas.md" @@ -1,10 +1,44 @@ --- -title: 腾讯云 -date: 2022-09-28 00:27:13 -permalink: /guide/deploy/tencent +title: BaaS/FaaS 手动部署 +date: 2024-04-08 08:25:37 +permalink: /guide/faas article: false --- +## 步部署到阿里云 + +阿里云是使用上最为规范、标准化场景下的serverless部署方式。 + +如果你对serverless的运作感兴趣,并希望寻找更多的玩法,阿里云是一个不错的选择,各种选项可以帮助你更好地理解和配置serverless。 + +### 如何部署 + +如果你了解云函数,可以使用自定义镜像 / 自定义运行时 / 二进制等等方式部署。 + +下文是基于对完全不了解云函数的同学给出的最简单的部署方式。 + +#### Step.1 + ++ 阿里云首先要开通函数计算服务。 ++ fork 该仓库(https://github.com/DVKunion/SeaMoon.git)到您自己的 github 账户下 ++ 进入阿里云控制台,点击应用 -> 创建应用 + +![aliyun-create-app](https://seamoon.oss-cn-hangzhou.aliyuncs.com/66d81e68e1fa4ef9b8aa3775b4957552.png) + +#### Step.2 + +选择 `通过仓库导入应用` , 授权Github账户后,选择fork好的仓库,如果您之前没有使用过阿里云,在角色权限处还需要进行一次授权。 + +![aliyun-app-import](https://seamoon.oss-cn-hangzhou.aliyuncs.com/d00b5116362d47cdb429f91e48ab2d3a.png) + +#### Step.3 + +点击创建,等待服务部署成功 + +### 效果展示 +![speed](https://seamoon.oss-cn-hangzhou.aliyuncs.com/7bfff588795a4e41b488694ad4eb5153.png) + + ## 叹息的腾讯云 ::: danger 注意 @@ -22,11 +56,11 @@ article: false 因此使用腾讯云的用户请先考虑下钱包,虽然最低配置的流量包9.9一个月。 -## 如何部署 +### 如何部署 步骤很多,一步一步操作吧。。。大概对比一下就知道为什么不推荐腾讯云部署了。 -### Step.1 +#### Step.1 结论也提到了,腾讯云不支持go代码级别部署,所以我们为了方便,只能通过自定义镜像部署模式,函数类型选择web类型: @@ -76,7 +110,7 @@ $ docker push <上图命令的地址>/<上图命令的地址>/seamoon-server:lat 至此,第一步已完成。 -### Step.2 +#### Step.2 回到函数创建的页面,我们继续来创建函数。 @@ -110,11 +144,11 @@ $ docker push <上图命令的地址>/<上图命令的地址>/seamoon-server:lat 点击部署,终于,服务部署完成。 -### Step.3 +#### Step.3 部署完成后,几秒后自动跳转到函数页面,点击触发管理,可以看到函数地址,将此地址直接复制到客户端配置即可。 -## 效果展示 +### 效果展示 勉勉强强及格吧,大概10MB下行带宽的样子。 @@ -122,4 +156,3 @@ $ docker push <上图命令的地址>/<上图命令的地址>/seamoon-server:lat 而且从服务群来看,感觉腾讯云已经摆烂了,这玩意就这样了你爱用不用吧......哎。 - diff --git "a/docs/guide/02.\346\234\215\345\212\241\351\203\250\347\275\262/README.md" "b/docs/guide/02.\351\253\230\347\272\247\350\277\233\351\230\266/README.md" similarity index 90% rename from "docs/guide/02.\346\234\215\345\212\241\351\203\250\347\275\262/README.md" rename to "docs/guide/02.\351\253\230\347\272\247\350\277\233\351\230\266/README.md" index 056e0c1..f7ea127 100644 --- "a/docs/guide/02.\346\234\215\345\212\241\351\203\250\347\275\262/README.md" +++ "b/docs/guide/02.\351\253\230\347\272\247\350\277\233\351\230\266/README.md" @@ -1,11 +1,11 @@ --- -title: 服务端部署 +title: 高级进阶 date: 2023-07-18 00:27:13 -permalink: /guide/deploy +permalink: /guide/advance article: false --- -## 服务端部署 +# 高级进阶 SeaMoon 提供了多种多样的部署方式。 diff --git "a/docs/guide/03.\345\256\242\346\210\267\347\253\257\351\203\250\347\275\262/04.tor.md" "b/docs/guide/03.\345\205\266\344\273\226\345\256\242\346\210\267\347\253\257\346\224\257\346\214\201/01.tor.md" similarity index 99% rename from "docs/guide/03.\345\256\242\346\210\267\347\253\257\351\203\250\347\275\262/04.tor.md" rename to "docs/guide/03.\345\205\266\344\273\226\345\256\242\346\210\267\347\253\257\346\224\257\346\214\201/01.tor.md" index acfcdd2..a274c06 100644 --- "a/docs/guide/03.\345\256\242\346\210\267\347\253\257\351\203\250\347\275\262/04.tor.md" +++ "b/docs/guide/03.\345\205\266\344\273\226\345\256\242\346\210\267\347\253\257\346\224\257\346\214\201/01.tor.md" @@ -1,5 +1,5 @@ --- -title: Tor +title: tor date: 2022-09-29 23:45:03 permalink: /guide/client/tor article: false diff --git "a/docs/guide/03.\345\256\242\346\210\267\347\253\257\351\203\250\347\275\262/03.gost.md" "b/docs/guide/03.\345\205\266\344\273\226\345\256\242\346\210\267\347\253\257\346\224\257\346\214\201/02.gost.md" similarity index 99% rename from "docs/guide/03.\345\256\242\346\210\267\347\253\257\351\203\250\347\275\262/03.gost.md" rename to "docs/guide/03.\345\205\266\344\273\226\345\256\242\346\210\267\347\253\257\346\224\257\346\214\201/02.gost.md" index 377c1fd..783c7af 100644 --- "a/docs/guide/03.\345\256\242\346\210\267\347\253\257\351\203\250\347\275\262/03.gost.md" +++ "b/docs/guide/03.\345\205\266\344\273\226\345\256\242\346\210\267\347\253\257\346\224\257\346\214\201/02.gost.md" @@ -1,7 +1,7 @@ --- title: gost date: 2023-01-26 13:58:21 -permalink: /guide/client/gost +permalink: /guide/gost article: false --- diff --git "a/docs/guide/03.\345\205\266\344\273\226\345\256\242\346\210\267\347\253\257\346\224\257\346\214\201/03.v2ray.md" "b/docs/guide/03.\345\205\266\344\273\226\345\256\242\346\210\267\347\253\257\346\224\257\346\214\201/03.v2ray.md" new file mode 100644 index 0000000..b9a1e1d --- /dev/null +++ "b/docs/guide/03.\345\205\266\344\273\226\345\256\242\346\210\267\347\253\257\346\224\257\346\214\201/03.v2ray.md" @@ -0,0 +1,8 @@ +--- +title: v2ray +date: 2024-04-02 17:46:56 +permalink: /guide/v2ray +article: false +--- + +seamoon 完美兼容 v2ray 系列客户端。 \ No newline at end of file diff --git "a/docs/guide/03.\345\256\242\346\210\267\347\253\257\351\203\250\347\275\262/README.md" "b/docs/guide/03.\345\205\266\344\273\226\345\256\242\346\210\267\347\253\257\346\224\257\346\214\201/README.md" similarity index 55% rename from "docs/guide/03.\345\256\242\346\210\267\347\253\257\351\203\250\347\275\262/README.md" rename to "docs/guide/03.\345\205\266\344\273\226\345\256\242\346\210\267\347\253\257\346\224\257\346\214\201/README.md" index 523f39c..d66656a 100644 --- "a/docs/guide/03.\345\256\242\346\210\267\347\253\257\351\203\250\347\275\262/README.md" +++ "b/docs/guide/03.\345\205\266\344\273\226\345\256\242\346\210\267\347\253\257\346\224\257\346\214\201/README.md" @@ -1,13 +1,17 @@ --- -title: 客户端部署 +title: 其他客户端支持 date: 2023-07-18 23:45:03 -permalink: /guide/client +permalink: /guide/support article: false --- -## 客户端部署 +## 其他客户端支持 -SeaMoon 客户端同样支持多模式部署 +SeaMoon 继承了云原生的开放思想,不局限于一种/一个平台,尽可能的适配各种客户端的模式,使用已有的成品客户端。 + +成品客户端通常会支持更多协议类型,比如 gost,基本上所有可以监听的类型都可以通过 seamoon 隧道协议转发出来。 + ++ [gost:优雅简便的go代理](https://seamoon.dvkunion.cn/guide/client/gost/) + [docker](https://seamoon.dvkunion.cn/guide/client/docker/) + [binary](https://seamoon.dvkunion.cn/guide/deploy/binary/) @@ -15,11 +19,5 @@ SeaMoon 客户端同样支持多模式部署 Seamoon 客户端还支持了 Tor 网桥的接入 + [tor](https://seamoon.dvkunion.cn/guide/client/tor/) - -除此之外,你还可以选择其他客户端,seamoon做了部分的协议适配支持,这样可以选择仅部署服务端,然后使用已有的成品客户端。 - -成品客户端通常会支持更多协议类型,比如 gost,基本上所有可以监听的类型都可以通过 seamoon 隧道协议转发出来。 - -+ [gost:优雅简便的go代理](https://seamoon.dvkunion.cn/guide/client/gost/) - -[//]: # (+ [v2ray: 时代战神](https://seamoon.dvkunion.cn/guide/client/v2ray/)) \ No newline at end of file ++ [v2ray: 时代战神](https://seamoon.dvkunion.cn/guide/client/v2ray/) ++ [clash: 快速的即成,抛开多个客户端](https://seamoon.dvkunion.cn/guide/client/clash/) \ No newline at end of file diff --git "a/docs/guide/03.\345\256\242\346\210\267\347\253\257\351\203\250\347\275\262/01.docker.md" "b/docs/guide/03.\345\256\242\346\210\267\347\253\257\351\203\250\347\275\262/01.docker.md" deleted file mode 100644 index a499cc9..0000000 --- "a/docs/guide/03.\345\256\242\346\210\267\347\253\257\351\203\250\347\275\262/01.docker.md" +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: docker -date: 2022-09-29 23:45:03 -permalink: /guide/client/docker -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` - -即可开启客户端, 点击配置管理 - -![client](https://seamoon.oss-cn-hangzhou.aliyuncs.com/0dd37f5600364e59a9457e38eaf77b1f.png) - -添加云端配置 - -![client-config](https://seamoon.oss-cn-hangzhou.aliyuncs.com/66b1b150238e400483adf936649b7ed5.png) - -::: tip 如何填写地址 -将协议头 https:// 替换为对应的隧道协议,如: ws:// 或是 grcp:// 。默认两种协议的隧道是都部署了的。 - -grpc 按照阿里云的要求,还需要自行声明端口,由此,一个 grpc 隧道的填写应该是这样: grpc://grpc-node-seamoon-service-xxxxxxxx.cn-hongkong.fcapp.run:8089 - -8089 是阿里云的固定 grpc 协议端口,不需要改动。 -::: -开启socks5代理,并保持默认`:1080`不改变。 \ No newline at end of file diff --git "a/docs/guide/03.\345\256\242\346\210\267\347\253\257\351\203\250\347\275\262/02.binary.md" "b/docs/guide/03.\345\256\242\346\210\267\347\253\257\351\203\250\347\275\262/02.binary.md" deleted file mode 100644 index 893a2a4..0000000 --- "a/docs/guide/03.\345\256\242\346\210\267\347\253\257\351\203\250\347\275\262/02.binary.md" +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: binary -date: 2022-09-30 00:01:03 -permalink: /guide/client/binary -article: false ---- - -## Binary - -## 客户端下载 - -在 [Github Release](https://github.com/DVKunion/SeaMoon/releases) 界面。在最新版本列表哪,选择您对应系统型号的client 包下载。 - -![release](https://seamoon.oss-cn-hangzhou.aliyuncs.com/955161ed6d3c48b181397bed1bcaca45.png) - -## 客户端配置 - -> 1.1.0 之前的客户端是cli的模式,已经废弃,不再支持,请使用最新版本客户端。 - -`./seamoon proxy` - -启动客户端,会占用7777端口。 - -然后所有操作在 localhost:7777 进行操作即可: - -![client](https://seamoon.oss-cn-hangzhou.aliyuncs.com/0dd37f5600364e59a9457e38eaf77b1f.png) - -点击配置管理, 添加云端配置, 然后按照你的需求,选在开启本地的http代理/socks5代理 - -![client-config](https://seamoon.oss-cn-hangzhou.aliyuncs.com/66b1b150238e400483adf936649b7ed5.png) - -::: tip 如何填写地址 -将协议头 https:// 替换为对应的隧道协议,如: ws:// 或是 grcp:// 。默认两种协议的隧道是都部署了的。 - -grpc 按照阿里云的要求,还需要自行声明端口,由此,一个 grpc 隧道的填写应该是这样: grpc://grpc-node-seamoon-service-xxxxxxxx.cn-hongkong.fcapp.run:8089 - -8089 是阿里云的固定 grpc 协议端口,不需要改动。 -::: \ No newline at end of file diff --git "a/docs/tech/00.\345\206\231\345\234\250\345\211\215\351\235\242/00.position.md" "b/docs/tech/00.\345\206\231\345\234\250\345\211\215\351\235\242/00.position.md" index b9de73c..de31062 100644 --- "a/docs/tech/00.\345\206\231\345\234\250\345\211\215\351\235\242/00.position.md" +++ "b/docs/tech/00.\345\206\231\345\234\250\345\211\215\351\235\242/00.position.md" @@ -7,6 +7,10 @@ article: false # Position +## 一些想法上的改动 +随着版本的迭代,月海已经与我最初的雏形完全偏离 + + ## 前言: 为什么要写月海这个工具? (Why Sea Moon) + 随着云原生不断地推广,希望渗透测试也能够与时俱进,开启一个新的纪元。不论从测试的手段还是挖掘方向,都应该朝着时代发展的方向跟进。 diff --git "a/docs/tech/01.\347\275\221\347\273\234/01.HTTP.md" "b/docs/tech/01.\347\275\221\347\273\234/01.HTTP.md" index 1d3db8f..7f267f6 100644 --- "a/docs/tech/01.\347\275\221\347\273\234/01.HTTP.md" +++ "b/docs/tech/01.\347\275\221\347\273\234/01.HTTP.md" @@ -6,8 +6,6 @@ article: false --- # HTTP -[TODO] 重构HTTP逻辑,通过net进行转发而不是上层的http - HTTP代理 涉及了三个问题。 1. HOST 路由问题 diff --git a/docs/yarn.lock b/docs/yarn.lock index 0b9d8c1..9f0ed02 100644 --- a/docs/yarn.lock +++ b/docs/yarn.lock @@ -8234,9 +8234,9 @@ vuepress-plugin-smooth-scroll@^0.0.3: dependencies: smoothscroll-polyfill "^0.4.3" -vuepress-theme-vdoing@^1.12.9: +vuepress-theme-vdoing@^1.12.8: version "1.12.9" - resolved "https://registry.yarnpkg.com/vuepress-theme-vdoing/-/vuepress-theme-vdoing-1.12.9.tgz#e1f4b6d170fd7082fc7a1e334149d0bd5bb4ff40" + resolved "https://registry.npmmirror.com/vuepress-theme-vdoing/-/vuepress-theme-vdoing-1.12.9.tgz#e1f4b6d170fd7082fc7a1e334149d0bd5bb4ff40" integrity sha512-TpZ6wRaqRVyNfHNlNMIpWsQqcX2QUZWpMVSNYeepR3LRpq6qbz0dUN9fHlOoCyYFHGsWBSgYyxCSvFwoPk01/Q== dependencies: "@better-scroll/core" "^2.0.0-beta.6" diff --git a/pkg/sdk/aliyun/aliyun_sdk.go b/pkg/sdk/aliyun/aliyun_sdk.go index 2b7d857..cc482eb 100644 --- a/pkg/sdk/aliyun/aliyun_sdk.go +++ b/pkg/sdk/aliyun/aliyun_sdk.go @@ -122,8 +122,15 @@ func deploy(ca *models.CloudAuth, tun *models.Tunnel) (string, string, error) { WithTimeout(300). WithCustomContainerConfig(fc.NewCustomContainerConfig(). WithImage(fmt.Sprintf("%s:%s", registryEndPoint[tun.Config.Region], xlog.Version)). - WithCommand("[\"./seamoon\"]"). - WithArgs("[\"server\"]"))); err != nil { + WithArgs(func() string { + switch *tun.Type { + case enum.TunnelTypeWST: + return "[\"server\", \"-p\", \"9000\", \"-t\", \"websocket\"]" + case enum.TunnelTypeGRT: + return "[\"server\", \"-p\", \"8089\", \"-t\", \"grpc\"]" + } + return "" + }()))); err != nil { return "", "", err } else { uid = *res.FunctionID diff --git a/pkg/sdk/sealos/sealos_sdk.go b/pkg/sdk/sealos/sealos_sdk.go index d3216a9..49c67e1 100644 --- a/pkg/sdk/sealos/sealos_sdk.go +++ b/pkg/sdk/sealos/sealos_sdk.go @@ -296,7 +296,6 @@ func renderDeployment(svcName, imgName string, port int32, config *models.Tunnel }(), }, }, - Command: []string{"/app/seamoon"}, Args: func() []string { switch *tp { case enum.TunnelTypeWST: diff --git a/pkg/sdk/tencent/tencent_sdk.go b/pkg/sdk/tencent/tencent_sdk.go index 971e380..82ad6e0 100644 --- a/pkg/sdk/tencent/tencent_sdk.go +++ b/pkg/sdk/tencent/tencent_sdk.go @@ -213,7 +213,6 @@ func deploy(ca *models.CloudAuth, tun *models.Tunnel) (string, string, error) { ImageConfig: &scf.ImageConfig{ ImageType: common.StringPtr("personal"), ImageUri: common.StringPtr(strings.Join([]string{registryEndPoint[tun.Config.Region], xlog.Version}, ":")), - Command: common.StringPtr("/app/seamoon"), Args: common.StringPtr("server -p " + strconv.Itoa(int(*tun.Port)) + " -t " + string(*tun.Type)), ImagePort: common.Int64Ptr(int64(*tun.Port)), }, diff --git a/web/config/proxy.ts b/web/config/proxy.ts index f7ecf05..666cae1 100644 --- a/web/config/proxy.ts +++ b/web/config/proxy.ts @@ -11,7 +11,7 @@ export default { // localhost:8000/api/** -> https://preview.pro.ant.design/api/** '/api/': { // 要代理的地址 - target: 'http://localhost:7777/', + target: 'http://localhost:7778/', // 配置了这个可以从 http 代理到 https // 依赖 origin 的功能可能需要这个,比如 cookie changeOrigin: true, diff --git a/web/src/pages/service/components/CreateForm.tsx b/web/src/pages/service/components/CreateForm.tsx index 1b6a7e9..0a9a8a6 100644 --- a/web/src/pages/service/components/CreateForm.tsx +++ b/web/src/pages/service/components/CreateForm.tsx @@ -12,6 +12,7 @@ import {ProxyForm} from "@/components/StepForm/ProxyForm"; import {TunnelSelect} from "@/components/StepForm/TunnelSelect"; export type FormValueType = { + region: string, cpu: number, port: string, memory: number, diff --git a/web/src/services/service/api.ts b/web/src/services/service/api.ts index 56e525a..41f015c 100644 --- a/web/src/services/service/api.ts +++ b/web/src/services/service/api.ts @@ -31,11 +31,12 @@ export async function createServiceProxy(data: FormValueType) { params["tunnel_id"] = 0 params["tunnel_create_api"] = { "provider_id": data.provider_id, - "port": data.port.toString(), + "port": data.port, "name": data.tunnel_name, "type": data.tunnel_type, "status": 1, "tunnel_config": { + "region": data.region, "cpu": toNumber(data.cpu), "memory": toNumber(data.memory), "instance": toNumber(data.instance),