| 2025-08-3
frp是一款开源的内网穿透工具,能助力我们突破网络限制,实现外网对内网服务的访问。搭建 frp 内网穿透服务器过程并不复杂,只要遵循正确步骤,无论是开发者用于调试,还是个人实现远程访问内网资源,都能轻松达成。接下来,就为大家详细介绍搭建流程。
1、拥有公网 IP 的服务器:这是搭建 frp 内网穿透服务器的基石,作为内网与公网通信的关键桥梁,承担着数据转发的重任。可选择如阿里云、腾讯云、华为云等云厂商提供的轻量级云服务器,当然,若自身有条件获取独立公网 IP 的物理服务器,也同样适用。
2、下载 frp 软件:前往 frp 官方 GitHub 仓库(https://github.com/fatedier/frp),依据服务器的系统类型(如 Linux、Windows 等)以及架构(如 amd64、arm64 等)下载对应的版本。frp 的版本持续更新,建议下载最新稳定版,以获取更优性能与功能支持。
1、上传与解压:将下载好的 frp 服务端软件,借助如 scp、ftp 等工具上传至具有公网 IP 的服务器。假设上传至服务器的/usr/local/目录,解压命令如下(以 Linux 系统为例,且假设下载的压缩包为frp_0.xx.x_linux_amd64.tar.gz):
cd /usr/local/
tar -zxvf frp_0.xx.x_linux_amd64.tar.gz
解压后,会生成一个包含frps(服务端可执行文件)、frps.ini(服务端配置文件)等的目录。
2、编辑配置文件:进入解压后的目录,编辑frps.ini文件,常见配置项解读如下:
(1)bind_port:这是服务端监听的端口,用于客户端连接,可根据实际需求更改,比如设置为7000。此端口需确保未被服务器上其他程序占用,否则 frp 服务将无法正常启动。
(2)token:设置用于验证客户端连接的令牌,如token = your_token,强烈建议设置复杂且安全的 token,以防止未经授权的客户端接入,提升系统安全性。
(3)dashboard_port:若希望通过管理面板监控 frp 服务状态,可设置此端口,如dashboard_port = 7500。通过该端口,可访问如http://你的公网IP:7500的管理页面(需确保公网 IP 正确且端口开放)。
(4)vhost_http_port与vhost_https_port:当需要通过公网 IP 访问内网的 HTTP 或 HTTPS 服务时,可配置这两个端口,如vhost_http_port = 8080、vhost_https_port = 8443。
(5)log_file:指定日志文件路径,方便排查问题,如log_file = /var/log/frps.log,记录 frp 服务运行过程中的各类信息。
3、启动服务:在 Linux 系统下,可使用以下命令启动 frp 服务:
nohup./frps -c./frps.ini &
nohup命令用于让程序在后台持续运行,即便关闭当前终端会话也不受影响;&符号表示将该进程放入后台执行。若启动过程中遇到权限问题,提示permission denied,可通过chmod +x frps命令赋予frps文件执行权限。
1、下载与解压:在需要进行内网穿透的设备(即客户端)上,同样从 frp 官方 GitHub 仓库下载对应版本并解压。例如,若客户端是一台 Linux 系统的电脑,可使用如下命令下载和解压(假设版本为frp_0.xx.x_linux_amd64.tar.gz):
wget https://github.com/fatedier/frp/releases/download/v0.xx.x/frp_0.xx.x_linux_amd64.tar.gz
tar -zxvf frp_0.xx.x_linux_amd64.tar.gz
2、编辑配置文件:进入解压后的客户端目录,编辑frpc.ini文件。假设要将本地的 SSH 服务通过 frp 进行内网穿透,配置示例如下:
[common]
server_addr = 你的公网服务器IP
server_port = 7000
token = your_token
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
(1) server_addr:填写 frp 服务端所在的公网服务器 IP 地址。
(2) server_port:对应服务端配置的bind_port端口,这里为7000。
(3) token:必须与服务端设置的token一致,用于身份验证。
(4) type:指定服务类型,SSH 服务通常使用tcp协议。
(5) local_ip与local_port:分别是本地需要穿透服务的 IP 地址(一般本地服务为127.0.0.1)和端口(SSH 默认端口为22)。
(6) remote_port:设置在公网访问时使用的端口,如6000。需注意,该端口在服务端所在网络环境中应未被占用且已开放。
3、启动客户端程序:在 Linux 系统下,执行以下命令启动 frp 客户端:
nohup./frpc -c./frpc.ini &
若启动失败,可能是网络连接问题、端口被占用或配置错误等原因。可通过查看客户端日志文件(若在frpc.ini中配置了log_file,可查看对应文件)排查问题。
完成上述配置后,便可通过公网服务器的 IP 和在客户端配置的remote_port来访问内网的服务。例如,要远程连接内网的 SSH 服务,可在远程设备上使用命令ssh -p 6000 user@你的公网服务器IP,其中user是内网 SSH 服务的用户名。若一切正常,即可顺利连接到内网的 SSH 服务。
在搭建过程中,还需留意防火墙设置。无论是服务端还是客户端,都要确保相应端口在防火墙中已开放。例如,在 Linux 系统中使用firewall-cmd命令开放端口:
开放7000端口(假设服务端bind_port为7000)
firewall-cmd --zone=public --add-port=7000/tcp --permanent
firewall-cmd --reload
此外,若使用云服务器,还需在云平台的安全组规则中添加对应的端口放行规则,以保障数据能够正常传输。
通过以上步骤,我们就能成功搭建 frp 内网穿透服务器,实现外网对内网服务的便捷访问,满足多样化的网络应用需求,如远程办公、开发调试等场景。在实际应用中,可根据具体需求进一步优化 frp 的配置,挖掘更多高级功能,提升网络使用体验。
1、什么是 NAT 穿透:NAT 穿透即网络地址转换穿透,旨在让特定源 IP 和源端口号数据包,绕过 NAT 设备限制,正确抵达内网主机。家庭或企业网络常借助 NAT 技术共享公网 IP,这导致内网设备外网访问受限,NAT 穿透可解决此问题,frp 就是实现 NAT 穿透的工具之一。
2、frp 支持哪些协议转发:frp 支持 TCP、UDP、HTTP、HTTPS 等多种协议转发。TCP 适用于大多数常见服务,如 SSH、RDP;UDP 常用于视频流、游戏等对实时性要求高的场景;HTTP 和 HTTPS 则针对 Web 服务。配置 frp 时,依据内网服务类型,在客户端配置文件中准确设置type参数即可。
3、如何保障 frp 内网穿透安全:可从多方面入手,如设置复杂token并定期更换;开启 SSL/TLS 加密,利用 Let's Encrypt 获取免费证书加密传输数据;限制客户端连接 IP 范围,在服务端配置文件中通过allow_ips参数设置;及时更新 frp 版本,修复潜在安全漏洞,降低被攻击风险。