【内网映射】frps实现内网映射

1. 简介

在当今互联网时代,远程访问内网资源已成为一种常见需求。无论是在家访问办公室的电脑,还是远程管理家庭NAS,内网映射都是一种强大的解决方案。
本文将详细介绍如何使用frp(Fast Reverse Proxy)来实现这一目标。

1.1 frp

frp是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,将NAT或防火墙后的本地服务器暴露到互联网。它支持TCP、UDP、HTTP、HTTPS等多种协议,使用起来非常灵活。

1.2 frp的主要组件

frp主要由两部分组成:
frps (服务端): 运行在具有公网IP的服务器上
frpc (客户端): 运行在您想要暴露到公网的内网机器上

内网映射的概念和用途:内网映射允许您将内网服务器的端口映射到公网IP的特定端口上,使得外网用户可以通过访问公网IP和端口来访问内网服务

2.准备工作

2.1软件下载

访问frp的GitHub发布页面: https://github.com/fatedier/frp/releases
根据您的操作系统下载适合的版本
解压下载的文件,您会看到frps和frpc两个可执行文件
下载后的操作步骤

Windows:

创建目录:C:\frp
使用内置的解压工具或7-Zip等软件,将文件解压到 C:\frp 目录下

Linux/macOS:

创建目录:

sudo mkdir /usr/local/frp

解压文件到该目录:

sudo tar -zxvf frp_x.xx.x_linux_amd64.tar.gz -C /usr/local/frp

设置适当的权限:

sudo chown -R $(whoami):$(whoami) /usr/local/frp

解压后,在您指定的目录(如 C:\frp 或 /usr/local/frp)中,您会看到以下文件:
frps: 服务端程序(用于公网服务器)
frpc: 客户端程序(用于内网设备)
frps.ini: 服务端配置文件模板
frpc.ini: 客户端配置文件模板
frps_full.ini 和 frpc_full.ini: 包含所有可能配置项的完整配置文件
配置服务端(公网服务器)

3.开始配置

3.1 ssh请求配置

配置完即可通过客户端ssh连接到服务端

进入 frp 目录:

Windows: cd C:\frp
Linux/macOS: cd /usr/local/frp

编辑 frps.ini 文件:

[common]
bind_port = 7000
token = your_secure_token

将 frps 和 frps.ini 上传到您的公网服务器的相应目录(如 /usr/local/frp/)

配置客户端(内网设备)
进入 frp 目录:

Windows: cd C:\frp
Linux/macOS: cd /usr/local/frp

编辑 frpc.ini 文件:

[common]
server_addr = your_server_public_ip
server_port = 7000
token = your_secure_token

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

确保 frpc 和 frpc.ini 保存在您的内网设备上的指定目录中

启动服务
在公网服务器上启动 frps:

cd /usr/local/frp
./frps -c frps.ini

在内网设备上启动 frpc:

Windows:

cd C:\frp
frpc.exe -c frpc.ini

Linux/macOS:

cd /usr/local/frp
./frpc -c frpc.ini

3.2 http请求配置

3.2.1 服务端配置(frps)

编辑 frps.ini 文件,添加 HTTP 服务的端口:

[common]
bind_port = 7000
vhost_http_port = 80
token = your_secure_token

这里的 vhost_http_port 是用于接收 HTTP 请求的端口,通常设置为 80。

如果您的服务器已经有 Web 服务占用了 80 端口,可以选择其他端口,如 8080:

vhost_http_port = 8080

3.2.2客户端配置(frpc)

编辑 frpc.ini 文件,添加 HTTP 服务的配置:

[common]
server_addr = your_server_public_ip
server_port = 7000
token = your_secure_token

[web]
type = http
local_ip = 127.0.0.1
local_port = 8080
custom_domains = yourdomain.com

type = http: 指定这是一个 HTTP 服务。
local_ip 和 local_port: 指向您本地的 Web 服务地址和端口。
custom_domains: 指定要使用的域名,这个域名应该解析到您的公网服务器 IP。

如果您想要通过子域名访问,可以这样配置:

[web]
type = http
local_ip = 127.0.0.1
local_port = 8080
subdomain = test

启动服务

在公网服务器上启动 frps:

./frps -c frps.ini

在内网设备上启动 frpc:

./frpc -c frpc.ini

访问测试
配置完成后,您应该能够通过 http://yourdomain.com 或 http://test.yourdomain.com 来访问您的内网 Web 服务了。
这样就配置完成。

下一篇博客会讲完成之后如何测试是否联通,以及一些debug方法。

猜你喜欢

转载自blog.csdn.net/weixin_47665864/article/details/142960359