ericwang2006/frpc

By ericwang2006

Updated 3 months ago

frpc Docker Image by ericwang

Image
Networking

759

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

Docker Pull Command

docker pull ericwang2006/frpc