frp
is a high-performance reverse proxy application that focuses on intranet penetration. It supports multiple protocols, including TCP, UDP, HTTP, HTTPS, etc., and has P2P communication capabilities. With frp
, you can securely and conveniently expose intranet services to the public network and relay them through nodes with public IP addresses.
Self-built frps
intranet penetration service, based on ubuntu22.04
, record the deployment process.
Download#
Frp github precompiled release address: Releases
Download the appropriate version based on the server system and CPU architecture
wget https://github.com/fatedier/frp/releases/download/v0.54.0/frp_0.54.0_linux_amd64.tar.gz
Optional, use Jelly Proxy Download
wget https://get.66a.vip/https://github.com/fatedier/frp/releases/download/v0.54.0/frp_0.54.0_linux_amd64.tar.gz
Installation#
1. Unzip#
tar -zvxf frp_0.54.0_linux_amd64.tar.gz
2. Copy the executable file to /usr/bin/
#
sudo cp frp_0.54.0_linux_amd64/frps /usr/bin/
3. Configure frps
#
sudo mkdir -p /etc/frp
Create the /etc/frp/frps.toml
file
sudo vim /etc/frp/frps.toml
Fill in the following content as needed
bindAddr = "0.0.0.0"
bindPort = 7000 # Bind port
kcpBindPort = 7001 # KCP bind port, optional configuration according to usage requirements
quicBindPort = 7002 # QUIC bind port, optional configuration according to usage requirements
vhostHTTPPort = 8080 # Virtual HTTP port, optional configuration according to usage requirements
vhostHTTPSPort = 8443 # Virtual HTTPS port, optional configuration according to usage requirements
# Allow the range of remote server ports that can be mapped by the penetration service
allowPorts = [ { start = 50000, end = 60000 } ]
auth.method = "token"
auth.token = "xxx" # Custom authorization token, the client needs to provide the correct token to penetrate
webServer.addr = "0.0.0.0"
webServer.port = 7500
# Dashboard username and password, optional, default is empty
webServer.user = "xxx" # Modify this item
webServer.password = "xxx" # Modify this item
4. Add to systemd
service#
Create the frps.service
file
sudo vim /lib/systemd/system/frps.service
Fill in the following reference content according to the actual situation
[Unit]
# Service name, can be customized
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
Restart=on-failure
RestartSec=5s
# Command to start frps, modify it to the installation path of your frps
ExecStart = /usr/bin/frps -c /etc/frp/frps.toml
[Install]
WantedBy = multi-user.target
Update the systemd
service list
sudo systemctl daemon-reload
Start the frps
service
sudo systemctl start frps
Configure automatic startup
sudo systemctl enable frps
Check the running status of frps
sudo systemctl status frps
At this point, the deployment of the frps
server is complete.