frp教程

frp是什么?

frp 是内网穿透的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务暴露到公网。

安装目录/root/frp

server配置

vim /root/frp/frps.ini

[common]
bind_port = 19000
# 端口白名单
allow_ports = 19001-19999
# 认证
authentication_method = token
token = XXXXXXXXXXXXXXXXXX
log_file = /var/log/frp/frps.log
log_max_days = 30

开机自启
vim /etc/systemd/system/frps.service

[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /root/frp/frps -c /root/frp/frps.ini

[Install]
WantedBy = multi-user.target
systemctl status frps
start 
restart
stop 
enable 

client配置

vim /root/frp/frpc.ini

[common]
server_addr = 公网id或你的域名
server_port = 19000

# 认证
authentication_method = token
token = XXXXXXXXXXXXXXXXXX
log_file = /var/log/frp/frpc.log
log_max_days = 30

includes = /root/frp/servers/*.ini

servers目录下配置,可配置多个

[name_xxx_01]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 19001

开机自启
vim /etc/systemd/system/frpc.service

[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /root/frp/frpc -c /root/frp/frpc.ini
# 开机启动失败60s后重试
Restart = on-failure
RestartSec = 60

[Install]
WantedBy = multi-user.target
systemctl status frpc
start 
restart
stop 
enable 

手动配置(通过shell)

如果机器没有systemd时, 可使用手动配置

#!/bin/sh
  
function check(){
    count=`ps -ef |grep $1 |grep -v "grep" |wc -l`
    time=$(date "+%Y-%m-%d %H:%M:%S")
    echo $time
    echo $count
    if [ 0 == $count ];then
        /root/frp/frpc -c /root/frp/frpc.ini &
    fi
}

check frpc
crontab -e
01 01 * * * /root/start.sh >> /var/log/frpc.log

参考:
官方文档
github