frp配置多端口内网穿透?frp多端口怎么配置?

使用frp作为内网穿透的时候,有时候,我们需要多个端口穿透,怎么配置呢?

更有frp相关👉:凯哥个人博客,搜索frp

思考:
我们知道frp要想内网穿透,需要配置服务端和客户端。如果需要直接访问80端口的话,需要还需要在nginx做配置。那么下面,咱们就从这三个方面进行详细配置:

一、frp服务端配置

在服务器上找到frps.ini配置文件,然后配置信息如下:

[common]
#穿透监听端口与地址(0.0.0.0表示允许任何地址)
bind_addr = 0.0.0.0
bind_port = 7000
# 跟frpc通讯验证密钥
token = 可以自定义的token.如果需要的话请自行配置。如果不需要,可以注释掉subdomain_host = 访问的域名。如果需要的话修改成自己的#服务器用以显示连接状态的站点端口,以下配置中可以通过访问IP:7500登录查看frp服务端状态等信息
dashboard_addr = 0.0.0.0
dashboard_port = 7500
dashboard_user = 自定义的用户名
dashboard_pwd = 自定义的密码#日志路径
log_file = /home/frp_0.46.1_linux_amd64/log/frps.log#以下是配置多端口的
#端口8079是博客管理后台的项目
[tcp_blog-admin]
type = tcp
local_port = 8079
listen_port = 8079#端口8080是博客前台项目访问地址
[tcp_blog]
type = tcp
local_port = 8080
listen_port = 8080#端口8082是其他项目访问的
[tcp_app3]
type = tcp
local_port = 8082
listen_port = 8082

配置完成之后,如果将frp配置成随机启动的。可以直接执行以下命令,来重启frp

systemctl restart frps

扩展: Centos7下Frp服务端后台运行以及开机自启(Frp客户端同理) 。可以参考:首页_凯哥Java - java基础;spring boot学习;微服务;Java教程;Java web;kaigejava;凯哥Java - 凯哥Java 这篇文章

二、Nginx配置

在Nginx的配置文件中添加如下配置:

# 端口8080映射到80端口
server {listen 80;server_name blog.xxx.com;location ~^/ {resolver 8.8.8.8;proxy_pass http://$host:8080;proxy_redirect off;client_max_body_size 10m;   client_body_buffer_size 128k;proxy_connect_timeout 90;proxy_read_timeout 90;proxy_buffer_size 6k;proxy_buffers 6 128k;proxy_busy_buffers_size 256k;proxy_temp_file_write_size 256k;proxy_set_header Host $http_host;}location ~ .*\.(gif|jpg|png|bmp|swf|css|js)$ {proxy_pass http://$host:8080;expires 30d;}location ~ .*\.(js|css)?$ {expires 1d;}
}# 端口8079映射到80端口
server {listen 80;server_name blog-admin.mmmm.com;location ~^/ {resolver 8.8.8.8;proxy_pass http://$host:8079;proxy_redirect off;client_max_body_size 10m;   client_body_buffer_size 128k;proxy_connect_timeout 90;proxy_read_timeout 90;proxy_buffer_size 6k;proxy_buffers 6 128k;proxy_busy_buffers_size 256k;proxy_temp_file_write_size 256k;proxy_set_header Host $http_host;}location ~ .*\.(gif|jpg|png|bmp|swf|css|js)$ {proxy_pass http://$host:8079;expires 30d;}location ~ .*\.(js|css)?$ {expires 1d;}
}# 端口8082映射到80端口
server {listen 80;server_name app3.nnn.com.com;location ~^/ {resolver 8.8.8.8;proxy_pass http://$host:8082;proxy_redirect off;client_max_body_size 10m;   client_body_buffer_size 128k;proxy_connect_timeout 90;proxy_read_timeout 90;proxy_buffer_size 6k;proxy_buffers 6 128k;proxy_busy_buffers_size 256k;proxy_temp_file_write_size 256k;proxy_set_header Host $http_host;}location ~ .*\.(gif|jpg|png|bmp|swf|css|js)$ {proxy_pass http://$host:8082;expires 30d;}location ~ .*\.(js|css)?$ {expires 1d;}
}

需要注意:server_name 不能配置一样。如果配置一样,在执行下面的重启命令时候,会提示失败

配置完Nginx之后,需要重启Nginx的。重启命令:

/usr/local/nginx/sbin/nginx -s reload

三、frpc.ini配置

配置完frp的服务端、Nginx之后,我们现在再来配置frp客户端

[common]
server_addr = frp服务端所服务器所在的ip
server_port = 7000
token = 这里的token必须和frps.ini里面配置的一致# 配置8079端口
[tcp_blog-admin]
type = tcp
local_ip = 127.0.0.1
local_port = 8079
remote_port = 8079
custom_domains = blog-admin.xxx.com# 配置8080端口
[tcp_blog]
type = tcp
local_ip = 127.0.0.1
local_port = 8080
remote_port = 8080
custom_domains = blog.mmmm.com# 配置8082端口
[tcp_app3]
type = tcp
local_ip = 127.0.0.1
local_port = 8082
remote_port = 8082
custom_domains = app3.nnn.com

需要注意:custom_domains 不能配置一样。如果配置一样,在执行重启frp客户端的时候,会提示错误信息的。

配置完成之后,重启frp的客户端。 可以看到如图所示,说明已经frp多端口配置成功

如果还是不放心,可以登录frp的管理页面进行查看。

frp管理页面就是在frps.ini里面配置7500相关的用户名和密码。

访问地址就是frp服务端的ip:7500。然后输入用户名和密码,就可以访问了。在Proxies菜单下,点击TCP,可以看到对应的端口。如下图所示:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/240421.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端页面资源放入oss 对象存储问题

1.需求 当我们做的是微信公众号的时候 需要微信重定向登录 在此时 我们需要在微信后台配置重定向域名 但是微信后台只能配置三个 如果有很多H5 公众号重定向登录的需求 我们该怎么做呢 2.解决 肯定我们需要配置 首页的 一般前端打包项目 都是由index.html 当然 我们实现 都是…

如何在Spring Boot中优雅的进行参数校验?

1. 前言 在平时的开发工作中,我们通常需要对接口进行参数格式验证。当参数个数较少(个数小于3)时,可以使用if ... else ...手动进行参数验证。当参数个数大于3个时,使用if ... else ...进行参数验证就会让代码显得臃肿…

【MVT_1703230471】基于Python NLTK分词、词云、LDA主题分类及GPT情感分类

【Talk is cheap】 1 数据探索 case idcase outcome case title case text 0 Case1 cited Alpine Hardwood (Aust) Pty Ltd v Hardys Pty Lt... Ordinarily that discretion will be exercised s... 1 Case2 cited Black v Lipovac [1998] FCA 699 ; (1998) 217 AL... The gen…

【WPF.NET开发】创建模板

本文内容 何时创建 ControlTemplate先决条件创建 ControlTemplate使用模板添加触发器使用 VisualState 使用 Windows Presentation Foundation (WPF),可以使用自己的可重用模板自定义现有控件的可视结构和行为。 可以对应用程序、窗口和页面全局应用模板&#xff…

LeetCode-146.LRU缓存(Python)

此题看题解 题目链接 class ListNode:def __init__(self, keyNone, valueNone):self.key keyself.value valueself.prev Noneself.next Noneclass LRUCache:def __init__(self, capacity: int):self.capacity capacityself.cache {}self.head ListNode()self.tail Li…

[Android]CheckBox复选框

在Android开发中,复选框(CheckBox)是一种常用的控件,用于让用户在多个选项中进行选择。它通常用于表单中,让用户选择多个选项或者进行多项操作。在本篇博客中,我们将介绍如何在Android应用中使用CheckBox控…

Unity内置的四种渲染管线简介

Unity的渲染管线(Rendering Pipeline)负责将游戏场景转化为可以在屏幕上显示的像素。 Unity 提供以下渲染管线(官方文档的介绍): 内置渲染管线是 Unity 的默认渲染管线。这是通用的渲染管线,其自定义选项…

《Python》面试常问:深拷贝、浅拷贝、赋值之间的关系(附可变与不可变)【用图文讲清楚!】

背景 想必大家面试或者平时学习经常遇到问python的深拷贝、浅拷贝和赋值之间的区别了吧?看网上的文章很多写的比较抽象,小白接收的难度有点大,于是乎也想自己整个文章出来供参考 可变与不可变 讲深拷贝和浅拷贝之前想讲讲什么是可变数据类型…

Win10 使用 Nmap 扫描 Andorid 设备开放端口

Nmap Nmap 是 网络探测工具和安全/端口扫描器。 官网链接 Nmap参考指南(Man Page) 官网下载地址 Downloading Nmap Nmap 下载安装 到官网下载对应操作系统的安装包, 默认配置,一直下一步安装即可。安装过程中备份下安装路径,后续用到。…

九州未来大模型一体机,加速AI应用落地

2023年已接近尾声,对于中国人工智能产业而言,这一年注定成为一个重要的转折点。在不同行业中,人工智能的应用不断涌现,众多大模型如雨后春笋般涌现。然而,在这一发展过程中也不可避免地出现了一系列问题,包…

Java项目启动过程中Mybatis报错bug(多问题汇总,持续更新)

目录 前言1. Error: Method queryTotal execution error of sql2. Cause: java.sql.SQLSyntaxErrorException: Unknown column xxxxx in fiel其他前言 统计实战中关于Mybatis出错的原因 1. Error: Method queryTotal execution error of sql 执行Springboot的时候出现如下错…

vcruntime140_1.dll文件下载安装方法分享,如何安全修复vcruntime140_1.dll

遇到vcruntime140_1.dll文件遗失是用户在使用Windows操作系统时较为普遍遭遇到的一个问题,它归类于动态链接库(DLL)文件缺失的常见情形。在今天的内容里,我们将深入探讨如何正确地下载和安装vcruntime140_1.dll文件,以…

dangerouslyUseHTMLString选项来启用自定义 HTML 片段

Old&#xff1a; const msg 切换旧版成功&#xff0c;推荐 <span id"changeMsg" style"color: #47FFF1;; text-decoration: underline;">切换新版</span> 体验最新效果;const message ElMessage({customClass: site-toast,dangerouslyUseHTML…

得到山形数组的最少删除次数(LeetCode日记)

LeetCode-1671-得到山形数组的最少删除次数 题目信息: 我们定义 a r r arr arr 是 山形数组 当且仅当它满足&#xff1a; a r r . l e n g t h > 3 arr.length > 3 arr.length>3存在某个下标 i i i &#xff08;从 0 开始&#xff09; 满足 0 < i < a r r…

Google推出Gemini AI开发——10年工作经验的Android开发要被2年工作经验的淘汰了?

应用程序中利用 Gemini 前言&#xff08;可略过&#xff09;、使用 Gemini Pro 开发应用程序正文、Android Studio 中构建Gemini API Starter 应用第 1 步&#xff1a;在 AI 的新项目模板的基础上进行构建第 2 步&#xff1a;生成 API 密钥第 3 步&#xff1a;开始原型设计 正文…

Mybatis之增删改查

目录 一、引言 二、Mybatis——增 举例&#xff1a;添加用户 三、Mybatis——删 举例&#xff1a;删除用户 四、Mybatis——改 举例&#xff1a;修改用户 五、Mybatis——查 六、注意 END&#xff1a; 一、引言 书接上回&#xff0c;我们在了解完mybatis之后&#xff0c;肯…

STM32F4 HAL流水灯Proteus仿真

源码下载&#xff1a;https://download.csdn.net/download/zlkk00/88654405

CSS基础小练习

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>圣诞节快乐</title><style>/*设置背景色*/body{background-image:linear-gradient(green 50%,red 50%);background-size:100% 30px;}/*让div在页面居中*/#text{…

ubuntu 18/20/22 安装 mysql 数据库

这里写自定义目录标题 ubuntu 18/20/22 安装 mysql 数据库1. 准备2. 安装 mysql3. 配置4. 测试 demo 用户5 服务管理5.1 查看服务状态5.2 启动服务5.3 停止服务5.4 重启服务 ubuntu 18/20/22 安装 mysql 数据库 1. 准备 安装前需要知道 root 用户的密码 假如不知道 root 用户…

20231223使用Rockchip原厂的Android11调通Firefly的AIO-3399J开发板上的AP6356S

20231223使用Rockchip原厂的Android11调通Firefly的AIO-3399J开发板上的AP6356S 2023/12/23 14:14 开发板&#xff1a;Firefly的AIO-3399J【RK3399】 SDK&#xff1a;rk3399-android-11-r20211216.tar.xz【Android11】 Android11.0.tar.bz2.aa【ToyBrick】 Android11.0.tar.bz2…