frp 内网穿透

frp 在目前理解是一个提供端口转发的工具。不管是 windows 版本还是 linux 版本都同时提供了 frps 服务端与 frpc 客户端两个应用,分别对应 frps.toml 与 frpc.toml 两个配置文件。
下载地址

服务端

服务端需要有公网ip,接收请求转发到对应的客户端服务上。

启动 frps 后会在默认 7000 端口监听请求,当客户端启动 frpc 时会先连接服务端,连接成功后会注册端口 proxies 到服务端,可以在服务端的 dashboard 上查看(默认7500端口)。

这就是服务端的全部配置,具体的端口对应关系在客户端配置。

服务端配置 frps.toml

# 全部配置文档
# https://github.com/fatedier/frp/blob/dev/conf/frps_full_example.toml
[common]
# 监听端口
bind_port = 7000
# 面板端口
dashboard_port = 7500
# 登录面板的账号密码(修改成自己的)
dashboard_user = admin
dashboard_pwd = admin
# 与客户端认证的key,两端保持一致即可
token = 123456
# 允许客户端使用的端口,默认为全部放开
# allowPorts = [
#  { start = 2000, end = 3000 },
#  { single = 3001 },
#  { single = 3003 },
#  { start = 4000, end = 50000 }
# ]

启动命令

# 直接启动进行测试
./frps -c frps.toml
# 后台启动
./frps -c frps.toml > frps.log 2>&1 &

配置自启动

  1. 新建service文件
    vim /etc/systemd/system/frps.service

  2. 添加配置

[Unit]
#服务描述
Description=frpc service 
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
#日志
StandardOutput=file:/data/frp/frps.log
StandardError=file:/data/frp/frps.log
#执行命令 
ExecStart=/data/frp/frps -c /data/frp/frps.toml

[Install]
WantedBy=multi-user.target

  1. 重载服务
    systemctl daemon-reload

  2. 启动服务测试
    systemctl start frps

  3. 查看服务状态
    systemctl status frps

  4. 设置服务为自启动
    systemctl enable frps

客户端

客户端配置 frpc.toml

# 全部配置文档,支持配置心跳,加密压缩等,文档提供了多种协议的配置样例
# https://github.com/fatedier/frp/blob/dev/conf/frpc_full_example.toml
# 服务端地址
serverAddr = "127.0.0.1"
# 服务端端口
serverPort = 7000
# 与服务端认证的key,两端保持一致即可
auth.token = "123456"

# 代理配置
[[proxies]]
# 配置名称
name = "test-tcp"
# 类型
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000

如果使用云服务器作为服务端,记得放开云服务器 6000 端口安全策略。

启动客户端

打开 CMD 命令行,移动到文件路径,执行命令

frpc.exe -c frpc.toml

启动成功后,会看到日志

login to server success, get run id[xxxxxxx]
proxy added: [test-tcp]
start proxy success

配置客户端自启动

在 windows 平台,使用 nssm 工具进行服务注册,将 fprc.exe 注册成服务。工具下载地址

工具支持命令行的方式进行配置,也支持图形化的配置方式。

命令行方式

使用 CMD 命令行,执行以下命令,将文件目录替换为自己的目录。

nssm install frpc "D:\frp\frpc.exe" "-c D:\frp\frpc.toml"
nssm set frpc DisplayName "frp client"
nssm set frpc AppStdout "D:\frp\frpc.log"
nssm set frpc AppStderr "D:\frp\frpc.err.log"
nssm start frpc

图形化方式

图形化方式也很简单明了,选择应用,选择启动目录,添加配置,设置服务名称后 Install Service 即可。

查看效果

在任务管理器,服务一栏可以看到名称为 frpc 的服务。

### 使用FRP实现内网穿透配置教程 #### 准备工作 为了成功部署并运行FRP以达成内网穿透的目的,需准备好两部分资源:服务端与客户端。服务端通常是指一台具有公网IP地址的机器,可以是云服务商提供的虚拟专用服务器;而客户端则是位于私有网络内部的目标设备,比如个人计算机或是像树莓派这样的小型计算平台[^4]。 #### 下载安装FRP软件包 对于Linux系统的用户来说,在官方GitHub仓库中能够找到适用于不同架构的操作系统版本下的二进制文件。下载完成后解压至指定目录下即可完成初步安装操作[^3]。 #### 配置服务端(`frps.ini`) 创建或编辑名为`frps.ini`的服务端配置文件,设置必要的参数如下所示: ```ini [common] bind_port = 7000 vhost_http_port = 80 token = your_token_here dashboard_port = 7500 allow_ports = 2000-3000,3001,3003,4000-50000 max_pool_count = 5 subdomain_host = frp.yourdomain.com ``` 上述配置项解释: - `bind_port`: 指定用于监听来自客户端连接请求的TCP端口号; - `vhost_http_port`: 当启用HTTP(S)协议转发功能时所使用的本地监听端口,默认为80; - `token`: 设置通信密钥保障安全性; - `dashboard_port`: Web管理界面开放给外部访问的端口; - `allow_ports`: 明确允许被映射出去的具体范围内的端口列表; - `max_pool_count`: 控制最大并发数限制; - `subdomain_host`: 自定义子域名前缀指向该实例所在主机名[^1]。 #### 启动服务端程序 通过命令行启动服务端进程,并将其设为后台常驻任务执行: ```bash nohup ./frps -c /path/to/frps.ini & ``` #### 编写客户端配置(`frpc.ini`) 同样地,在客户机上也需要建立相应的配置文档——即`frpc.ini`: ```ini [common] server_addr = x.x.x.x # 替换成实际VPS IP 地址 server_port = 7000 # 应同于服务端设定一致 token = your_token_here [ssh] type = tcp # 协议类型 local_ip = 127.0.0.1 # 要暴露出来的本机服务ip local_port = 22 # 对应的服务端口 remote_port = 6000 # 外部可访问到此服务的端口编号 ``` 这里特别注意的是要确保`server_addr`填写正确无误以及两端之间保持相同的认证令牌(token)[^2]。 #### 运行客户端应用程序 最后一步就是在终端里输入下面这条指令让客户端正式上线运作起来: ```bash ./frpc -c /path/to/frpc.ini ``` 此时理论上已经完成了整个过程中的所有步骤,可以通过测试验证是否真的实现了预期效果。如果一切正常的话,则意味着现在可以从互联网上的任何地方轻松触及原本处于防火墙之后的应用和服务了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值