Compare commits
4 Commits
a8221859a2
...
b1210bd847
Author | SHA1 | Date | |
---|---|---|---|
|
b1210bd847 | ||
|
f0442d0cd5 | ||
|
57d51e3f62 | ||
|
ab62011bc8 |
13
Release.md
@ -1,14 +1,3 @@
|
||||
### Notable Changes
|
||||
|
||||
We have optimized the heartbeat mechanism when tcpmux is enabled (enabled by default). The default value of `heartbeatInterval` has been adjusted to -1. This update ensures that when tcpmux is active, the client does not send additional heartbeats to the server. Since tcpmux incorporates its own heartbeat system, this change effectively reduces unnecessary data consumption, streamlining communication efficiency between client and server.
|
||||
|
||||
When connecting to frps versions older than v0.39.0 might encounter compatibility issues due to changes in the heartbeat mechanism. As a temporary workaround, setting the `heartbeatInterval` to 30 can help maintain stable connectivity with these older versions. We recommend updating to the latest frps version to leverage full functionality and improvements.
|
||||
|
||||
### Features
|
||||
|
||||
* Show tcpmux proxies on the frps dashboard.
|
||||
* `http` proxy can modify the response header. For example, `responseHeaders.set.foo = "bar"` will add a new header `foo: bar` to the response.
|
||||
|
||||
### Fixes
|
||||
|
||||
* When an HTTP proxy request times out, it returns 504 instead of 404 now.
|
||||
* Fixed an issue where HTTP/2 was not enabled for https2http and https2https plugins.
|
||||
|
BIN
demonstrated_images/Untitled (1).png
Normal file
After Width: | Height: | Size: 54 KiB |
BIN
demonstrated_images/Untitled (10).png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
demonstrated_images/Untitled (11).png
Normal file
After Width: | Height: | Size: 32 KiB |
BIN
demonstrated_images/Untitled (12).png
Normal file
After Width: | Height: | Size: 79 KiB |
BIN
demonstrated_images/Untitled (13).png
Normal file
After Width: | Height: | Size: 37 KiB |
BIN
demonstrated_images/Untitled (14).png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
demonstrated_images/Untitled (15).png
Normal file
After Width: | Height: | Size: 25 KiB |
BIN
demonstrated_images/Untitled (16).png
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
demonstrated_images/Untitled (17).png
Normal file
After Width: | Height: | Size: 44 KiB |
BIN
demonstrated_images/Untitled (18).png
Normal file
After Width: | Height: | Size: 61 KiB |
BIN
demonstrated_images/Untitled (19).png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
demonstrated_images/Untitled (2).png
Normal file
After Width: | Height: | Size: 76 KiB |
BIN
demonstrated_images/Untitled (20).png
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
demonstrated_images/Untitled (21).png
Normal file
After Width: | Height: | Size: 38 KiB |
BIN
demonstrated_images/Untitled (22).png
Normal file
After Width: | Height: | Size: 155 KiB |
BIN
demonstrated_images/Untitled (3).png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
demonstrated_images/Untitled (4).png
Normal file
After Width: | Height: | Size: 193 KiB |
BIN
demonstrated_images/Untitled (5).png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
demonstrated_images/Untitled (6).png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
demonstrated_images/Untitled (7).png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
demonstrated_images/Untitled (8).png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
demonstrated_images/Untitled (9).png
Normal file
After Width: | Height: | Size: 9.0 KiB |
BIN
demonstrated_images/Untitled.png
Normal file
After Width: | Height: | Size: 10 KiB |
159
demonstrated_readme/README.md
Normal file
@ -0,0 +1,159 @@
|
||||
# Expose local Port - > frp-demonstration
|
||||
|
||||
Reference → [https://github.com/REZ-OAN/frp](https://github.com/REZ-OAN/frp)
|
||||
|
||||
# Step-1 Go on your vm or bm
|
||||
|
||||
Goto your server
|
||||
|
||||

|
||||
|
||||
# Step-2 Download release and Extract It (on vm or bm)
|
||||
|
||||
Download the latest release from the github repo
|
||||
|
||||
.png)
|
||||
|
||||
Select the one which meet your system architecture
|
||||
|
||||
.png)
|
||||
|
||||
Now hover on the file and `right click` on it select the `copy link address`
|
||||
|
||||
Now `goto` the `terminal` where you `ssh` to the server
|
||||
|
||||
go to preferred folder where you want to download the release
|
||||
|
||||
.png)
|
||||
|
||||
Now using `wget` download the release
|
||||
|
||||
```bash
|
||||
wget https://github.com/REZ-OAN/frp/releases/download/v0.57.0/frp_0.57.0_linux_amd64.tar.gz
|
||||
```
|
||||
|
||||
.png)
|
||||
|
||||
In this directory you will see like this
|
||||
|
||||
.png)
|
||||
|
||||
Now extract the `.tar.gz` file
|
||||
|
||||
.png)
|
||||
|
||||
Now `goto` `frp_0.57.0_linux_amd64/` this folder
|
||||
|
||||
This files will be there
|
||||
|
||||
.png)
|
||||
|
||||
# Step-3 Running frp-server ( on vm or bm)
|
||||
|
||||
Now edit the `frps.toml` because we will run the `frp-server` on our `vm` or `bm`
|
||||
|
||||
We need to specify a `port` on our `vm` or `bm` on which the `frp-server`will listen to
|
||||
|
||||
.png)
|
||||
|
||||
Using `nano` edit the `bindPort` if you want to
|
||||
|
||||
.png)
|
||||
|
||||
I have edited the port number
|
||||
|
||||
.png)
|
||||
|
||||
Now run the server
|
||||
|
||||
```bash
|
||||
./frps -c ./frps.toml
|
||||
```
|
||||
|
||||
.png)
|
||||
|
||||
# Step-4 Running our codeserver-python (on local machine)
|
||||
|
||||
First need to pull the image from the docker.hub
|
||||
|
||||
```bash
|
||||
docker pull poridhi/codeserver-python:v1.2
|
||||
```
|
||||
|
||||
Now, run this and copy the image id to run the image
|
||||
|
||||
```bash
|
||||
docker images
|
||||
```
|
||||
|
||||
Run using below command
|
||||
|
||||
```bash
|
||||
docker run -it -p 5000:8080 b25217878034
|
||||
```
|
||||
|
||||
Your terminal will look like this
|
||||
|
||||
.png)
|
||||
|
||||
# Step-5 Running frp-client (on our local machine)
|
||||
|
||||
Firstly do every thing in done in the **Step-2 ,** after doing all of those things
|
||||
|
||||
Edit the `frpc.toml`
|
||||
|
||||
.png)
|
||||
|
||||
Here, `serverAddr` refers to the server from where you locally running service will be **exposed**
|
||||
|
||||
And `serverPort` refers to the port where the`frp-server` is listening
|
||||
|
||||
And `localPort` refers to the port in which our service is **running**
|
||||
|
||||
And `remotePort` refers to the `port`in the `remoteServer` in which our service will be **exposed** to
|
||||
|
||||
Edit the `serverPort` to `4848` and `localPort` to `5000` and set `remotePort` to `7050` using `nano`
|
||||
|
||||
.png)
|
||||
|
||||
Now run the `frp-client`
|
||||
|
||||
```bash
|
||||
./frpc -c ./frpc.toml
|
||||
```
|
||||
|
||||
# Step-6 create tunnel on cloudflare and then expose the port
|
||||
|
||||
Go to cloudflare dashboard select the `Zero Trust`
|
||||
|
||||
.png)
|
||||
|
||||
Then open networks drop down and select the tunnels
|
||||
|
||||
.png)
|
||||
|
||||
Now click on `create tunnel`
|
||||
|
||||
.png)
|
||||
|
||||
Select the recommended connector
|
||||
|
||||
.png)
|
||||
|
||||
Then click on `next` and then give a name i choose `test-frp`
|
||||
|
||||
Now choose connector environment , i have chosen `docker`
|
||||
|
||||
.png)
|
||||
|
||||
Now copy the connector `command` and run it on `detach` mode on your `server` ( in our case 103.174.50.21)
|
||||
|
||||
.png)
|
||||
|
||||
Now select the domain and subdomain , and the url server `ip_address:remotePort`
|
||||
|
||||
.png)
|
||||
|
||||
Now hit the URL `test-frp.poridhi.io/?folder=/app/` will see
|
||||
|
||||
.png)
|
@ -72,11 +72,6 @@ func NewHTTPS2HTTPPlugin(options v1.ClientPluginOptions) (Plugin, error) {
|
||||
ErrorLog: stdlog.New(log.NewWriteLogger(log.WarnLevel, 2), "", 0),
|
||||
}
|
||||
|
||||
p.s = &http.Server{
|
||||
Handler: rp,
|
||||
ReadHeaderTimeout: 60 * time.Second,
|
||||
}
|
||||
|
||||
var (
|
||||
tlsConfig *tls.Config
|
||||
err error
|
||||
@ -90,10 +85,15 @@ func NewHTTPS2HTTPPlugin(options v1.ClientPluginOptions) (Plugin, error) {
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("gen TLS config error: %v", err)
|
||||
}
|
||||
ln := tls.NewListener(listener, tlsConfig)
|
||||
|
||||
p.s = &http.Server{
|
||||
Handler: rp,
|
||||
ReadHeaderTimeout: 60 * time.Second,
|
||||
TLSConfig: tlsConfig,
|
||||
}
|
||||
|
||||
go func() {
|
||||
_ = p.s.Serve(ln)
|
||||
_ = p.s.ServeTLS(listener, "", "")
|
||||
}()
|
||||
return p, nil
|
||||
}
|
||||
|
@ -78,11 +78,6 @@ func NewHTTPS2HTTPSPlugin(options v1.ClientPluginOptions) (Plugin, error) {
|
||||
ErrorLog: stdlog.New(log.NewWriteLogger(log.WarnLevel, 2), "", 0),
|
||||
}
|
||||
|
||||
p.s = &http.Server{
|
||||
Handler: rp,
|
||||
ReadHeaderTimeout: 60 * time.Second,
|
||||
}
|
||||
|
||||
var (
|
||||
tlsConfig *tls.Config
|
||||
err error
|
||||
@ -96,10 +91,15 @@ func NewHTTPS2HTTPSPlugin(options v1.ClientPluginOptions) (Plugin, error) {
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("gen TLS config error: %v", err)
|
||||
}
|
||||
ln := tls.NewListener(listener, tlsConfig)
|
||||
|
||||
p.s = &http.Server{
|
||||
Handler: rp,
|
||||
ReadHeaderTimeout: 60 * time.Second,
|
||||
TLSConfig: tlsConfig,
|
||||
}
|
||||
|
||||
go func() {
|
||||
_ = p.s.Serve(ln)
|
||||
_ = p.s.ServeTLS(listener, "", "")
|
||||
}()
|
||||
return p, nil
|
||||
}
|
||||
|