frp内网穿透详解

概述

  1. frp可以通过有公网IP的的服务器将内网的主机暴露给互联网,从而实现通过外网能直接访问到内网主机。
  2. frp有服务端和客户端,服务端需要2装在有公网ip的服务器上,客户端装在内网主机上。

下载安装frp

frp服务端和客户端是同样的安装包,只是应用的配置文件不一样

官网下载:https://gofrp.org/zh-cn/release/

下载对应版本之后上传到服务端服务器和客户端服务器即可

安装包获取:通过网盘分享的文件:frp_0.64.0_linux_amd64.tar.gz
链接: https://pan.baidu.com/s/15iPA1Vs1HvaqRM_g3fxOLw?pwd=f3wj 提取码: f3wj
--来自百度网盘超级会员v4的分享

搭建服务端

tar -xf frp_0.64.0_linux_amd64.tar.gz -C /usr/local/
mv /usr/local/frp_0.64.0_linux_amd64 /usr/local/frp_0.64
cd /usr/local/frp_0.64
cat frps.toml
[common]
# 绑定地址,这里设置为0.0.0.0表示监听所有可用的网络接口。
bind_addr = 0.0.0.0     
# frps服务监听的端口,默认为7000。
bind_port = 7000        
# HTTP虚拟主机监听端口,用于HTTP转发,这里设置为8080。
vhost_http_port = 8080   
# HTTPS虚拟主机监听端口,用于HTTPS转发,这里设置为8443。
vhost_https_port = 8443   
# Web管理面板的端口,这里设置为7001。
dashboard_port = 7001     
# Web管理面板的用户名,这里设置为zqf
dashboard_user = zqf      
# Web管理面板的密码,这里设置为1qaz!QAZ
dashboard_pwd = 1qaz!QAZ   
# 日志文件的位置,这里设置为./frps-devops.log。
log_file = ./frps-devops.log
# 日志级别,这里设置为info,表示记录信息级别的日志。   
log_level = info          
# 日志文件最大保留天数,这里设置为3天。 
log_max_days = 3          
# 特权认证令牌,用于客户端连接时的认证,这里设置为1qaz!QAZ
privilege_token = 1qaz!QAZ    
# 允许特权访问的端口范围
privilege_allow_ports = 80,90-3000,3001,3003,4000-50000    
# 最大连接池数量,这里设置为100。 
max_pool_count = 100     
# 认证超时时间(秒),这里设置为900秒。
authentication_timeout = 900   

配置systemd启动

cat  /usr/lib/systemd/system/frps.service
[Unit]
Description=fraps service
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.toml

[Install]
WantedBy=multi-user.target


systemctl daemon-reload
systemctl enable  frps.service
systemctl start frps.service

客户端配置

安装和服务端安装一样,参考上面的内容即可。

cat /usr/local/frp_0.64/frpc.toml
[common]
# 指定frp服务端的IP地址(一定要是公网)
server_addr = 8.159.128.153
# 指定frp服务器监听的端口
server port= 7000
# 指定客户端认证的令牌
auth token = zqf

[local_ssh]
# 指定代理类型
type = tcp
# 指定本地服务的IP地址
local_ip = 127.0.0.1
# 指定本地服务监听的端口
local_port= 22
# 指定在frp服务器上公开的端口,外部可以通过此端口访问客户端的22端口
remote_port = 12222

[web]
type = http
local_ip = 127.0.0.1
local_port = 80
custom_domains = zqf.stack.cn
# 启动客户端之后,可以配置一个nginx代理到frp监听http的端口(这里是8080),server_name为zqf.stack.cn,zqf.stacn.cn的解析为nginx的公网地址即可访问

配置systemd启动:

cat /usr/lib/systemd/system/frpc.service
[Unit]
Description=frpc service
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
ExecStart=/usr/local/frp_0.64/frpc -c /usr/local/frp_0.64/frpc.toml

[Install]
WantedBy=multi-user.target


systemctl daemon-reload
systemctl enable frpc.service
systemctl start  frpc.service
systemctl status  frpc.service

配置完成,之后测试即可。

posted @ 2025-08-12 17:23  阿峰博客站  阅读(67)  评论(0)    收藏  举报