内网穿透 篇三:通过 frp 内网穿透 实现公网访问内网服务

2024-04-16 20:09:10 20点赞 236收藏 12评论

本文首发于只抄博客,欢迎点击原文链接了解更多内容。

前言

frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

通过 frp 内网穿透 实现公网访问内网服务

与 Tailscale、ZeroTier 之类的异地组网工具不同,frp 是把内网的服务穿透在公网上,让所有人都可以访问。因此,部署 frp 的前提是有一台具有公网 IP服务器

下载

首先,我们需要去 Github 的下载最新版本的 frp,根据自身的系统以及架构下载正确的版本,常见有 amd64、arm64 等,下载时注意区分。下载完成后,分为 frps 与 frpc 文件,其中 frps 为服务端,用于具有公网 IP 的服务器;frpc 为客户端,用于内网服务器,而对应 toml 文件则是其配置文件。

从 v0.52.0 版本开始,frp 支持 toml, yaml, json 作为配置文件,ini 将被废弃

服务端

基本配置

  1. 将 frps 文件上传至 /opt/frp 目录,并添加运行权限 chmod +x frps

  2. 创建一个配置文件 vim /opt/frp/frps.yaml

bindPort: 7000 auth: token: password webServer: addr: 0.0.0.0 port: 7500 user: admin password: password

  1. 通过 ./frps -c ./frps.yaml 运行,输出以下内容就代表运行成功

2024-04-16 19:00:08.773 [I] [frps/root.go:105] frps uses config file: ./frps.yaml 2024-04-16 19:00:09.022 [I] [server/service.go:237] frps tcp listen on 0.0.0.0:7000 2024-04-16 19:00:09.022 [I] [frps/root.go:114] frps started successfully 2024-04-16 19:00:09.023 [I] [server/service.go:350] dashboard listen on 0.0.0.0:7500

  1. 访问 7500 端口,就可以进入 frp 面板了

通过 frp 内网穿透 实现公网访问内网服务
  1. 服务端完成以上配置即可,具体穿透的端口只需要在客户端配置

后台运行

  1. 通过 ./frps -c ./frps.yaml 运行,一般只用于测试,实际使用还需要使用 systemd 来让 frp 在后台运行

  2. 创建 /etc/systemd/system/frps.service 文件,用于描述 frps 服务的配置

[Unit] Description=frps service After=network.target NetworkManager.service systemd-networkd.service iwd.service ​ [Service] Type=simple Restart=always ExecStart=/opt/frp/frps -c /opt/frp/frps.yaml ​ [Install] WantedBy=multi-user.target

  1. 启动 frps 服务

systemctl enable frps systemctl start frps

客户端

基本配置

  1. 将 frpc 文件上传至 /opt/frp 目录,并添加运行权限 chmod +x frpc

  2. 创建一个配置文件 vim /opt/frp/frpc.yaml

    • serverAddr: 服务器的公网 IP

    • serverPort: 服务器 frp 端口

    • token: 与 frps.yaml 保持一致

    • proxies: 需要穿透的服务,以 AList 为例

    • 更多配置项可以查看官方文档 - 客户端配置

serverAddr: x.x.x.x serverPort: 7000 auth: token: password proxies: - name: AList type: tcp localPort: 5244 remotePort: 5244

  1. 通过 ./frpc -c ./frpc.yaml 运行,输出以下内容就代表运行成功

2024-04-16 19:13:44.111 [I] [sub/root.go:142] start frpc service for config file [./frpc.yaml] 2024-04-16 19:13:44.112 [I] [client/service.go:294] try to connect to server... 2024-04-16 19:13:44.549 [I] [client/service.go:286] [b997b2af10c6f8dd] login to server success, get run id [b997b2af10c6f8dd] 2024-04-16 19:13:44.551 [I] [proxy/proxy_manager.go:173] [b997b2af10c6f8dd] proxy added: [AList] 2024-04-16 19:13:44.693 [I] [client/control.go:170] [b997b2af10c6f8dd] [AList] start proxy success

  1. 再次打开 frp 面板,就可以看到,Client Counts 变为 1

通过 frp 内网穿透 实现公网访问内网服务
  1. 点击左侧的 Proxies -> TCP,还可以看到具体的每一项,此时,访问服务器的 5244 端口,就可以直接打开 AList

通过 frp 内网穿透 实现公网访问内网服务

后台运行

  1. 通过 ./frpc -c ./frpc.yaml 运行,一般只用于测试,实际使用还需要使用 systemd 来让 frp 在后台运行

  2. 创建 /etc/systemd/system/frpc.service 文件,用于描述 frpc 服务的配置

[Unit] Description=frpc service After=network.target NetworkManager.service systemd-networkd.service iwd.service ​ [Service] Type=simple Restart=always ExecStart=/opt/frp/frpc -c /opt/frp/frpc.yaml ​ [Install] WantedBy=multi-user.target

  1. 启动 frpc 服务

systemctl enable frpc systemctl start frpc


展开 收起

UGREEN 绿联 DX4600 Pro 4盘位NAS(奔腾N6005、8GB)

UGREEN 绿联 DX4600 Pro 4盘位NAS(奔腾N6005、8GB)

1849元起

ZSpace 极空间 私有云 Z4Pro 8G版 4盘位NAS存储(N97、8GB)

ZSpace 极空间 私有云 Z4Pro 8G版 4盘位NAS存储(N97、8GB)

2485.01元起

UGREEN 绿联 DX4600 四盘位NAS存储 (赛扬N5105、8GB)

UGREEN 绿联 DX4600 四盘位NAS存储 (赛扬N5105、8GB)

1749元起

ZSpace 极空间 私有云 Z4Pro 性能版 NAS存储(N305、16GB)

ZSpace 极空间 私有云 Z4Pro 性能版 NAS存储(N305、16GB)

3499元起

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

2599元起

UGREEN 绿联 DX4600+ 4盘位NAS(赛扬N5105、8GB)

UGREEN 绿联 DX4600+ 4盘位NAS(赛扬N5105、8GB)

1999元起

ZSpace 极空间 私有云 Z4Pro 16G版 4盘位NAS存储(N97、16GB)

ZSpace 极空间 私有云 Z4Pro 16G版 4盘位NAS存储(N97、16GB)

2783.51元起

ZSpace 极空间 私有云 Z423 旗舰版 8盘位NAS存储(锐龙R7-5825U、64GB)

ZSpace 极空间 私有云 Z423 旗舰版 8盘位NAS存储(锐龙R7-5825U、64GB)

5899元起

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

2829元起

TERRAMASTER 铁威马 F4-424 Pro 四盘位NAS(Intel Core i3、32GB)黑色

TERRAMASTER 铁威马 F4-424 Pro 四盘位NAS(Intel Core i3、32GB)黑色

2499元起

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

3199元起

UGREEN 绿联 DH2600 双盘位NAS (N5105、4GB)

UGREEN 绿联 DH2600 双盘位NAS (N5105、4GB)

1321.01元起

ASUS 华硕 AS6702T 4盘位NAS存储 黑色(Core2 Quad Q8300、4GB)

ASUS 华硕 AS6702T 4盘位NAS存储 黑色(Core2 Quad Q8300、4GB)

4299元起

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

2179元起

ZSpace 极空间 私有云Z2Pro 四核2盘位NAS家庭个人云网络存储服务器手机平板扩容适用iPhone15 水

ZSpace 极空间 私有云Z2Pro 四核2盘位NAS家庭个人云网络存储服务器手机平板扩容适用iPhone15 水

1299元起

sgwbox 拾光坞 N3 星光版V1(瑞芯微RK3566,2G,支持docker)

sgwbox 拾光坞 N3 星光版V1(瑞芯微RK3566,2G,支持docker)

385.78元起
12评论

  • 精彩
  • 最新
  • 已经稳定运行几年了,非常好用!简单稳定 [龇牙] 就是每个服务要设置端口映射,重装软路由的时候发现没备份,要崩溃…… [尴尬]

    校验提示文案

    提交
  • 其实用op的插件设置服务端和客户端很方便,不需要对着记事本手写配置 [吐舌]

    校验提示文案

    提交
    [欢呼] 能安插件的当然优先用插件啦 方便一些 我是直接在Debian上运行的

    校验提示文案

    提交
    收起所有回复
  • 这种方式速度会受服务器限制吗?

    校验提示文案

    提交
    会的

    校验提示文案

    提交
    收起所有回复
  • 比用ddns好在哪里呢?IPv6+inadyn+ddns也很好用。

    校验提示文案

    提交
    frp是转发,最无感,不需要你有ipv6(公司单位酒店等都没有ipv6的),也不需要用户在设备上安装什么APP

    校验提示文案

    提交
    还有,你可以有80443

    校验提示文案

    提交
    收起所有回复
  • 不如直接stun ddns

    校验提示文案

    提交
  • 每次看到这种文章,我就默默感谢一下电信给我的ipv4,感谢一下tp给我的ddns。虽然电信悄摸摸给我弄掉两次了,但是最终还是给回来了

    校验提示文案

    提交
  • 需要公网IP就难倒了大部分人。

    校验提示文案

    提交
    用节点小宝呀,不用公网IP

    校验提示文案

    提交
    收起所有回复
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
相关好价
最新文章 热门文章
236
扫一下,分享更方便,购买更轻松