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

devtools/2024/10/15 19:27:01/
http://www.w3.org/2000/svg" style="display: none;">

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:

创建目录:

python">sudo mkdir /usr/local/frp

解压文件到该目录:

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

设置适当的权限:

python">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 目录:

python">Windows: cd C:\frp
Linux/macOS: cd /usr/local/frp

编辑 frps.ini 文件:

python">[common]
bind_port = 7000
token = your_secure_token

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

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

python">Windows: cd C:\frp
Linux/macOS: cd /usr/local/frp

编辑 frpc.ini 文件:

python">[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:

python">cd /usr/local/frp
./frps -c frps.ini

在内网设备上启动 frpc:

Windows:

python">cd C:\frp
frpc.exe -c frpc.ini

Linux/macOS:

python">cd /usr/local/frp
./frpc -c frpc.ini

http_116">3.2 http请求配置

3.2.1 服务端配置(frps)

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

python">[common]
bind_port = 7000
vhost_http_port = 80
token = your_secure_token

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

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

python">vhost_http_port = 8080

3.2.2客户端配置(frpc)

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

python">[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。

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

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

启动服务

在公网服务器上启动 frps:

python">./frps -c frps.ini

在内网设备上启动 frpc:

python">./frpc -c frpc.ini

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

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


http://www.ppmy.cn/devtools/126306.html

相关文章

Python爬虫高效数据爬取方法

大家好!今天我们来聊聊Python爬虫中那些既简洁又高效的数据爬取方法。作为一名爬虫工程师,我们总是希望用最少的代码完成最多的工作。下面我ll分享一些在使用requests库进行网络爬虫时常用且高效的函数和方法。 1. requests.get() - 简单而强大 requests.get()是我们最常用的…

矩阵相关算法

矩阵旋转90度 给定一个 n n 的二维矩阵 matrix 表示一个图像&#xff0c;请你将图像顺时针旋转 90 度。 #include <iostream> #include <vector>using namespace std;void rotate(vector<vector<int>>& matrix) {int n matrix.size();// 第一步…

Three.js 快速入门 --- 鼠标操作三维场景

1、准备工作 需要引入 OrbitControls.js <script src"./three.js-r102/examples/js/controls/OrbitControls.js"></script>2、代码实现 function render() {renderer.render(scene,camera);//执行渲染操作 } render(); var controls new THREE.OrbitC…

全面掌握 Linux 服务管理:从入门到精通

全面掌握 Linux 服务管理&#xff1a;从入门到精通 引言 在 Linux 系统中&#xff0c;服务管理是系统管理员和开发者的基本技能之一。无论是启动、停止、重启还是查看服务状态&#xff0c;systemctl 命令都能让你轻松完成这些操作。今天&#xff0c;我们将深入探讨如何使用 sy…

系统架构设计师:数据库系统相关考题预测

作为系统架构设计师,在准备数据库系统相关的考试时,可以预期到的一些关键知识点包括但不限于以下几个方面: 数据库类型: 关系型数据库(RDBMS)与非关系型数据库(NoSQL)的区别及其适用场景。数据库管理系统(DBMS)的功能及组成部分。数据模型: 如何设计ER模型(实体-关…

Redis最佳实践

Redis最佳实践 文章目录 Redis最佳实践1 Redis键值设计1.1 优雅的key结构1.2 拒绝BigKey1.2.1 什么是BigKey1.2.2 BigKey的危害1.2.3 如何发现BigKey1.2.4 如何删除BigKey 1.3 恰当的数据类型1.4 总结 2 批处理优化2.1 Pipeline2.1.1 大数据导入的方式2.1.2 Pipeline2.1.3 总结…

sam2细节解析

模型输入prompt和image&#xff0c;特点是多了一个memory attention&#xff0c;将上一帧与当前帧通过attention机制进行融合&#xff0c;最后经过mask decoder推理输出。 对于视频&#xff0c;是一帧一帧的进行输出的。不是batch的并行输出 整体结构。 memory机制通过cross-a…

第二课:Python入门学习之开发工具的安装

今天我们进行Python开发工具的安装&#xff0c;其实网上的开发工具是很多的&#xff0c;每个人的习惯也都不一样&#xff0c;我们先去官网下载一个比较常用的吧。废话不多开始操作。 第一步&#xff1a;打开官网地址&#xff1a;https://www.jetbrains.com.cn/ 第二步&#xf…