Skip to content

Commit

Permalink
Merge pull request #3845 from fatedier/dev
Browse files Browse the repository at this point in the history
bump version to v0.53.0
  • Loading branch information
fatedier committed Dec 14, 2023
2 parents 44985f5 + cc20769 commit 051299e
Show file tree
Hide file tree
Showing 103 changed files with 3,470 additions and 1,545 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/golangci-lint.yml
Expand Up @@ -22,7 +22,7 @@ jobs:
uses: golangci/golangci-lint-action@v3
with:
# Optional: version of golangci-lint to use in form of v1.2 or v1.2.3 or `latest` to use the latest version
version: v1.53
version: v1.55

# Optional: golangci-lint command line arguments.
# args: --issues-exit-code=0
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -33,6 +33,7 @@ lastversion/
dist/
.idea/
.vscode/
.autogen_ssh_key

# Cache
*.swp
2 changes: 1 addition & 1 deletion .golangci.yml
@@ -1,5 +1,5 @@
service:
golangci-lint-version: 1.51.x # use the fixed version to not introduce new linters unexpectedly
golangci-lint-version: 1.55.x # use the fixed version to not introduce new linters unexpectedly

run:
concurrency: 4
Expand Down
4 changes: 2 additions & 2 deletions Makefile
Expand Up @@ -26,10 +26,10 @@ vet:
go vet ./...

frps:
env CGO_ENABLED=0 go build -trimpath -ldflags "$(LDFLAGS)" -o bin/frps ./cmd/frps
env CGO_ENABLED=0 go build -trimpath -ldflags "$(LDFLAGS)" -tags frps -o bin/frps ./cmd/frps

frpc:
env CGO_ENABLED=0 go build -trimpath -ldflags "$(LDFLAGS)" -o bin/frpc ./cmd/frpc
env CGO_ENABLED=0 go build -trimpath -ldflags "$(LDFLAGS)" -tags frpc -o bin/frpc ./cmd/frpc

test: gotest

Expand Down
60 changes: 58 additions & 2 deletions README.md
Expand Up @@ -11,6 +11,10 @@
<a href="https://workos.com/?utm_campaign=github_repo&utm_medium=referral&utm_content=frp&utm_source=github" target="_blank">
<img width="350px" src="https://raw.githubusercontent.com/fatedier/frp/dev/doc/pic/sponsor_workos.png">
</a>
<a>&nbsp</a>
<a href="https://www.nango.dev?utm_source=github&utm_medium=oss-banner&utm_campaign=fatedier-frp" target="_blank">
<img width="400px" src="https://raw.githubusercontent.com/fatedier/frp/dev/doc/pic/sponsor_nango.png">
</a>
</p>
<!--gold sponsors end-->

Expand Down Expand Up @@ -42,7 +46,7 @@ frp also offers a P2P connect mode.
* [Using Environment Variables](#using-environment-variables)
* [Split Configures Into Different Files](#split-configures-into-different-files)
* [Server Dashboard](#server-dashboard)
* [Admin UI](#admin-ui)
* [Client Admin UI](#client-admin-ui)
* [Monitor](#monitor)
* [Prometheus](#prometheus)
* [Authenticating the Client](#authenticating-the-client)
Expand Down Expand Up @@ -71,9 +75,10 @@ frp also offers a P2P connect mode.
* [Custom Subdomain Names](#custom-subdomain-names)
* [URL Routing](#url-routing)
* [TCP Port Multiplexing](#tcp-port-multiplexing)
* [Connecting to frps via HTTP PROXY](#connecting-to-frps-via-http-proxy)
* [Connecting to frps via PROXY](#connecting-to-frps-via-proxy)
* [Client Plugins](#client-plugins)
* [Server Manage Plugins](#server-manage-plugins)
* [SSH Tunnel Gateway](#ssh-tunnel-gateway)
* [Contributing](#contributing)
* [Donation](#donation)
* [GitHub Sponsors](#github-sponsors)
Expand Down Expand Up @@ -505,6 +510,7 @@ includes = ["./confd/*.toml"]

```toml
# ./confd/test.toml

[[proxies]]
name = "ssh"
type = "tcp"
Expand Down Expand Up @@ -616,6 +622,7 @@ The features are off by default. You can turn on encryption and/or compression:

```toml
# frpc.toml

[[proxies]]
name = "ssh"
type = "tcp"
Expand Down Expand Up @@ -771,6 +778,7 @@ We would like to try to allow multiple proxies bind a same remote port with diff

```toml
# frpc.toml

[[proxies]]
name = "ssh"
type = "tcp"
Expand Down Expand Up @@ -876,6 +884,7 @@ This feature is only available for types `tcp`, `http`, `tcpmux` now.

```toml
# frpc.toml

[[proxies]]
name = "test1"
type = "tcp"
Expand Down Expand Up @@ -911,6 +920,7 @@ With health check type **tcp**, the service port will be pinged (TCPing):

```toml
# frpc.toml

[[proxies]]
name = "test1"
type = "tcp"
Expand All @@ -930,6 +940,7 @@ With health check type **http**, an HTTP request will be sent to the service and

```toml
# frpc.toml

[[proxies]]
name = "web"
type = "http"
Expand All @@ -954,6 +965,7 @@ However, speaking of web servers and HTTP requests, your web server might rely o

```toml
# frpc.toml

[[proxies]]
name = "web"
type = "http"
Expand All @@ -970,6 +982,7 @@ Similar to `Host`, You can override other HTTP request headers with proxy type `

```toml
# frpc.toml

[[proxies]]
name = "web"
type = "http"
Expand Down Expand Up @@ -997,6 +1010,7 @@ Here is an example for https service:

```toml
# frpc.toml

[[proxies]]
name = "web"
type = "https"
Expand All @@ -1019,6 +1033,7 @@ It can only be enabled when proxy type is http.

```toml
# frpc.toml

[[proxies]]
name = "web"
type = "http"
Expand All @@ -1043,6 +1058,7 @@ Resolve `*.frps.com` to the frps server's IP. This is usually called a Wildcard

```toml
# frpc.toml

[[proxies]]
name = "web"
type = "http"
Expand All @@ -1062,6 +1078,7 @@ frp supports forwarding HTTP requests to different backend web services by url r

```toml
# frpc.toml

[[proxies]]
name = "web01"
type = "http"
Expand Down Expand Up @@ -1147,6 +1164,7 @@ Using plugin **http_proxy**:

```toml
# frpc.toml

[[proxies]]
name = "http_proxy"
type = "tcp"
Expand All @@ -1165,6 +1183,44 @@ Read the [document](/doc/server_plugin.md).

Find more plugins in [gofrp/plugin](https://github.com/gofrp/plugin).

### SSH Tunnel Gateway

*added in v0.53.0*

frp supports listening to an SSH port on the frps side and achieves TCP protocol proxying through the SSH -R protocol, without relying on frpc.

```toml
# frps.toml
sshTunnelGateway.bindPort = 2200
```

When running `./frps -c frps.toml`, a private key file named `.autogen_ssh_key` will be automatically created in the current working directory. This generated private key file will be used by the SSH server in frps.

Executing the command

```bash
ssh -R :80:127.0.0.1:8080 v0@{frp address} -p 2200 tcp --proxy_name "test-tcp" --remote_port 9090
```

sets up a proxy on frps that forwards the local 8080 service to the port 9090.

```bash
frp (via SSH) (Ctrl+C to quit)

User:
ProxyName: test-tcp
Type: tcp
RemoteAddress: :9090
```

This is equivalent to:

```bash
frpc tcp --proxy_name "test-tcp" --local_ip 127.0.0.1 --local_port 8080 --remote_port 9090
```

Please refer to this [document](/doc/ssh_tunnel_gateway.md) for more information.

## Contributing

Interested in getting involved? We would like to help you!
Expand Down
6 changes: 5 additions & 1 deletion README_zh.md
Expand Up @@ -13,6 +13,10 @@ frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP
<a href="https://workos.com/?utm_campaign=github_repo&utm_medium=referral&utm_content=frp&utm_source=github" target="_blank">
<img width="350px" src="https://raw.githubusercontent.com/fatedier/frp/dev/doc/pic/sponsor_workos.png">
</a>
<a>&nbsp</a>
<a href="https://www.nango.dev?utm_source=github&utm_medium=oss-banner&utm_campaign=fatedier-frp" target="_blank">
<img width="400px" src="https://raw.githubusercontent.com/fatedier/frp/dev/doc/pic/sponsor_nango.png">
</a>
</p>
<!--gold sponsors end-->

Expand Down Expand Up @@ -84,7 +88,7 @@ frp 是一个免费且开源的项目,我们欢迎任何人为其开发和进

### 知识星球

如果您想了解更多 frp 相关技术以及更新详解,或者寻求任何帮助及咨询,都可以通过微信扫描下方的二维码付费加入知识星球的官方社群:
如果您想了解更多 frp 相关技术以及更新详解,或者寻求任何 frp 使用方面的帮助,都可以通过微信扫描下方的二维码付费加入知识星球的官方社群:

![zsxq](/doc/pic/zsxq.jpg)

Expand Down
10 changes: 9 additions & 1 deletion Release.md
@@ -1,3 +1,11 @@
### Features

* The new command line parameter `--strict_config` has been added to enable strict configuration validation mode. It will throw an error for unknown fields instead of ignoring them. In future versions, we will set the default value of this parameter to true to avoid misconfigurations.
* Support `SSH reverse tunneling`. With this feature, you can expose your local service without running frpc, only using SSH. The SSH reverse tunnel agent has many functional limitations compared to the frpc agent. The currently supported proxy types are tcp, http, https, tcpmux, and stcp.
* The frpc tcpmux command line parameters have been updated to support configuring `http_user` and `http_pwd`.
* The frpc stcp/sudp/xtcp command line parameters have been updated to support configuring `allow_users`.

### Fixes

* `admin_user` is not effective in the INI configuration.
* frpc: Return code 1 when the first login attempt fails and exits.
* When auth.method is `oidc` and auth.additionalScopes contains `HeartBeats`, if obtaining AccessToken fails, the application will be unresponsive.
85 changes: 0 additions & 85 deletions client/admin.go

This file was deleted.

0 comments on commit 051299e

Please sign in to comment.