Skip to content

ericwang2006/docker_frp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

What is frp?

frp is a fast reverse proxy that allows you to expose a local server located behind a NAT or firewall to the Internet. It currently supports TCP and UDP, as well as HTTP and HTTPS protocols, enabling requests to be forwarded to internal services via domain name.

frp also offers a P2P connect mode.

Source Code

Dockerfile

Reference

We provide free FRP servers

Please refer to the latest server information for details:https://frp.104300.xyz

Usage

Client(frpc)

Create a new configuration file named frpc.ini. Please note that the INI file format is considered outdated; the official recommendation is to use the TOML format for configuration files. Additionally, future versions may no longer support the INI format.

Below is an example TOML file. The configuration file's name is specified by the environment variable FRPC_CONFIG. If the value for FRPC_CONFIG is not specified, it defaults to frpc.ini.

$ mkdir -p /etc/frpc
$ cat > /etc/frpc/frpc.toml <<EOF
serverAddr = "127.0.0.1"
serverPort = 7000

[[proxies]]
name = "test-tcp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000
EOF

Start a container

$ docker pull ericwang2006/frpc

$ docker run -d --name frp-client \
--network host \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/frpc:/conf \
-e FRPC_CONFIG=frpc.toml \
--restart=always \
ericwang2006/frpc

docker-compose

version: '2'

services:     
  frp-client:
    image: ericwang2006/frpc
    container_name: frp-client
    restart: always
    network_mode: "host"
    volumes:
      - /etc/localtime:/etc/localtime:ro        
      - /etc/frpc:/conf
    environment:
      - FRPC_CONFIG=frpc.toml

Server(frps)

Create a new configuration file named frps.ini. Please note that the INI file format is considered outdated; the official recommendation is to use the TOML format for configuration files. Additionally, future versions may no longer support the INI format.

Here's an example TOML file where the configuration file name is determined by the environment variable FRPS_CONFIG. If FRPS_CONFIG is not specified, it defaults to frps.ini.

$ mkdir -p /etc/frps
$ cat > /etc/frps/frps.toml <<EOF
bindAddr = "0.0.0.0"
bindPort = 7000
kcpBindPort = 7000

vhostHTTPPort = 80
vhostHTTPSPort = 443

webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "password"

auth.method = "token"
auth.token = "token"

transport.maxPoolCount = 5

allowPorts = [
  { start = 10001, end = 50000 }
]
EOF

Start a container

$ docker pull ericwang2006/frps

$ docker run -d --name frp-server \
--network host \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/frps:/conf \
-e FRPS_CONFIG=frps.toml \
--restart=always \
ericwang2006/frps

docker-compose

version: '2'

services:     
  frp-server:
    image: ericwang2006/frps
    container_name: frp-server
    restart: always
    network_mode: "host"
    volumes:
      - /etc/localtime:/etc/localtime:ro        
      - /etc/frps:/conf
    environment:
      - FRPS_CONFIG=frps.toml

Warning: The port number must be same as configuration and opened in firewall.

For more examples, please refer to the official documentation

About

Dockerfile for fatedier/frp

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published