Skip to content

Commit

Permalink
Merge pull request #766 from fatedier/dev
Browse files Browse the repository at this point in the history
bump version to 0.19.0
  • Loading branch information
fatedier authored May 14, 2018
2 parents c008b14 + 2ffae34 commit f1bea49
Show file tree
Hide file tree
Showing 1,285 changed files with 14,796 additions and 309,078 deletions.
173 changes: 173 additions & 0 deletions Gopkg.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

70 changes: 70 additions & 0 deletions Gopkg.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# Gopkg.toml example
#
# Refer to https://github.com/golang/dep/blob/master/docs/Gopkg.toml.md
# for detailed Gopkg.toml documentation.
#
# required = ["github.com/user/thing/cmd/thing"]
# ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"]
#
# [[constraint]]
# name = "github.com/user/project"
# version = "1.0.0"
#
# [[constraint]]
# name = "github.com/user/project2"
# branch = "dev"
# source = "github.com/myfork/project2"
#
# [[override]]
# name = "github.com/x/y"
# version = "2.4.0"
#
# [prune]
# non-go = false
# go-tests = true
# unused-packages = true


[[constraint]]
name = "github.com/armon/go-socks5"
revision = "e75332964ef517daa070d7c38a9466a0d687e0a5"

[[constraint]]
name = "github.com/fatedier/beego"
revision = "6c6a4f5bd5eb5a39f7e289b8f345b55f75e7e3e8"

[[constraint]]
name = "github.com/fatedier/golib"
branch = "master"

[[constraint]]
branch = "frp"
name = "github.com/fatedier/kcp-go"

[[constraint]]
name = "github.com/gorilla/websocket"
version = "1.2.0"

[[constraint]]
name = "github.com/hashicorp/yamux"
revision = "2658be15c5f05e76244154714161f17e3e77de2e"

[[constraint]]
name = "github.com/rakyll/statik"
version = "0.1.0"

[[constraint]]
name = "github.com/rodaine/table"
version = "1.0.0"

[[constraint]]
name = "github.com/spf13/cobra"
version = "0.0.2"

[[constraint]]
name = "github.com/vaughan0/go-ini"
revision = "a98ad7ee00ec53921f08832bc06ecf7fd600e6a1"

[prune]
go-tests = true
unused-packages = true
1 change: 0 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
export PATH := $(GOPATH)/bin:$(PATH)
export GO15VENDOREXPERIMENT := 1

all: fmt build

Expand Down
1 change: 0 additions & 1 deletion Makefile.cross-compiles
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
export PATH := $(GOPATH)/bin:$(PATH)
export GO15VENDOREXPERIMENT := 1
LDFLAGS := -s -w

all: build
Expand Down
28 changes: 7 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ frp is a fast reverse proxy to help you expose a local server behind a NAT or fi
* [Expose a simple http file server](#expose-a-simple-http-file-server)
* [Expose your service in security](#expose-your-service-in-security)
* [P2P Mode](#p2p-mode)
* [Connect website through frpc's network](#connect-website-through-frpcs-network)
* [Features](#features)
* [Configuration File](#configuration-file)
* [Dashboard](#dashboard)
Expand All @@ -32,6 +31,7 @@ frp is a fast reverse proxy to help you expose a local server behind a NAT or fi
* [Hot-Reload frpc configuration](#hot-reload-frpc-configuration)
* [Get proxy status from client](#get-proxy-status-from-client)
* [Port White List](#port-white-list)
* [Port Reuse](#port-reuse)
* [TCP Stream Multiplexing](#tcp-stream-multiplexing)
* [Support KCP Protocol](#support-kcp-protocol)
* [Connection Pool](#connection-pool)
Expand Down Expand Up @@ -333,26 +333,6 @@ Now it can't penetrate all types of NAT devices. You can try **stcp** if **xtcp*

`ssh -oPort=6000 [email protected]`

### Connect website through frpc's network

Configure frps same as above.

1. Start frpc with configurations:

```ini
# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000

[http_proxy]
type = tcp
remote_port = 6000
plugin = http_proxy # or socks5
```

2. Set http proxy or socks5 proxy `x.x.x.x:6000` in your browser and visit website through frpc's network.
## Features

### Configuration File
Expand Down Expand Up @@ -434,6 +414,12 @@ allow_ports = 2000-3000,3001,3003,4000-50000

`allow_ports` consists of a specific port or a range of ports divided by `,`.

### Port Reuse

Now `vhost_http_port` and `vhost_https_port` in frps can use same port with `bind_port`. frps will detect connection's protocol and handle it correspondingly.

We would like to try to allow multiple proxies bind a same remote port with different protocols in the future.

### TCP Stream Multiplexing

frp support tcp stream multiplexing since v0.10.0 like HTTP2 Multiplexing. All user requests to same frpc can use only one tcp connection.
Expand Down
32 changes: 9 additions & 23 deletions README_zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp
* [对外提供简单的文件访问服务](#对外提供简单的文件访问服务)
* [安全地暴露内网服务](#安全地暴露内网服务)
* [点对点内网穿透](#点对点内网穿透)
* [通过 frpc 所在机器访问外网](#通过-frpc-所在机器访问外网)
* [功能说明](#功能说明)
* [配置文件](#配置文件)
* [Dashboard](#dashboard)
Expand All @@ -30,6 +29,7 @@ frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp
* [客户端热加载配置文件](#客户端热加载配置文件)
* [客户端查看代理状态](#客户端查看代理状态)
* [端口白名单](#端口白名单)
* [端口复用](#端口复用)
* [TCP 多路复用](#tcp-多路复用)
* [底层通信可选 kcp 协议](#底层通信可选-kcp-协议)
* [连接池](#连接池)
Expand Down Expand Up @@ -348,28 +348,6 @@ frp 提供了一种新的代理类型 **xtcp** 用于应对在希望传输大量

`ssh -oPort=6000 [email protected]`

### 通过 frpc 所在机器访问外网

frpc 内置了 http proxy 和 socks5 插件,可以使其他机器通过 frpc 的网络访问互联网。

frps 的部署步骤同上。

1. 启动 frpc,启用 http_proxy 或 socks5 插件(plugin 换为 socks5 即可), 配置如下:

```ini
# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000

[http_proxy]
type = tcp
remote_port = 6000
plugin = http_proxy
```

2. 浏览器设置 http 或 socks5 代理地址为 `x.x.x.x:6000`,通过 frpc 机器的网络访问互联网。

## 功能说明

### 配置文件
Expand Down Expand Up @@ -461,6 +439,14 @@ allow_ports = 2000-3000,3001,3003,4000-50000

`allow_ports` 可以配置允许使用的某个指定端口或者是一个范围内的所有端口,以 `,` 分隔,指定的范围以 `-` 分隔。

### 端口复用

目前 frps 中的 `vhost_http_port``vhost_https_port` 支持配置成和 `bind_port` 为同一个端口,frps 会对连接的协议进行分析,之后进行不同的处理。

例如在某些限制较严格的网络环境中,可以将 `bind_port``vhost_https_port` 都设置为 443。

后续会尝试允许多个 proxy 绑定同一个远端端口的不同协议。

### TCP 多路复用

从 v0.10.0 版本开始,客户端和服务器端之间的连接支持多路复用,不再需要为每一个用户请求创建一个连接,使连接建立的延迟降低,并且避免了大量文件描述符的占用,使 frp 可以承载更高的并发数。
Expand Down
2 changes: 1 addition & 1 deletion assets/static/index.html
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<!DOCTYPE html> <html lang=en> <head> <meta charset=utf-8> <title>frps dashboard</title> <link rel="shortcut icon" href="favicon.ico"></head> <body> <div id=app></div> <script type="text/javascript" src="manifest.js?facf06d98c7e1aea259d"></script><script type="text/javascript" src="vendor.js?a05a344be2b42183469b"></script><script type="text/javascript" src="index.js?a914c2dc7a5bb16ad443"></script></body> </html>
<!DOCTYPE html> <html lang=en> <head> <meta charset=utf-8> <title>frps dashboard</title> <link rel="shortcut icon" href="favicon.ico"></head> <body> <div id=app></div> <script type="text/javascript" src="manifest.js?33af4addd27a494b40c1"></script><script type="text/javascript" src="vendor.js?c2d294f9c0a40fd7073a"></script><script type="text/javascript" src="index.js?a0da222d4e0f906bc057"></script></body> </html>
4 changes: 2 additions & 2 deletions assets/static/index.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion assets/static/manifest.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions assets/static/vendor.js

Large diffs are not rendered by default.

4 changes: 3 additions & 1 deletion assets/statik/statik.go

Large diffs are not rendered by default.

Loading

0 comments on commit f1bea49

Please sign in to comment.