Compare commits

...

4 Commits

Author SHA1 Message Date
Rezoan Ahmed Abir
4d41fb7f5b
Merge 57d51e3f62eed7c26ac51ab768437e040d7f211d into 77990c31ef625261fefe0e926d08cca509fa78dc 2024-05-29 23:46:10 -06:00
fatedier
77990c31ef
fix ini configuration default values (#4250) 2024-05-30 10:36:30 +08:00
REZ-OAN
57d51e3f62 updated demonstrated_readme 2024-05-01 13:17:03 +06:00
REZ-OAN
ab62011bc8 frp-demonstration-with-cloudflare 2024-05-01 13:11:34 +06:00
27 changed files with 176 additions and 46 deletions

View File

@ -1,6 +1,7 @@
### Fixes
* Fixed an issue where HTTP/2 was not enabled for https2http and https2https plugins.
* Fixed the issue where the default values of INI configuration parameters are inconsistent with other configuration formats.
### Changes

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View 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
![Untitled](https://github.com/REZ-OAN/frp/blob/frp-demonstration-with-cloudflare/demonstrated_images/Untitled.png)
# Step-2 Download release and Extract It (on vm or bm)
Download the latest release from the github repo
![Untitled](https://github.com/REZ-OAN/frp/blob/frp-demonstration-with-cloudflare/demonstrated_images/Untitled%20(1).png)
Select the one which meet your system architecture
![Untitled](https://github.com/REZ-OAN/frp/blob/frp-demonstration-with-cloudflare/demonstrated_images/Untitled%20(2).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
![Untitled](https://github.com/REZ-OAN/frp/blob/frp-demonstration-with-cloudflare/demonstrated_images/Untitled%20(3).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
```
![Untitled](https://github.com/REZ-OAN/frp/blob/frp-demonstration-with-cloudflare/demonstrated_images/Untitled%20(4).png)
In this directory you will see like this
![Untitled](https://github.com/REZ-OAN/frp/blob/frp-demonstration-with-cloudflare/demonstrated_images/Untitled%20(5).png)
Now extract the `.tar.gz` file
![Untitled](https://github.com/REZ-OAN/frp/blob/frp-demonstration-with-cloudflare/demonstrated_images/Untitled%20(6).png)
Now `goto` `frp_0.57.0_linux_amd64/` this folder
This files will be there
![Untitled](https://github.com/REZ-OAN/frp/blob/frp-demonstration-with-cloudflare/demonstrated_images/Untitled%20(7).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
![Untitled](https://github.com/REZ-OAN/frp/blob/frp-demonstration-with-cloudflare/demonstrated_images/Untitled%20(8).png)
Using `nano` edit the `bindPort` if you want to
![Untitled](https://github.com/REZ-OAN/frp/blob/frp-demonstration-with-cloudflare/demonstrated_images/Untitled%20(9).png)
I have edited the port number
![Untitled](https://github.com/REZ-OAN/frp/blob/frp-demonstration-with-cloudflare/demonstrated_images/Untitled%20(10).png)
Now run the server
```bash
./frps -c ./frps.toml
```
![Untitled](https://github.com/REZ-OAN/frp/blob/frp-demonstration-with-cloudflare/demonstrated_images/Untitled%20(11).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
![Untitled](https://github.com/REZ-OAN/frp/blob/frp-demonstration-with-cloudflare/demonstrated_images/Untitled%20(12).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`
![Untitled](https://github.com/REZ-OAN/frp/blob/frp-demonstration-with-cloudflare/demonstrated_images/Untitled%20(13).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`
![Untitled](https://github.com/REZ-OAN/frp/blob/frp-demonstration-with-cloudflare/demonstrated_images/Untitled%20(14).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`
![Untitled](https://github.com/REZ-OAN/frp/blob/frp-demonstration-with-cloudflare/demonstrated_images/Untitled%20(15).png)
Then open networks drop down and select the tunnels
![Untitled](https://github.com/REZ-OAN/frp/blob/frp-demonstration-with-cloudflare/demonstrated_images/Untitled%20(16).png)
Now click on `create tunnel`
![Untitled](https://github.com/REZ-OAN/frp/blob/frp-demonstration-with-cloudflare/demonstrated_images/Untitled%20(17).png)
Select the recommended connector
![Untitled](https://github.com/REZ-OAN/frp/blob/frp-demonstration-with-cloudflare/demonstrated_images/Untitled%20(18).png)
Then click on `next` and then give a name i choose `test-frp`
Now choose connector environment , i have chosen `docker`
![Untitled](https://github.com/REZ-OAN/frp/blob/frp-demonstration-with-cloudflare/demonstrated_images/Untitled%20(19).png)
Now copy the connector `command` and run it on `detach` mode on your `server` ( in our case 103.174.50.21)
![Untitled](https://github.com/REZ-OAN/frp/blob/frp-demonstration-with-cloudflare/demonstrated_images/Untitled%20(20).png)
Now select the domain and subdomain , and the url server `ip_address:remotePort`
![Untitled](https://github.com/REZ-OAN/frp/blob/frp-demonstration-with-cloudflare/demonstrated_images/Untitled%20(21).png)
Now hit the URL `test-frp.poridhi.io/?folder=/app/` will see
![Untitled](https://github.com/REZ-OAN/frp/blob/frp-demonstration-with-cloudflare/demonstrated_images/Untitled%20(22).png)

View File

@ -345,35 +345,19 @@ func copySection(source, target *ini.Section) {
}
// GetDefaultClientConf returns a client configuration with default values.
// Note: Some default values here will be set to empty and will be converted to them
// new configuration through the 'Complete' function to set them as the default
// values of the new configuration.
func GetDefaultClientConf() ClientCommonConf {
return ClientCommonConf{
ClientConfig: legacyauth.GetDefaultClientConf(),
ServerAddr: "0.0.0.0",
ServerPort: 7000,
NatHoleSTUNServer: "stun.easyvoip.com:3478",
DialServerTimeout: 10,
DialServerKeepAlive: 7200,
HTTPProxy: os.Getenv("http_proxy"),
LogFile: "console",
LogWay: "console",
LogLevel: "info",
LogMaxDays: 3,
AdminAddr: "127.0.0.1",
PoolCount: 1,
TCPMux: true,
TCPMuxKeepaliveInterval: 60,
LoginFailExit: true,
Start: make([]string, 0),
Protocol: "tcp",
QUICKeepalivePeriod: 10,
QUICMaxIdleTimeout: 30,
QUICMaxIncomingStreams: 100000,
Start: make([]string, 0),
TLSEnable: true,
DisableCustomTLSFirstByte: true,
HeartbeatInterval: 30,
HeartbeatTimeout: 90,
Metas: make(map[string]string),
UDPPacketSize: 1500,
IncludeConfigFiles: make([]string, 0),
}
}

View File

@ -200,34 +200,20 @@ type ServerCommonConf struct {
NatHoleAnalysisDataReserveHours int64 `ini:"nat_hole_analysis_data_reserve_hours" json:"nat_hole_analysis_data_reserve_hours"`
}
// GetDefaultServerConf returns a server configuration with reasonable
// defaults.
// GetDefaultServerConf returns a server configuration with reasonable defaults.
// Note: Some default values here will be set to empty and will be converted to them
// new configuration through the 'Complete' function to set them as the default
// values of the new configuration.
func GetDefaultServerConf() ServerCommonConf {
return ServerCommonConf{
ServerConfig: legacyauth.GetDefaultServerConf(),
BindAddr: "0.0.0.0",
BindPort: 7000,
QUICKeepalivePeriod: 10,
QUICMaxIdleTimeout: 30,
QUICMaxIncomingStreams: 100000,
VhostHTTPTimeout: 60,
DashboardAddr: "0.0.0.0",
LogFile: "console",
LogWay: "console",
LogLevel: "info",
LogMaxDays: 3,
DetailedErrorsToClient: true,
TCPMux: true,
TCPMuxKeepaliveInterval: 60,
TCPKeepAlive: 7200,
AllowPorts: make(map[int]struct{}),
MaxPoolCount: 5,
MaxPortsPerClient: 0,
HeartbeatTimeout: 90,
UserConnTimeout: 10,
HTTPPlugins: make(map[string]HTTPPluginOptions),
UDPPacketSize: 1500,
NatHoleAnalysisDataReserveHours: 7 * 24,
ServerConfig: legacyauth.GetDefaultServerConf(),
DashboardAddr: "0.0.0.0",
LogFile: "console",
LogWay: "console",
DetailedErrorsToClient: true,
TCPMux: true,
AllowPorts: make(map[int]struct{}),
HTTPPlugins: make(map[string]HTTPPluginOptions),
}
}