frp内网穿透简单搭建教程
创始人
2025-06-20
0

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
serverAfter=network.target
syslog.targetWants=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

说明文件确实不存在,可能原因:

  1. 文件未正确上传到该路径

  2. 文件名拼写错误(注意大小写和特殊符号)

  3. 文件被误删除

  • 检查是否有类似文件名:

    • 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

    文章转自https://blog.csdn.net/aakk007/article/details/147692482,自己参考用


    【版权声明】
    本站部分内容来源于互联网,本站不拥有所有权,不承担相关法律责任。如果发现本站有侵权的内容,欢迎发送邮件至masing@13sy.com 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

    相关内容

    热门资讯

    SIOCADDRT: Netw... SIOCADDRT: Network is unreachable SIOCADDRT: 网络不可达...
    centos7下创建新用户和组 linux下添加,删除,修改,查看用户和用户组 1 .增加一个test组 groupadd test...
    linux通过sed 修改文件... 13sy.txt里面内容如下 A; B; C; write by luohao199621; 1.要...
    关于cannot remove... 关于cannot remove directory: Directory not empty的解决办...
    mount: unknown ... mount: unknown filesystem type LVM2_member解决方案 系统启...
    OpenMediaVault安... OpenMediaVault 是一个基于Debian的专用 Linux 发行版,用于构建网络连接存储...
    centos7 双网卡双网关的... 最近公司需要在一台服务器上同时使用内网和外网,并且都需要跨网段访问,因此需要双网关,但是一台机子上只...
    ethtool 命令详解 1 概述 ethtool 是用于查询及设置网卡参数的命令。 2 命令详解 2.1 命令格式 (1) ...
    CentOS7单网卡设置双IP... linux系统CentOS7单网卡设置双IP的方法,centos7.5、7.6、7.7设置双IP教程...
    Linux进程状态D,S,Z的... Linux进程状态top,ps中看到进程状态D,S,Z的含义 在top和ps命令中有一列显示进程状态...