FRP 内网穿透指南:简单上手,快速入门

        最近受朋友启发,突然萌生了一个想法,那就是如何将家里闲置五六年的台式机给利用起来, 本来打算组装一个NAS存储服务器,但是硬盘实在是有点小贵,所以决定先买了一块799元的4T机械硬盘, 然后做的frp内网穿透,以便于在外网环境下随时可以操作家里的电脑,存个资料啥的还是比较方便的,当然为了资料的安全,未来还是考虑要做NAS存储的。

frp是什么?

        frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。

        可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

为什么使用 frp?

        通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:

  • 客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。
  • 采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。
  • 代理组间的负载均衡。
  • 端口复用,多个服务通过同一个服务端端口暴露。
  • 多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。
  • 高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。
  • 服务端和客户端 UI 页面。

frp下载

点击下载​github.com/fatedier/032701/releasesicon-default.png?t=N7T8https://link.zhihu.com/?target=https%3A//github.com/fatedier/032701/releases

frp服务端安装(公网)

        frps的安装运行需要在公网IP的服务器上运行,这里我是用自己买的腾讯云服务器,配置嘛 4核8G 12Mbps,足够用了,用的操作系统是centos, 我是将下载下来的frp_0.37.0_linux_amd64.tar.gz文件放在了/opt/frp目录下面(随便放哪里都可以),由于安装的是frp服务端,所以文件中有关于frpc的客户端文件我们就删掉就可以了(没有则忽略,删不删没啥影响)。

        这里我们需要重点关注的是frps.ini这个配置文件,如下图所示:

frps.ini配置文件内容详解

[common]
#服务监听的ip
bind_addr = 0.0.0.0
#服务监听端口(注:自定义的7000端口需要与frpc内网客户端的端口一致)
bind_port = 7000
#访问web服务需要用到的端口
vhost_http_port = 30001
#https需要用到的端口
vhost_https_port = 443

# 指定 Dashboard 的监听的 IP 地址
dashboard_addr = 0.0.0.0
#指定 Dashboard 的监听的端口
dashboard_port = 30000
# 指定访问 Dashboard 的用户名
dashboard_user = fenglm
# 指定访问 Dashboard 的密码
dashboard_pwd = 密码随便定义即可

#防止被随意注册(自定义的token需要与frpc内网客户端的一致)
token = ucqawq

# 日志的记录级别,分为debug, info, warn, error四级,日志保存的天数,默认3天
log_file = ./frps.log
log_level = info
log_max_days = 3

frps命令详解

【启动frps】 
 nohup ./frps -c ./frps.ini&
【查看日志】
 tail -f frps.log
【停止frps】
 ps -ef|grep frp    
 kill -9 进程号

frp客户端安装(内网)

frpc的安装运行需要在内网的服务器上运行(因为我们需要进行内网穿透)

  • 这里我们需要重点关注的是frpc.ini这个配置文件,如下图所示

frpc.ini配置文件内容详解

[common]
#配置公网服务器IP地址
server_addr = 49.23.19.15
#服务监听端口(注:自定义的7000端口需要与frps服务端的端口一致)
server_port = 7000
#防止被随意注册(自定义的token需要与frps服务端的一致)
token = ucqawq
log_file = ./frpc.log
log_level = info
log_max_days = 3

[RDP]
type = tcp
local_ip = 127.0.0.1
#3389是远程桌面的默认端口,我们远程桌面的地址为:49.23.19.15:9000
local_port = 3389
#自定义远程服务器端口
remote_port = 9000

[Webdav]
type = tcp
local_ip = 127.0.0.1
#自定义Webdav端口
local_port = 5030
#Webdav远程服务端口,我们通过RaiDrive连接地址为:49.23.19.15:9010
remote_port = 9010

        注:在配置文件中,我配置了[Webdav],目的是在外网电脑上可以通过RaiDrive映射本地网络磁盘,方便随时向家里的电脑磁盘中存取文件,如下图所示:

这里我们只需要下载RaiDrive.rar,安装配置49.23.19.15:9010即可,配置下图所示:

Webdav下载运行

点击下载​github.com/hacdias/webdav/releases/tag/v4.1.0icon-default.png?t=N7T8https://link.zhihu.com/?target=https%3A//github.com/hacdias/webdav/releases/tag/v4.1.0

解压并新建config.yaml配置文件

config.yaml配置文件内容详解

# Server related settings
address: 0.0.0.0
#与frpc配置文件中的Webdav端口对应
port: 5030
auth: true
tls: false
cert: cert.pem
key: key.pem
prefix: /

# Default user settings (will be merged)
#需要映射的本地盘符需要设置一下
scope: D:/
modify: true
rules: []

# CORS configuration
cors:
  enabled: true
  credentials: true
  allowed_headers:
    - Depth
  allowed_hosts:
    - http://localhost:8080
  allowed_methods:
    - GET
  exposed_headers:
    - Content-Length
    - Content-Range

#注:下面是配置了3套用户,且分别分配了D盘下不同的文件夹权限,方便多人共用且互不干扰
users:
  - username: 内网服务器的用户名
    password: 内网服务器的密码
  - username: 内网服务器的用户名
    password: 内网服务器的密码
    scope: D:/shenjing
  - username: 内网服务器的用户名
    password: 内网服务器的密码
    scope: D:/shenyuan
    modify:   true
    rules:
      - modify: true
        path: D:\
      - path: D:\
        modify: true

        注:如需要监控Webdav的运行日志,需要使用cmd命令运行,这里为了方便设置开机自启frpc和Webdav,使用了AlwaysUp软件,还是蛮好用的,如下图所示:

至此,关于frp的整套搭建及使用流程就介绍完毕!!!

 想要了解更多实用小干货

可关注我的【知乎】 

相关推荐

  1. 穿透FRP

    2023-12-26 10:02:05       38 阅读
  2. 使用docker+frp进行穿透

    2023-12-26 10:02:05       17 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-26 10:02:05       17 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-26 10:02:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-26 10:02:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-26 10:02:05       18 阅读

热门阅读

  1. MySQL联合索引

    2023-12-26 10:02:05       33 阅读
  2. Docker资源

    2023-12-26 10:02:05       29 阅读
  3. 制作spring boot docker镜像Dockerfile文件编写

    2023-12-26 10:02:05       34 阅读
  4. StarRocks-3.1.6升级

    2023-12-26 10:02:05       25 阅读
  5. PAT.1101.QuickSort

    2023-12-26 10:02:05       29 阅读
  6. 每日一水:leetcode1576.替换所有的问号

    2023-12-26 10:02:05       38 阅读
  7. Nestjs使用log4j打印日志

    2023-12-26 10:02:05       38 阅读