内网穿透工具 FRP (Fast Reverse Proxy) 真的非常好用

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

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

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

  1. 访问内网服务

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

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

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

  1. 远程调试与开发

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

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

  1. Webhook 接收

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

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

  1. 敏感数据保护

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

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

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

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

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

  1. 简单易用的配置

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

  1. 多协议支持

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

  1. 安全性保障

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

  1. 跨平台支持

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

  1. 高性能和稳定性

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

  1. 活跃的社区和持续更新

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

  1. 灵活的应用场景

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

FRP(Fast Reverse Proxy)的快速入门

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

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

  1. FRP 服务器端:

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

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

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

  1. 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,这里改成 7001bind_port = 7001# 授权码,请使用更复杂和安全的令牌token = 123456
# Frp 管理后台端口,按需更改,默认为 7500dashboard_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,默认为 infolog_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# 自定义的远程端口,用于连接 SSHremote_port = 6000
# 配置 HTTP 服务[web]type = http# 本地 HTTP 服务地址local_ip = 127.0.0.1# 本地 HTTP 服务端口local_port = 8080# 自定义的子域名,用于访问 Web 服务subdomain = test.hijk.pw# 自定义的远程端口,例如 8080remote_port = 8080

使用

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

ssh 123456@47.104.77.123 -p 6000
注意 端口一定要开放

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


链接:https://juejin.cn/post/7317536477696704527

(版权归原作者所有,侵删)

标签

发表评论

苏ICP备2023047577号-1