在 CentOS 7.9 服务器上搭建 frp 进行内网穿透核心思路是利用有公网 IP 的服务器作为服务端frps无公网 IP 的内网服务器作为客户端frpc两者配合实现外网访问内网服务。以下是基于传统.ini配置文件的详细步骤这也是目前最通用和稳定的方式。第一步准备工作在开始之前请确认以下事项两台 CentOS 7.9 服务器一台拥有公网 IP作为服务端另一台位于内网作为客户端。开放防火墙端口在服务端的防火墙和安全组如果用的是云服务器中需要开放7000服务端与客户端通信端口、7500可选Web 管理面板端口以及你想对外暴露的任何服务端口如示例中的6000。以firewalld为例在服务端执行sudofirewall-cmd--zonepublic --add-port7000/tcp--permanentsudofirewall-cmd--zonepublic --add-port7500/tcp--permanentsudofirewall-cmd--reload第二步服务端搭建frps操作位置拥有公网 IP 的服务器。下载和解压 frp访问 frp GitHub Releases 页面找到最新版本注意教程以 v0.49.0 为例请根据系统架构选择linux_amd64。cd/rootwgethttps://github.com/fatedier/frp/releases/download/v0.49.0/frp_0.49.0_linux_amd64.tar.gztar-zxvffrp_0.49.0_linux_amd64.tar.gzcdfrp_0.49.0_linux_amd64配置服务端 (frps.ini)vifrps.ini将内容修改如下[common] # frp 服务端监听的端口用于和客户端通信 bind_port 7000 # 设置一个 token 用于客户端身份验证请务必修改 token 你的强密码 # Web 管理面板端口可以通过浏览器访问 http://你的公网IP:7500 查看状态 dashboard_port 7500 # 管理面板用户名和密码请修改 dashboard_user admin dashboard_pwd 你的面板密码 # 如果需要代理 HTTP 服务可以设置一个统一的 HTTP 端口 vhost_http_port 8080启动服务端# 前台运行用于测试./frps-cfrps.ini如果看到start frps success字样说明配置正确。按Ctrl C停止然后配置后台运行。配置 Systemd 后台运行并开机自启创建服务文件vi/etc/systemd/system/frps.service写入以下内容请将ExecStart中的路径修改为你的实际路径[Unit] Descriptionfrps service Afternetwork.target [Service] Typesimple ExecStart/root/frp_0.49.0_linux_amd64/frps -c /root/frp_0.49.0_linux_amd64/frps.ini [Install] WantedBymulti-user.target启动并设置为开机自启systemctl daemon-reload systemctl start frps systemctlenablefrps systemctl status frps# 查看运行状态第三步客户端搭建frpc操作位置你需要被穿透的内网服务器。下载和解压 frp与服务端操作类似下载并解压到内网服务器。cd/rootwgethttps://github.com/fatedier/frp/releases/download/v0.49.0/frp_0.49.0_linux_amd64.tar.gztar-zxvffrp_0.49.0_linux_amd64.tar.gzcdfrp_0.49.0_linux_amd64配置客户端 (frpc.ini)vifrpc.ini写入以下内容关键信息需与服务端对应[common] # 服务端的公网 IP 地址 server_addr 你的公网服务器IP # 服务端设置的 bind_port server_port 7000 # 服务端设置的 token token 你的强密码 # 定义一个代理例如穿透内网的 SSH 服务 [ssh] type tcp local_ip 127.0.0.1 local_port 22 remote_port 6000 # 如果你需要穿透内网的 Web 服务可以这样配置可选 [web] type http local_port 80 # 注意访问时使用 服务端IP:8080如果配置了域名则使用域名 custom_domains www.yourdomain.com配置说明此配置将内网服务器的 SSH 服务22端口映射到服务端的 6000 端口。之后你在外网执行ssh -p 6000 用户名服务端IP即可登录内网服务器。启动客户端同样使用systemd管理确保稳定运行。创建服务文件vi/etc/systemd/system/frpc.service写入以下内容请将ExecStart中的路径修改为你的实际路径[Unit] Descriptionfrpc service Afternetwork.target [Service] Typesimple ExecStart/root/frp_0.49.0_linux_amd64/frpc -c /root/frp_0.49.0_linux_amd64/frpc.ini [Install] WantedBymulti-user.target启动并设置开机自启systemctl daemon-reload systemctl start frpc systemctlenablefrpc systemctl status frpc# 查看运行状态第四步验证和测试检查服务端日志在服务端执行journalctl -u frps -f查看实时日志确认是否有客户端连接成功的记录。检查客户端日志在客户端执行journalctl -u frpc -f确认是否报错。访问 Web 管理面板打开浏览器访问http://你的公网IP:7500输入你在frps.ini中设置的用户名和密码可以看到当前连接状态和代理统计。功能测试SSH 测试在任意能上网的电脑上执行ssh -p 6000 内网服务器用户名公网服务器IP。如果能登录说明搭建成功。Web 测试如果配置了 HTTP 代理访问http://公网IP:8080即可看到内网 Web 服务。注意事项端口冲突确保服务端的7000、7500、6000等端口没有被其他程序占用且云服务器安全组已放行。版本选择frp 更新较快新版本如 v0.52.0 以上开始推荐使用toml格式配置文件。如果你的版本较新请参考官方文档调整配置格式。本文提供的.ini格式适用于大多数 v0.52.0 以下版本。