Compare commits
5 Commits
e52019c4e9
...
0ea4edc606
Author | SHA1 | Date | |
---|---|---|---|
|
0ea4edc606 | ||
|
e680acf42d | ||
|
522e2c94c1 | ||
|
57d51e3f62 | ||
|
ab62011bc8 |
@ -5,3 +5,4 @@
|
||||
### Changes
|
||||
|
||||
* Updated the default value of `transport.tcpMuxKeepaliveInterval` from 60 to 30.
|
||||
* On the Android platform, the Google DNS server is used only when the default DNS server cannot be obtained.
|
||||
|
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)
|
@ -17,6 +17,7 @@ package v1
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"reflect"
|
||||
)
|
||||
@ -42,7 +43,7 @@ func (c *TypedClientPluginOptions) UnmarshalJSON(b []byte) error {
|
||||
|
||||
c.Type = typeStruct.Type
|
||||
if c.Type == "" {
|
||||
return nil
|
||||
return errors.New("plugin type is empty")
|
||||
}
|
||||
|
||||
v, ok := clientPluginOptionsTypeMap[typeStruct.Type]
|
||||
@ -63,6 +64,10 @@ func (c *TypedClientPluginOptions) UnmarshalJSON(b []byte) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *TypedClientPluginOptions) MarshalJSON() ([]byte, error) {
|
||||
return json.Marshal(c.ClientPluginOptions)
|
||||
}
|
||||
|
||||
const (
|
||||
PluginHTTP2HTTPS = "http2https"
|
||||
PluginHTTPProxy = "http_proxy"
|
||||
|
@ -195,6 +195,10 @@ func (c *TypedProxyConfig) UnmarshalJSON(b []byte) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *TypedProxyConfig) MarshalJSON() ([]byte, error) {
|
||||
return json.Marshal(c.ProxyConfigurer)
|
||||
}
|
||||
|
||||
type ProxyConfigurer interface {
|
||||
Complete(namePrefix string)
|
||||
GetBaseConfig() *ProxyBaseConfig
|
||||
|
@ -120,6 +120,10 @@ func (c *TypedVisitorConfig) UnmarshalJSON(b []byte) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *TypedVisitorConfig) MarshalJSON() ([]byte, error) {
|
||||
return json.Marshal(c.VisitorConfigurer)
|
||||
}
|
||||
|
||||
func NewVisitorConfigurerByType(t VisitorType) VisitorConfigurer {
|
||||
v, ok := visitorConfigTypeMap[t]
|
||||
if !ok {
|
||||
|
@ -59,8 +59,12 @@ func fixDNSResolver() {
|
||||
// Note: If there are other methods to obtain the default DNS servers, the default DNS servers should be used preferentially.
|
||||
net.DefaultResolver = &net.Resolver{
|
||||
PreferGo: true,
|
||||
Dial: func(ctx context.Context, network, _ string) (net.Conn, error) {
|
||||
return net.Dial(network, "8.8.8.8:53")
|
||||
Dial: func(ctx context.Context, network, addr string) (net.Conn, error) {
|
||||
if addr == "127.0.0.1:53" || addr == "[::1]:53" {
|
||||
addr = "8.8.8.8:53"
|
||||
}
|
||||
var d net.Dialer
|
||||
return d.DialContext(ctx, network, addr)
|
||||
},
|
||||
}
|
||||
}
|
||||
|