Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/editso/fuso
一款体积小, 快速, 稳定, 高效, 轻量的内网穿透, 端口转发工具 支持多连接,级联代理,传输加密 (A small volume, fast, stable, efficient, and lightweight intranet penetration, port forwarding tool supports multiple connections, cascading proxy, and transmission encryption)
https://github.com/editso/fuso
async bridge forward kcp nat penetrate proxy rust smol socks5 tokio tunnel udp udp-forwarder
Last synced: 25 days ago
JSON representation
一款体积小, 快速, 稳定, 高效, 轻量的内网穿透, 端口转发工具 支持多连接,级联代理,传输加密 (A small volume, fast, stable, efficient, and lightweight intranet penetration, port forwarding tool supports multiple connections, cascading proxy, and transmission encryption)
- Host: GitHub
- URL: https://github.com/editso/fuso
- Owner: editso
- License: gpl-3.0
- Created: 2021-11-26T15:02:06.000Z (almost 3 years ago)
- Default Branch: refactor/dev
- Last Pushed: 2024-05-19T15:34:04.000Z (6 months ago)
- Last Synced: 2024-09-26T22:40:30.260Z (about 1 month ago)
- Topics: async, bridge, forward, kcp, nat, penetrate, proxy, rust, smol, socks5, tokio, tunnel, udp, udp-forwarder
- Language: Rust
- Homepage:
- Size: 8.1 MB
- Stars: 1,797
- Watchers: 22
- Forks: 195
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-hacking-lists - editso/fuso - 一款体积小, 快速, 稳定, 高效, 轻量的内网穿透, 端口转发工具 支持多连接,级联代理,传输加密 (A small volume, fast, stable, efficient, and lightweight intranet penetration, port forwarding tool supports multiple connections, cascading proxy, (Rust)
README
# Fuso : 扶桑
A fast, stable, cross-platform and efficient intranet penetration and port forwarding tool
一款 快速 稳定 跨平台 高效的内网穿透,端口转发工具
[![Author](https://img.shields.io/badge/Author-editso-blueviolet)](https://github.com/editso)
[![Daza](https://img.shields.io/badge/Misc-1x2Bytes-blueviolet)](https://github.com/B1eed)
[![Daza](https://img.shields.io/badge/Misc-ifishzz-blueviolet)](https://github.com/ifishzz)
[![Bin](https://img.shields.io/badge/Fuso-Bin-ff69b4)](https://github.com/editso/fuso/releases)
[![GitHub issues](https://img.shields.io/github/issues/editso/fuso)](https://github.com/editso/fuso/issues)
[![Github Stars](https://img.shields.io/github/stars/editso/fuso)](https://github.com/editso/fuso)
[![GitHub forks](https://img.shields.io/github/forks/editso/fuso)](https://github.com/editso/fuso)
[![GitHub license](https://img.shields.io/github/license/editso/fuso)](https://github.com/editso/fuso)
[![Downloads](https://img.shields.io/github/downloads/editso/fuso/total?label=Release%20Download)](https://github.com/editso/fuso/releases/latest)### 待完善
1. webhook
2. web管理面板
3. 正向代理
4. 流转发
5. 文档修正### 快速开始
1. [下载fuso](https://github.com/editso/fuso/releases/latest)2. 解压,得到 `fus`,`fuc`两个程序, 将`fus`上传到你的服务器, 将`fuc`放到你需要穿透的电脑上
![image](doc/image/step-1.jpg)3. 在你的服务器上启动`fus` 如下图,则表示服务端启动成功
![image](doc/image/step-2.jpg)
1. *默认情况下,服务端监听6722端口*4. 在你需要穿透的电脑上启动`fuc` 如下图, 则表示客户端启动成功
![image](doc/image/step-3.jpg)
1. *默认情况下,将转发到`127.0.0.1:80`, 访问端口将随机分配*5. 此时访问`127.0.0.1:60974`即可, 注意: 你的`80`端口必须有服务在运行
### 使用说明
```
1. 端口转发
fuc --forward-host xxx.xxx.xxx.xxx --forward-port
--forward-host: 转发到的地址
--forward-port: 转发到的端口
如: 转发流量到内网 10.10.10.4:3389
> fuc --forward-host 10.10.10.4 --forward-port 33892. socks5:
fuc --socks --su --s5p xxx --s5u xxx
--su: 可选的, 开启udp转发,
--s5p: 可选的, 认证密码, 默认不进行密码认证
--s5u 可选的, 认证账号, 默认账号 anonymous
--socks: 可选的, 开启socks5代理, 未指定--su的情况下不会转发udp
如: 开启udp转发与密码认证
> fuc --socks --su --s5p 123 --s5u socks
此时, 已开启udp转发,连接密码为 "123",账号为 "socks"3. 指定穿透成功时访问的端口
fuc -b xxxx
-b | --visit-bind-port: 可选的, 默认随机分配
如: 访问外网端口 8888 转发到内网 80
> fuc --forward-port 80 -b 8888
4. 桥接模式 注意: 目前不能转发udp
fuc --bridge-listen xxxx --bridge-port xxx
--bridge-listen | --bl: 监听地址, 默认 127.0.0.1
--bridge-port | --bp: 监听端口, 默认不启用桥接
如: 开始桥接模式,并监听在9999端口, 本机ip地址为: 10.10.10.2
> fuc --bridge-listen 0.0.0.0 --bridge-port 9999 # 开启桥接
> fuc 10.10.10.2 9999 # 建立连接级联:
> fuc --bridge-listen 0.0.0.0 --bridge-port 9999 # 第一级, IP: 10.10.10.2
> fuc --bridge-listen 0.0.0.0 --bridge-port 9991 10.10.10.2 9999 # 第二级, IP: 10.10.10.3
> fuc 10.10.10.3 9991 # 最终5. 将连接信息通知到 Telegram 或其他
fus --observer "program:[arguments]"
--observer: 建立连接或断开连接时的钩子
如: 使用bash脚本将连接信息通知到tg
> fus --observer "/bin/bash:[telegram.sh]"6. 指定客户端与服务端通信的端口
fuc --channel-port 8888 ...
--channel-port: 可选的, 客户端与服务端通信端口, 默认随机
```### Demo
![Demo](demo/demo.gif)### Features
| Name | ✔(Achieved) / ❌(Unrealized)) |
| --------------- | --------------------------------------------------------------------------------- |
| 基本转发 | ✔ |
| 传输加密 | ✔ |
| socks5 | ✔ |
| socks5 udp 转发 | ✔ |
| kcp 支持 | ✔ |
| 多映射 | ✔ |
| 级联代理 | ✔ |
| 数据传输压缩 | ✔ |
| websocket | ❌ |
| `Rsa`加密 | ✔ |
| `Aes`加密 | ✔ |### External
- kcp: [https://github.com/Matrix-Zhang/kcp](https://github.com/Matrix-Zhang/kcp)
- lz4: [https://github.com/lz4/lz4](https://github.com/lz4/lz4)### 注意
- 本项目所用技术**仅用于学习交流**,**请勿直接用于任何商业场合和非法用途**。