frp 配置内网访问

frp介绍

frp 是一个开源、简洁易用、高性能的内网穿透软件,支持 tcp, udp, http, https 等协议。frp 项目官网是 https://github.com/fatedier/frp

下载地址: https://github.com/fatedier/frp/releases

frp工作原理
  • 服务端运行,监听一个主端口,等待客户端的连接;
  • 客户端连接到服务端的主端口,同时告诉服务端要监听的端口和转发类型;
  • 服务端fork新的进程监听客户端指定的端口;
  • 外网用户连接到客户端指定的端口,服务端通过和客户端的连接将数据转发到客户端;
  • 客户端进程再将数据转发到本地服务,从而实现内网对外暴露服务的能力。
配置教程

要配置 frp 进行内网穿透,首先你必须需要一台具有外网 IP(即可外网访问)的服务器。配置教程分为两个部分:服务器端(外网服务器)的配置和客户端(内网服务器)的配置。

服务端配置
解压 frp压缩包
tar -zxvf frp_0.33.0_linux_amd64.tar.gz
进入该解压目录:
cd frp_0.33.0_linux_amd64/
并打开配置文件:
vi frps.ini
将内容修改为以下
[common]
bind_addr = 0.0.0.0
# frp监听的端口,默认是7000,可以改成其他的
bind_port = 7000
# 授权码,请改成更复杂的
token = 123456  # 这个token之后在客户端会用到# frp管理后台端口,请按自己需求更改
dashboard_port = 7500
# frp管理后台用户名和密码,请改成自己的
dashboard_user = admin
dashboard_pwd = admin
enable_prometheus = true# 只允许FRPC绑定您列出的端口,如果您不设置,则不会有任何限制
allow_ports = 39002,39001# frp日志配置
log_file = /var/log/frps.log
log_level = info
log_max_days = 3
设置和启动 frp 服务
sudo mkdir -p /etc/frp
sudo cp frps.ini /etc/frp
sudo cp frps /usr/bin
sudo cp systemd/frps.service /usr/lib/systemd/system/
sudo systemctl enable frps
sudo systemctl start frps

如果上述命令依次执行完毕没有出现任何错误,则说明frp服务已成功启动。

防火墙开放端口
# 添加监听端口
sudo firewall-cmd --permanent --add-port=7000/tcp
# 添加管理后台端口
sudo firewall-cmd --permanent --add-port=7500/tcp
sudo firewall-cmd --reload

注意:

  • 如果是 ubuntu 或者 centos 6,请使用 ufw/iptables 工具放行端口;
  • 7000和7500两个端口分别对应frps.ini配置中的bind_port和dashboard_port
验证服务端是否启动成功

访问: http://服务器IP:后台管理端口 ” ,输入用户名和密码可以查看连接状态

如: http://xx.xx.xx.xx:7500/ ,用户名和密码分别对应 frps.ini 文件中的 dashboard_user 和 dashboard_pwd

登录之后界面如下:

在这里插入图片描述
如果上述步骤没有问题,则说明 frp 的服务端配置成功了,也就意味着你已经成功完成了内网穿透的一半。

客户端配置

解压frp压缩包
tar -zxvf frp_0.33.0_linux_amd64.tar.gz
进入该解压目录:
cd frp_0.33.0_linux_amd64/
并打开配置文件:
vi frpc.ini  (注意哦,不是frps.ini)
将文件内容修改为如下:
# 客户端配置
[common]
server_addr = x.x.xx.xx
server_port = 7000token=chen123456987231456asdaqweqweadmin_addr = 127.0.0.1
admin_port = 7400
admin_user = admin
admin_pwd = 123456# 控制台或真实的日志文件路径,例如./frpc.log
log_file = ./frpc.log# trace, debug, info, warn, error
log_level = infolog_max_days = 3# 当 log_file 为 console 时禁用日志颜色,默认为 false
disable_log_color = false# 您的代理名称将更改为 {user}.{proxy}
user = wk# 现在支持tcp和kcp和websocket,默认是tcp
protocol = tcp# 如果tls_enable为true,frpc将通过tls连接frps
tls_enable = true[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 39002[web]
type = tcp
local_ip = 127.0.0.1
local_port = 80
remote_port = 39001
use_encryption = true
use_compression = true

注意:[ssh]这样的名称必须全局唯一,即使有多个客户端,也只能使用一次。其他名称可以使用[ssh2]、[ssh3]等。如果你要配置多个客户端,必须将其他客户端的名称改为[ssh2]、[ssh3],并相应地修改remote_port,例如6002、6003等

防火墙开放端口

linux:

sudo firewall-cmd --permanent --add-port=39001/tcp
sudo firewall-cmd --permanent --add-port=39002/tcp
sudo firewall-cmd --reload

客户端启动

在 frp_0.33.0_darwin_amd 64 目录下执行

./frpc -c frpc.ini

到此为止,恭喜你,你基本上已经成功了。但还有最后一步,很多人常常会弄错。

测试穿透是否配置成功

找另外一台不同网段的linux或者mac电脑,在终端执行

ssh 用户名@服务端ip -p 端口号

这里一定要注意,这里用的是服务端的ip和用户名,端口号用的frpc.ini文件中的remote_port

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

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

相关文章

分治算法——75. 颜色分类

文章目录 🌿0. 分治🌻1. 题目🌼2. 算法原理🌴3. 代码实现 🌿0. 分治 分治分治,顾名思义分而治之,将一个大问题转换成若干个子问题,再将这些子问题的基础上继续划分成更小的子问题&a…

PyQt基础_011_对话框类控件QMessage

基本功能 import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import *class WinForm( QWidget): def __init__(self): super(WinForm,self).__init__() self.setWindowTitle("QMessageBox") self.resize(300, 100) self.myButt…

EG20网口远程下载程序使用案例

EG20网口远程下载程序使用案例 前言:本文档主要说明了使用蓝蜂虚拟网络工具通过EG20网关的网口(LAN口)远程给PLC下载程序的步骤及其注意事项。使用蓝蜂虚拟网络工具,不仅支持程序的远程下载,同样支持程序的远程上传与…

【Node.js后端架构:MVC模式】基于expres讲解

Node.js后端架构:MVC模式 什么是MVC MVC (Model-View-Controller) 是一种软件设计模式,用于将应用程序的逻辑分离成三个不同的组件:模型、视图和控制器。 模型(Model)负责处理应用程序的数据逻辑。它负责从数据库或其…

JS事件循环详解

前言 进程 程序运行需要其专属的内存空间,可以把这块内存空间简单理解为进程。 下图每个颜色块都可视为一个应用,每个应用至少应有一个进程,进程之间相互独立,即使想要通信,也需要双方同意。 线程 有了进程后&…

二次元检测设备导轨修复指南

二次元检测设备是一种高精度的测量仪器,用于检测物体表面的形状、尺寸和精度等。直线导轨是二次元检测设备中最重要的组成部分之一,它的精度和稳定性直接影响到设备的测量结果和可靠性,因此,对导轨进行修复和保养是非常重要的。 直…

Linux删除了大文件为什么磁盘空间没有释放?

某天,收到监控系统的告警信息,说磁盘空间占用过高,登上服务器,使用 df -h 一看,发现磁盘占用率已经 96%了: 通过查看 /usr/local/nginx/conf/vhost/xxx.conf 找到 access_log 和 error_log 的路径&#x…

SDX12 上层应用gdb调试及环境搭建

SDX12 上层应用gdb调试及环境搭建 1. 问题背景2 环境搭建3 操作步骤4. 调试过程5 实现效果6 附录 1. 问题背景 上层应用在问题定位的过程中,现有手段只能有有限的log打印,通常情况下很难定位问题。如果想在应用程序执行的过程中查看任意调用关系或者数据…

6.1810: Operating System Engineering <Lab2 syscall: System calls>

课程链接:6.1810 / Fall 2023 一、本节任务 二、要点 操作系统要满足三要素:并发、隔离、交互(multiplexing, isolation, and interaction)。 宏内核(monolithic kernel):是操作系统核心架构…

temu上新待确认在哪里点

在Temu平台上,作为卖家,您可能需要上架新的商品以吸引更多的买家。下面是一般的步骤,但请注意,不同平台的操作可能略有不同,具体请参考Temu官方的帮助文档或联系客服。 先给大家推荐一款拼多多/temu运营工具——多多情…

pathlib --- 面向对象的文件系统路径

目录 基础使用 纯路径 通用性质 运算符 访问个别部分 方法和特征属性 具体路径 方法 对应的 os 模块的工具 3.4 新版功能. 源代码 Lib/pathlib.py 该模块提供表示文件系统路径的类,其语义适用于不同的操作系统。路径类被分为提供纯计算操作而没有 I/O 的 …

k8s部署jenkins

1.先决条件 1.因为国内的容器镜像加速器无法实时更新docker hub上的镜像资源.所以可以自己进行jenkins的容器镜像创建,. 2.这里用到了storageClass k8s的动态制备.详情参考: k8s-StoargClass的使用-基于nfs-CSDN博客 3.安装docker服务.(用于构建docker image) 2.构建jenki…

Mac右键添加通过VSCode打开

Mac右键添加通过VSCode打开 1 首先打开自动操作 进入方式 访达 – 应用程序 – 自动操作 2. 选择快速操作 3. 添加 最后 commands保存,可以输入自定义的名称 for f in "$" doopen -a "Visual Studio Code" "$f" done4. 找到保存的快…

KaiwuDB 多模数据库-时序性能优化

随着物联网领域的快速发展,时序数据的产生和处理需求不断增长。为了满足实时性、高效性和准确性的要求,数据库需要进行时序性能优化,以提供快速的数据写入、实时查询和高效的数据存储与处理能力。 本期直播介绍了时序数据和时序数据库特征以…

树莓派3B+ PCB叠层设计

板子废了&#xff0c;用电磨切了下&#xff0c;看看是什么叠层。 由于有BCM43455 WIFI芯片&#xff0c;这个是0.3ball 0.4pitch&#xff0c;肯定是要用盲孔布线的。 然后根据这个切面看&#xff0c;板子是6层的&#xff0c;外层内层铜厚应该是一样的 1-2层介质特别薄竟然<1o…

c语言练习13周(1~5)

输入任意整数n求以下公式和的平方根。 读取一系列的整数 X&#xff0c;对于每个 X&#xff0c;输出一个 1,2,…,X 的序列。 编写double fun(int a[M][M])函数&#xff0c;返回二维数组周边元素的平均值&#xff0c;M为定义好的符号常量。 编写double fun(int a[M])函…

小米智能摄像头mp4多碎片手工恢复案例

小米智能摄像头mp4多碎片手工恢复案例 智能摄像头目前在市场上极为常见&#xff0c;仅需要一张存储卡即可实现视频、音频的采集&#xff0c;同时可以通过手机APP进行远程控制&#xff0c;相比传统安防品牌成本更低、更容易部署。在智能摄像头品牌中小米算是绝对的大厂&#xf…

折扣因子的变化图(Python)

var 3 var_list [3] for _ in range(50):var * .95var_list.append(var)import matplotlib.pyplot as plt import numpy as np plt.plot(np.arange(len(var_list)), var_list, linewidth1) plt.show()

Mysql的分库分表

一、单Mysql节点 假如一主一从 为什么不能无限读&#xff1f; 瓶颈分析&#xff1a; 资源限制&#xff1a; 如CPU、内存、磁盘I/O、网络带宽等。随着读请求的增加&#xff0c;服务器的负载将会增加&#xff0c;甚至可能导致系统崩溃。 连接数限制&#xff1a; MySQL有最大连…

uniapp 使用web-view外接三方

来源 前阵子有个需求是需要在原有的项目上加入一个电子签名的功能&#xff0c;为了兼容性和复用性后面解决方法是将这个电子签名写在一个新的项目中&#xff0c;然后原有的项目使用web-view接入这个电子签名项目&#xff1b; 最近又有一个需求&#xff0c;是需要接入第三方的…