Code Monkey home page Code Monkey logo

docker_frp's Introduction

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_frp's People

Contributors

ericwang2006 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.