1.搭建环境
服务器:服务器配置没有要求,最低配即可。
系统:Linux、Ubuntu
2. frp官网了解更多
https://gofrp.org
3.服务端(含有公网IP服务器)
3.1本地下载
下载地址:https://github.com/fatedier/frp/releases
根据你环境下载,这边使用的是Linux系统,截止发文最新的为frp_0.62.1_linux_amd64的版本。
3.2上传服务器并解压,可用finalshell,或者宝塔面板等工具自行选择
#打开/usr/local路径文件夹 cd /usr/local
#创建frp文件夹,并且进入
mkdir frp && cd frp
#解压frp_0.62.1_linux_amd64.tar.gz文件,并打开frp_0.62.1_linux_amd64
tar -zxvf 'frp_0.62.1_linux_amd64.tar.gz' && cd 'frp_0.62.1_linux_amd64'
3.3配置
#编辑frps配置文件
vi frps.toml
进入frps.toml之后按i进入编辑模式,粘贴以下内容
# 客户端与服务连接端口 bindPort = 7000 # 客户端连接服务端时认证的密码 auth.token = "abcjc" #自行修改为自己的token # http协议监听端口 vhostHTTPPort = 28080 # web界面配置 webServer.addr = "0.0.0.0" webServer.port = 7500 webServer.user = "admin" webServer.password = "admin" #自行修改为自己的密码
粘贴完之后保存编辑文件,按Ese键后按shift + :之后 输入wq(强制保存退出)
3.4运行frps服务
创建 frps.service 文件
使用文本编辑器 (如 vi) 在 /etc/systemd/system 目录下创建一个 frps.service 文件,用于配置 frps 服务。
为什么?是为了用户自定义和修改服务提供的专用目录。你可以在这里添加或修改服务,而不影响系统自带的服务。
#编辑/etc/systemd/system/frps.service文件
sudo vi /etc/systemd/system/frps.service
进入frps.service之后按i进入编辑模式,粘贴以下内容
[Unit] Description=frp server After=network.target syslog.target Wants=network.target [Service] Type=simple ExecStart=/usr/local/frp/frp_0.62.1_linux_amd64/frps -c /usr/local/frp/frp_0.62.1_linux_amd64/frps.toml [Install] WantedBy=multi-user.target
粘贴完之后保存编辑文件,按Esc后按shift + :之后 输入wq(强制保存退出)
#检查frp配置文件是否正确
sudo systemctl status frps.service
3.5 systemd 命令管理 frps 服务
# 启动frp
sudo systemctl start frps
# 停止frp
sudo systemctl stop frps
# 重启frp
sudo systemctl restart frps
#设置开机自启
sudo systemctl enable frps
一件安装脚本frp服务端脚本
#!/bin/bash # 一键安装FRP服务端脚本 # 适用于CentOS Stream9系统 # 版本:v0.62.1 # 检查root权限 if [ "$(id -u)" != "0" ]; then echo -e "\033[31m错误:该脚本必须以root用户身份运行\033[0m" exit 1 fi # 配置参数 FRP_VERSION="0.62.1" INSTALL_DIR="/usr/local/frp" DOWNLOAD_URL="https://github.com/fatedier/frp/releases/download/v${FRP_VERSION}/frp_${FRP_VERSION}_linux_amd64.tar.gz" # 交互式配置 echo "--------------------------------------------------" echo "请输入以下配置信息(可直接回车使用默认值)" read -p "设置认证token (默认: abc123): " TOKEN read -p "设置Web管理密码 (默认: admin): " PASSWORD read -p "设置服务端口 (默认: 7000): " BIND_PORT read -p "设置HTTP代理端口 (默认: 28080): " HTTP_PORT read -p "设置Web管理端口 (默认: 7500): " WEB_PORT # 设置默认值 TOKEN=${TOKEN:-"abc123"} PASSWORD=${PASSWORD:-"admin"} BIND_PORT=${BIND_PORT:-7000} HTTP_PORT=${HTTP_PORT:-28080} WEB_PORT=${WEB_PORT:-7500} # 安装依赖 echo -e "\n\033[34m正在安装依赖...\033[0m" dnf install -y wget tar firewalld > /dev/null 2>&1 systemctl enable --now firewalld > /dev/null 2>&1 # 创建安装目录 echo -e "\033[34m正在创建安装目录...\033[0m" mkdir -p ${INSTALL_DIR} && cd ${INSTALL_DIR} # 下载和解压 echo -e "\033[34m正在下载FRP v${FRP_VERSION}...\033[0m" if ! wget -q ${DOWNLOAD_URL}; then echo -e "\033[31m错误:文件下载失败,请检查网络连接\033[0m" exit 1 fi tar -zxvf frp_${FRP_VERSION}_linux_amd64.tar.gz > /dev/null 2>&1 cd frp_${FRP_VERSION}_linux_amd64 # 生成配置文件 echo -e "\033[34m正在生成配置文件...\033[0m" cat > frps.toml << EOF bindPort = ${BIND_PORT} auth.token = "${TOKEN}" vhostHTTPPort = ${HTTP_PORT} webServer.addr = "0.0.0.0" webServer.port = ${WEB_PORT} webServer.user = "admin" webServer.password = "${PASSWORD}" EOF # 配置防火墙 echo -e "\033[34m正在配置防火墙...\033[0m" firewall-cmd --permanent --add-port=${BIND_PORT}/tcp > /dev/null 2>&1 firewall-cmd --permanent --add-port=${HTTP_PORT}/tcp > /dev/null 2>&1 firewall-cmd --permanent --add-port=${WEB_PORT}/tcp > /dev/null 2>&1 firewall-cmd --reload > /dev/null 2>&1 # 创建系统服务 echo -e "\033[34m正在创建系统服务...\033[0m" cat > /etc/systemd/system/frps.service << EOF [Unit] Description=FRP Server Service After=network.target [Service] Type=simple WorkingDirectory=${INSTALL_DIR}/frp_${FRP_VERSION}_linux_amd64 ExecStart=${INSTALL_DIR}/frp_${FRP_VERSION}_linux_amd64/frps -c ${INSTALL_DIR}/frp_${FRP_VERSION}_linux_amd64/frps.toml Restart=always [Install] WantedBy=multi-user.target EOF # 启动服务 systemctl daemon-reload systemctl enable --now frps > /dev/null 2>&1 # 验证安装 if systemctl is-active --quiet frps; then echo -e "\n\033[32m安装成功!\033[0m" echo -e "管理面板地址:\033[36mhttp://服务器IP:${WEB_PORT}\033[0m" echo -e "登录账号:admin" echo -e "登录密码:${PASSWORD}" echo -e "\n服务状态检查:\033[35msystemctl status frps\033[0m" else echo -e "\033[31m错误:服务启动失败,请手动检查配置\033[0m" exit 1 fi
使用说明:
将脚本保存为 install_frp.sh
将文件上传至 /usr/local/ 目录下
确认文件真实存在
ls -l /usr/local/install_frp.sh
✅ 正常情况应显示:
-rwxr-xr-x 1 root root 1234 May 20 10:00 /usr/local/install_frp.sh
❌ 如果显示以下内容:
ls: cannot access '/usr/local/install_frp.sh': No such file or directory
说明文件确实不存在,可能原因:
文件未正确上传到该路径
文件名拼写错误(注意大小写和特殊符号)
文件被误删除
检查是否有类似文件名:
Install_Frp.sh
install-frp.sh
install_frp.sh.txt(误加后缀)
验证文件完整性
如果文件存在但仍然报错,可能是文件损坏或格式问题:
# 安装文件格式转换工具
sudo dnf install dos2unix -y
# 转换文件格式(解决Windows/Linux换行符问题)
sudo dos2unix /usr/local/install_frp.sh
# 再次尝试执行
sudo /usr/local/install_frp.sh
赋予执行权限
sudo chmod +x /usr/local/install_frp.sh
执行安装脚本
sudo /usr/local/install_frp.sh
基本安装效果图:
4.客户端(没有公网IP的)
4.1 下载客户端,以下为下载地址,我下载的frp_0.62.1_linux_amd64.tar.gz
https://github.com/fatedier/frp/releases/download/v0.62.1/frp_0.62.1_linux_amd64.tar.gz
4.2上传服务器并解压,可用finalshell,或者宝塔面板等工具自行选择
#打开/usr/local路径文件夹
cd /usr/local
#创建frp文件夹,并且进入
mkdir frp && cd frp
#解压frp_0.62.1_linux_amd64.tar.gz文件,并打开frp_0.62.1_linux_amd64
tar -zxvf 'frp_0.62.1_linux_amd64.tar.gz' && cd 'frp_0.62.1_linux_amd64'
4.3配置frpc
#编辑frpc配置文件
vi frpc.toml
进入frpc.toml之后按I进入编辑模式,粘贴以下内容
serverAddr = "xxx.xxx.xxx.xxx" #你云服务器的IP ""不要去除 serverPort = 7000 auth.method = "token" auth.token = "你的 token" [[proxies]] name = "ssh" type = "tcp" localIP = "127.0.0.1" localPort = 22 remotePort = 6000
#ssh工具使用此端口访问
粘贴完之后保存编辑文件,按Ese键后按shift + :之后 输入wq(强制保存退出)
后续需要映射其他端口在后面增加就行,示例如下
[[proxies]] name = "Factorio" type = "udp" localIP = "127.0.0.1" localPort = 34197 remotePort = 34197 [[proxies]] name = "Minecraft" type = "tcp" localIP = "127.0.0.1" localPort = 25565 remotePort = 25565
4.4启动frpc
./frpc -c frpc.toml #启动frpc
4.5Web检查是否配置正确
浏览器地址栏输入你云服务器地址加7500,输入3.3里配置的账号密码
http://xxx.xxx.xxx.xxx:7500/
显示这样就代表成功
4.5设置开机启动
创建 Systemd 服务文件
sudo nano /etc/systemd/system/frpc.service
将以下内容粘贴到文件中(注意替换路径):
[Unit] Description=Frp Client Service After=network.target [Service] Type=simple User=nobody ExecStart=/usr/local/frp/frp_0.62.1_linux_amd64/frpc -c /usr/local/frp/frp_0.62.1_linux_amd64/frpc.toml Restart=on-failure RestartSec=5s [Install] WantedBy=multi-user.target
按 Ctrl+O 后 直接按回车 然后显示Yes/No时 按Y 保存,再按 Ctrl+X 退出编辑器。
4.5.1设置权限和配置文件验证
赋予 frpc 可执行权限:
sudo chmod +x /usr/local/frp/frp_0.62.1_linux_amd64/frpc
验证配置文件语法(确保 frpc.toml 正确):
/usr/local/frp/frp_0.62.1_linux_amd64/frpc verify -c /usr/local/frp/frp_0.62.1_linux_amd64/frpc.toml
4.5.2 启动服务并设置开机自启
# 重新加载 Systemd 配置
sudo systemctl daemon-reload
# 启用开机自启
sudo systemctl enable frpc
# 立即启动服务
sudo systemctl start frpc
4.5.3检查服务状态
# 查看运行状态
systemctl status frpc
# 查看实时日志
journalctl -u frpc -f
4.5.4其他操作命令
停止服务:
sudo systemctl stop frpc
重启服务:
sudo systemctl restart frpc
禁用开机自启:
sudo systemctl disable frpc
5. 最终验证
如果一切正常,重启系统检查服务是否自启:
sudo reboot
# 重启后检查状态
systemctl status frpc