0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

内网穿透工具FRP的快速入门

马哥Linux运维 来源:稀土掘金技术社区 2024-01-02 11:47 次阅读

给你推荐一款非常优秀的内网穿透工具 FRP (Fast Reverse Proxy)

作为程序员为什么你必须有一款非常优秀的内网穿透工具

在计算机网络中,内网穿透是一种通过公网建立安全通道,使得位于内网的计算机和服务可以被外部网络访问。对程序员而言,内网穿透可以帮助你干什么呢?

访问内网服务

好处:内网穿透允许程序员通过公网访问内网的服务。这对于开发者来说是极为方便的,尤其是在远程工作或需要通过云服务对内网服务进行访问的场景下。

必要性:内网中的服务通常无法直接通过公网 IP 访问,内网穿透打破了这种限制,使得程序员可以轻松地在外部环境中访问和测试内网服务。

你想想你平时在公司的开发环境是不是都在公司的内网环境中,如果你需要在家里使用公司的内网环境的话,内网穿透是不是一个非常好的选择。

远程调试与开发

好处:内网穿透允许程序员在远程环境中进行调试和开发。通过将本地服务映射到公网上,开发者可以在任何地方、任何设备上进行开发工作,无需局限于特定网络环境。

必要性:对于需要不断迭代和测试的项目,远程调试是提高开发效率的关键。内网穿透为程序员提供了远程调试的灵活性,减少了时间和地域上的限制。

Webhook 接收

好处:内网穿透可以用于接收来自外部服务的 Webhook 请求。这对于处理第三方服务的回调通知、接收 GitHub Webhook 等场景非常重要。

必要性:外部服务通常需要将回调通知发送到指定的地址,而内网环境下无法直接接收这些请求。内网穿透可以将本地服务映射到公网,使得 Webhook 回调能够正常触发本地服务。

敏感数据保护

好处:内网穿透通过加密和身份验证机制,确保了内网服务与外部环境之间的通信安全性。开发者可以安心地在外部环境中使用内网服务,而不必担心敏感信息泄漏。

必要性:在保护用户数据隐私和遵循安全规范的前提下,内网穿透为程序员提供了一种安全可控的远程访问方式,使得敏感数据得以有效保护。

所以我们程序员必须拥有得学会使用内网穿透,这对我们的工作有很大的帮助。

推荐一个非常好用的内网穿透工具 FRP(Fast Reverse Proxy)

为什么要推荐FRP(Fast Reverse Proxy)呢?FRP(Fast Reverse Proxy)作为一款优秀的内网穿透工具,它具有:

简单易用的配置

FRP 提供了简洁明了的配置文件,配置过程简单直观。用户可以通过简单的设置完成对内网服务的映射和穿透,无需繁琐的操作和深厚的网络知识。

多协议支持

FRP 支持多种协议,包括常见的 TCP 和 UDP 协议,以及应用层的 HTTP、HTTPS 等协议。这使得 FRP 不仅可以用于简单的端口映射,还可以适用于代理 Web 服务等更复杂的应用场景。

安全性保障

FRP 提供了可靠的身份验证和加密机制,用户可以通过设置用户名和密码,以及使用 TLS/SSL 加密通信,确保传输的安全性。这对于处理敏感数据和保护内网服务至关重要。

跨平台支持

FRP 支持多个操作系统,包括 Windows、Linux、macOS 等。这为用户提供了更大的灵活性,使其能够在不同的平台上选择适用的版本,便于部署和使用。

高性能和稳定性

FRP 的设计注重性能和稳定性,经过实际测试,在处理大量连接和数据传输时表现出色。这使得 FRP 可以在生产环境中得到可靠的应用,保证服务的稳定运行。

活跃的社区和持续更新

FRP 拥有一个活跃的开源社区,用户可以在社区中获取支持、提出问题,分享经验。同时,FRP 的开发团队也在不断进行更新和改进,保障了 FRP 的稳定性、兼容性和安全性。

灵活的应用场景

由于支持多协议和提供了丰富的配置选项,FRP 可以适用于各种不同的应用场景,包括远程调试、内网服务对外访问、Webhook 接收等,为用户提供了极大的灵活性。

FRP(Fast Reverse Proxy)的快速入门

我们使用 Linux Ubuntu 20.04.2 LTS x86_64 作为操作系统来演示 FRP (Fast Reverse Proxy)的快速搭建。

FRP需要在两台服务器搭建,一个客户端,一个服务端。

FRP 服务器端:

监听外部请求:服务器端负责监听来自公网的外部请求。这些请求可以是来自不同地理位置或网络环境的客户端发起的,通过公网传输到 FRP 服务器。

反向代理内网服务:当 FRP 服务器接收到外部请求时,它会将请求转发给内网的 FRP 客户端。这种方式实现了内网服务对外的映射,即通过 FRP 服务器的公网 IP 和端口访问内网的服务。

安全认证和加密:FRP 服务器通常支持安全认证机制,通过用户名和密码等方式对外部请求进行身份验证。同时,服务器和客户端之间的通信也可以采用加密手段,保障数据传输的安全性。

FRP 客户端:

连接 FRP 服务器:客户端负责与 FRP 服务器建立连接,通常通过配置文件指定 FRP 服务器的地址和端口。连接建立后,客户端与服务器之间可以进行双向通信。

映射内网服务:客户端将内网的服务与 FRP 服务器进行关联,通过配置文件指定内网服务的类型、IP 地址、端口等信息。这样,来自 FRP 服务器的外部请求就能够被映射到相应的内网服务。

维持心跳和保持连接:为了保持连接的稳定性,客户端会定期向 FRP 服务器发送心跳信息,以确保连接没有中断。这对于长时间运行的服务和实时通信非常重要。

在服务器端配置 FRP

1、下载 FRP

你可以在 Frp 的 GitHub Release 页面上找到最新版本的下载链接。


wget https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_linux_amd64.tar.gz

2、解压 FRP

tar -zxvf frp_0.36.2_linux_amd64.tar.gz

3、进入 FRP目录

复制一份 FRP 的示例配置文件:


cp frps.ini /etc/frp/frps.ini

然后编辑配置文件:

nano /etc/frp/frps.ini

修改配置文件中的bind_port为 Frp 服务器监听的端口,例如:
bind_port = 7000

4、启动 FRP 服务器

./frps -c /etc/frp/frps.ini

在客户端配置 FRP

1、下载 FRP

你可以在 Frp 的 GitHub Release 页面上找到最新版本的下载链接。


wget https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_linux_amd64.tar.gz

2、解压 FRP
tar -zxvf frp_0.36.2_linux_amd64.tar.gz

3、进入 FRP目录

复制一份 FRP 的示例配置文件:

cp frpc.ini /etc/frp/frpc.ini

然后编辑配置文件(注意frpc.ini):

nano ./frpc.ini

修改配置文件中的server_addr和server_port为你 FRP 服务器的地址和端口,设置token为服务器配置文件中的token。


[common] 
server_addr = your_server_ip 
server_port = 7000 
token = your_token

添加映射规则:

FRP将本地的127.0.0.1:80映射到 FRP 服务器上的your_server_ip:6000。


[web] 
type = http local_ip = 127.0.0.1 
local_port = 80 
remote_port = 6000

4、启动 FRP 服务器

./frpc -c /etc/frp/frpc.ini

博主 FRP 配置仅供参考

服务端

地址 47.104.77.123

[common]
# Frp 服务器监听的端口,默认为 7000,这里改成 7001
bind_port = 7001
# 授权码,请使用更复杂和安全的令牌
token = 123456


# Frp 管理后台端口,按需更改,默认为 7500
dashboard_port = 7500
# Frp 管理后台的用户名
dashboard_user = admin
# Frp 管理后台的密码,请设置为强密码
dashboard_pwd = admin
# 启用 Prometheus 监控
enable_prometheus = true


# Frp 日志配置
log_file = /var/log/frps.log
# 日志级别,可以设置为 debug、info、warn、error,默认为 info
log_level = info
# 日志最大保存天数
log_max_days = 3


客户端


# 客户端配置
[common]
# 启用 TLS 加密
tls_enable = true
# Frp 服务器地址
server_addr = 47.104.77.123
# Frp 服务器监听的端口,与 frps.ini 的 bind_port 一致
server_port = 7001
# Frp 服务器配置的 token,与 frps.ini 的 token 一致
token = 123456


# 配置 SSH 服务
[ssh]
type = tcp
# 本地 SSH 服务地址
local_ip = 127.0.0.1
# 本地 SSH 服务端口
local_port = 22
# 自定义的远程端口,用于连接 SSH
remote_port = 6000


# 配置 HTTP 服务
[web]
type = http
# 本地 HTTP 服务地址
local_ip = 127.0.0.1
# 本地 HTTP 服务端口
local_port = 8080
# 自定义的子域名,用于访问 Web 服务
subdomain = test.hijk.pw
# 自定义的远程端口,例如 8080
remote_port = 8080


使用

你就可以通过公网47.104.77.123连接到 ssh 远程连接到你的电脑了。


ssh 123456@47.104.77.123 -p 6000

注意 端口一定要开放

比如:博主的例子里边的 服务端 7001 7005端口。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10991

    浏览量

    206735
  • 计算机
    +关注

    关注

    19

    文章

    6649

    浏览量

    84532
  • 网络
    +关注

    关注

    14

    文章

    7251

    浏览量

    87441
  • 远程调试
    +关注

    关注

    0

    文章

    32

    浏览量

    8559
  • 程序员
    +关注

    关注

    4

    文章

    931

    浏览量

    29572

原文标题:内网穿透工具 FRP (Fast Reverse Proxy) 真的非常好用

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    内网穿透详解-基于NATAPP&NatAssist测试

    本帖最后由 1406093611 于 2019-11-13 22:41 编辑 内网穿透详解-基于NATAPP&NatAssist TCP测试【前言】最近做一个4G模块
    发表于 09-13 12:14

    搭建自己的IOT平台---内网穿透

    好啦,内网穿透就是这么简单,快去实现你的IOT平台吧注意:花生壳现在需要实名制,如果使用过程发现要实名制的话,可以选择实名,就上传身份证件,然后再采集一下人脸即可,这个可以在APP上快速完成,在应用商城直接搜花生壳管理即可找到
    发表于 12-09 23:14

    【HD-G2UL-EVM开发板体验】 内网穿透

    设备,验证是否生效sync && sudo reboot开始在网上有关sakura frp在linux开发板上的教程还比较少,这里写一篇在G2UL开发板上实现内网穿透
    发表于 12-22 16:49

    搭建FRP服务器的教程

    对于没有公网IP的内网用户来说,远程管理内网下的LoRaWAN网关是一个尴尬的难题,内网穿透可实现通过公网访问内网下的设备(如本机)当下
    的头像 发表于 08-26 10:12 1.6w次阅读

    如何用frp实现内网穿透呢?

    想要连接就需要NAT(Network Address Translation,网络地址转换)。想要实现这一个功能,可以有许多方法,比如说frp、花生壳、ssh等实现。
    的头像 发表于 01-18 10:29 1970次阅读
    如何用<b class='flag-5'>frp</b>实现<b class='flag-5'>内网</b><b class='flag-5'>穿透</b>呢?

    【教程】通过LoRaWAN网关实现FRP功能

    对于没有公网IP的内网用户来说,远程管理内网下的LoRaWAN网关是一个尴尬的难题,内网穿透可实现通过公网访问内网下的设备(如本机)当下
    的头像 发表于 08-28 15:37 511次阅读
    【教程】通过LoRaWAN网关实现<b class='flag-5'>FRP</b>功能

    使用LoRaWAN网关实现FRP功能教程

    对于没有公网IP的内网用户来说,远程管理内网下的LoRaWAN网关是一个尴尬的难题,内网穿透可实现通过公网访问内网下的设备(如本机)当下
    的头像 发表于 06-25 10:18 318次阅读
    使用LoRaWAN网关实现<b class='flag-5'>FRP</b>功能教程

    【教程】使用LoRaWAN网关实现FRP功能

    对于没有公网IP的内网用户来说,远程管理内网下的LoRaWAN网关是一个尴尬的难题,内网穿透可实现通过公网访问内网下的设备(如本机)当下
    的头像 发表于 06-23 10:02 424次阅读
    【教程】使用LoRaWAN网关实现<b class='flag-5'>FRP</b>功能

    常用的内网穿透工具原理和使用方法

    nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网d
    发表于 07-10 11:20 836次阅读
    常用的<b class='flag-5'>内网</b><b class='flag-5'>穿透</b><b class='flag-5'>工具</b>原理和使用方法

    内网穿透工具的种类、原理和使用方法

    本文以渗透的视角,总结几种个人常用的内网穿透内网代理工具,介绍其简单原理和使用方法。
    的头像 发表于 08-25 10:35 382次阅读
    <b class='flag-5'>内网</b><b class='flag-5'>穿透</b><b class='flag-5'>工具</b>的种类、原理和使用方法

    什么是nps?常见内网穿透工具有哪些?

    nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。 目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网
    发表于 08-31 10:32 1269次阅读
    什么是nps?常见<b class='flag-5'>内网</b><b class='flag-5'>穿透</b><b class='flag-5'>工具</b>有哪些?

    内网穿透可以带给物联网什么呢?

    内网穿透可以带给物联网什么呢?
    的头像 发表于 10-14 15:14 396次阅读

    内网穿透frp原理简述

    FRP的优点: 它可以隐藏内网中的服务器, 避免因直接暴露内网服务器导致的安全问题。此外, FRP还支持动态端口映射, 可以方便地实现内网
    的头像 发表于 11-13 14:38 1747次阅读
    <b class='flag-5'>内网</b><b class='flag-5'>穿透</b><b class='flag-5'>frp</b>原理简述

    神器!实现内网穿透的几款工具

    frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
    的头像 发表于 11-25 10:22 716次阅读
    神器!实现<b class='flag-5'>内网</b><b class='flag-5'>穿透</b>的几款<b class='flag-5'>工具</b>

    使用cpolar内网穿透本地MariaDB数据库

    本篇教程将使用cpolar内网穿透本地MariaDB数据库,并实现在外公网环境下使用navicat图形化工具远程连接本地内网的MariaDB数据库。
    的头像 发表于 01-22 10:28 210次阅读
    使用cpolar<b class='flag-5'>内网</b><b class='flag-5'>穿透</b>本地MariaDB数据库