diff --git a/README.md b/README.md index f13603c..76c6880 100644 --- a/README.md +++ b/README.md @@ -1,42 +1,42 @@

-# FastTunnel +# FastTunnel -内网穿透利器 +[README](README.md) | [中文文档](README_zh.md) + [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](https://github.com/SpringHgui/frp/pulls) [![Build status](https://github.com/anjoy8/blog.core/workflows/.NET%20Core/badge.svg)](https://github.com/SpringHgui/FastTunnel/actions) [![License](https://img.shields.io/badge/license-Apache%202-green.svg)](https://www.apache.org/licenses/LICENSE-2.0) [![CircleCI](https://circleci.com/gh/gothinkster/aspnetcore-realworld-example-app.svg?style=svg)](https://circleci.com/gh/SpringHgui/FastTunnel) -- FastTunnel是一款跨平台内网穿透工具,提供反向代理内网服务,将内网服务暴露在公网供别人访问,您可以通过本项目快速搭建一个穿透服务,需要的物料如下: -1. 一台公网的服务器 -2. 自己的域名(如果使用域名穿透访问内网站点则需要) +# FastTunnel是什么? +FastTunnel是一款高性能跨平台内网穿透工具,使用它可以实现在公网上访问您的内网服务。 -## 演示地址 -https://suidao.io +演示地址 https://suidao.io -## 特性 -- [x] 用自定义域名访问内网web服务(常用于微信开发) -- [x] 远程内网计算机 Windows/Linux/Mac -- [x] 端口转发/端口映射,访问内网任意端口提供的服务 mysql、redis、ftp等等 -- [x] 断线自动重连 -- [ ] p2p穿透 +**:point_right:走过路过的朋友star一下,给予本人支持,万分感谢。** -**:point_right:如果你觉得这个项目不错可star一下,这是对我最大的支持。** +# 使用FastTunnel能够做什么? +- [x]远程内网计算机 Windows/Linux/Mac +- [x]用自定义域名访问内网web服务(常用于微信开发) +- [x]端口转发/端口映射,访问内网任意端口提供的服务 mysql、redis、ftp等等 +- [ ] p2p穿透 -## 快速开始 + +# 快速开始 1. 在 [releases](https://github.com/SpringHgui/FastTunnel/releases) 页面下载对应的程序 2. 根据自己的需求修改配置文件`appsettings.json` 3. 服务端运行FastTunnel.Server 4. 客户端运行FastTunnel.Cient -### 各种操作系统运行程序的方式,以`FastTunnel.Client`为例 +# 如何在 Linux/Mac系统运行? #### Windows 直接双击 `FastTunnel.Client.exe` 即可运行 #### Linux -`chmod +x FastTunnel.Client` 添加执行权限 -`.\FastTunnel.Client` 执行文件 +`chmod +x FastTunnel.Client` +`.\FastTunnel.Client` #### Mac 直接运行 `FastTunnel.Client` -## 配置示例 +# 配置示例 ### 1. 用自定义域名访问内网web服务 - 例如你拥有一个服务器,公网ip地址为 `110.110.110.110` ,同时你有一个顶级域名为 `test.cc` 的域名,你希望访问 `test.test.cc`可以访问内网的一个网站。 - 你需要新增一个域名地址的DNS解析,类型为`A`,名称为 `*` , ipv4地址为 `110.110.110.110` ,这样 `*.test.cc`的域名均会指向`110.110.110.110`的服务器,由于`FastTunnel`默认监听的http端口为1270,所以要访问`http://test.test.cc:1270` @@ -84,7 +84,7 @@ ssh -oPort=12701 root@x.x.x.x ![img1](images/remote.png) -# 参与开发/PR +# 开发/PR - 安装 `vs2019` - 安装 `dotnetcore runtime&sdk 3.1` 或以上版本 diff --git a/README_zh.md b/README_zh.md new file mode 100644 index 0000000..76c6880 --- /dev/null +++ b/README_zh.md @@ -0,0 +1,92 @@ +

+ +# FastTunnel -内网穿透利器 +[README](README.md) | [中文文档](README_zh.md) + +[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](https://github.com/SpringHgui/frp/pulls) +[![Build status](https://github.com/anjoy8/blog.core/workflows/.NET%20Core/badge.svg)](https://github.com/SpringHgui/FastTunnel/actions) +[![License](https://img.shields.io/badge/license-Apache%202-green.svg)](https://www.apache.org/licenses/LICENSE-2.0) +[![CircleCI](https://circleci.com/gh/gothinkster/aspnetcore-realworld-example-app.svg?style=svg)](https://circleci.com/gh/SpringHgui/FastTunnel) +# FastTunnel是什么? +FastTunnel是一款高性能跨平台内网穿透工具,使用它可以实现在公网上访问您的内网服务。 + +演示地址 https://suidao.io + +**:point_right:走过路过的朋友star一下,给予本人支持,万分感谢。** + +# 使用FastTunnel能够做什么? +- [x]远程内网计算机 Windows/Linux/Mac +- [x]用自定义域名访问内网web服务(常用于微信开发) +- [x]端口转发/端口映射,访问内网任意端口提供的服务 mysql、redis、ftp等等 +- [ ] p2p穿透 + + +# 快速开始 +1. 在 [releases](https://github.com/SpringHgui/FastTunnel/releases) 页面下载对应的程序 +2. 根据自己的需求修改配置文件`appsettings.json` +3. 服务端运行FastTunnel.Server +4. 客户端运行FastTunnel.Cient + +# 如何在 Linux/Mac系统运行? +#### Windows +直接双击 `FastTunnel.Client.exe` 即可运行 +#### Linux +`chmod +x FastTunnel.Client` +`.\FastTunnel.Client` +#### Mac +直接运行 `FastTunnel.Client` + +# 配置示例 +### 1. 用自定义域名访问内网web服务 +- 例如你拥有一个服务器,公网ip地址为 `110.110.110.110` ,同时你有一个顶级域名为 `test.cc` 的域名,你希望访问 `test.test.cc`可以访问内网的一个网站。 +- 你需要新增一个域名地址的DNS解析,类型为`A`,名称为 `*` , ipv4地址为 `110.110.110.110` ,这样 `*.test.cc`的域名均会指向`110.110.110.110`的服务器,由于`FastTunnel`默认监听的http端口为1270,所以要访问`http://test.test.cc:1270` +- 如果不希望每次访问都带上端口号,可以通过`nginx`转发实现。 +- 如果服务端配置的域名为`ft.suidao.io`, 则通过子域名`test.ft.suidao.io`访问在本地的站点,IIS配置如下: +![img1](images/iis-web.png) + +### 2. 远程内网计算机 Windows/Linux/Mac + +客户端配置如下,内网有两台主机,ip如下: +appsettings.json +``` + "ClientSettings": { + "Common": { + "ServerAddr": "xxx.xxx.xxx.xxx", + "ServerPort": 1271 + }, + "SSH": [ + { + "LocalIp": "192.168.0.100", // linux主机 + "LocalPort": 22, // ssh远程默认端口号 + "RemotePort": 12701 + }, + { + "LocalIp": "192.168.0.101", // windows主机 + "LocalPort": 3389, // windows远程桌面默认端口号 + "RemotePort": 12702 + } + ] + } +``` +#### ssh远程内网linux主机 (ip:192.168.0.100) + +假设内网主机的用户名为 root,服务器ip为x.x.x.x,访问内网的两个主机分别如下 +``` +ssh -oPort=12701 root@x.x.x.x +``` + +#### mstsc远程桌面Windows主机(ip:192.168.0.101) +#### 被控制端设置 +- 打开cmd输入指令 `sysdm.cpl` 在弹出的对话框中选中允许远程连接此计算机 +![img1](images/setallow.png) +#### 控制端设置 +- 打开cmd输入指令 `mstsc`,打开远程对话框,在对话框的计算机输入框,输入 `x.x.x.x:12701` 然后指定用户名密码即可远程内网的windows主机 +![img1](images/remote.png) + + +# 开发/PR +- 安装 `vs2019` +- 安装 `dotnetcore runtime&sdk 3.1` 或以上版本 + +# License +Apache License 2.0