实战:FRP内网穿透部署-支持ssh、web访问

目录

    • 1 准备工作
      • 2 公网服务器部署server端
        • 2.1 frps.ini配置
      • 3 内网客户端部署client端
        • 3.1 frpc.ini配置(内网服务器01)
        • 3.2 frpc.ini配置(内网服务器02)
      • 4 服务启动脚本
        • 4.1 公网服务器 server
        • 4.2 内网服务器 client
    • 2 systemctl常见命令
    • 3 FRP监控页面查看

1 准备工作

  • linux系统
  • frp 0.48版本,下载链接
  • 1台具有公网IP访问的服务器
  • 2台内网服务器

2 公网服务器部署server端

  • 目录 /opt/frp
    在这里插入图片描述
2.1 frps.ini配置
[common]
# FRP 服务端监听的端口,用于与客户端通信
bind_port = 7070# 启用状态监控(可选)
dashboard_port = 7550
dashboard_user = admin
dashboard_pwd = admin

3 内网客户端部署client端

  • 目录 /opt/frp
  • 同一个frp压缩包解压后的东西,与server端一样
    在这里插入图片描述
3.1 frpc.ini配置(内网服务器01)
[common]
#server地址,公网地址
server_addr = xxx.xxx.xxx.xxx
#server端口
server_port = 7070[服务器01]
#一般tcp就行了
type = tcp
#绑定的ip,通常是本机,也可以是局域网的地址
local_ip = 127.0.0.1
#ssh的服务就22端口,也可以转发到其他端口,实现远程访问mysql、web之类的
local_port = 22
#要绑定的远程机器的端口,有防火墙的记得放行
remote_port = 21001[web01]
#一般tcp就行了
type = tcp
#绑定的ip,通常是本机,也可以是局域网的地址
local_ip = 127.0.0.1
#web
local_port = 7777
#要绑定的远程机器的端口,有防火墙的记得放行
remote_port = 27777
3.2 frpc.ini配置(内网服务器02)
[common]
#server地址,公网地址
server_addr = xxx.xxx.xxx.xxx
#server端口
server_port = 7070[服务器01]
#一般tcp就行了
type = tcp
#绑定的ip,通常是本机,也可以是局域网的地址
local_ip = 127.0.0.1
#ssh的服务就22端口,也可以转发到其他端口,实现远程访问mysql、web之类的
local_port = 22
#要绑定的远程机器的端口,有防火墙的记得放行
remote_port = 21002

4 服务启动脚本

  • 为了让 FRP 服务端和客户端在系统重启后自动启动,可以将其配置为系统服务。
4.1 公网服务器 server
  • 创建系统服务文件
sudo nano /etc/systemd/system/frps.service
  • 添加以下内容
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /opt/frp/frps -c /opt/frps.ini
Restart=always
RestartSec=5
StartLimitInterval=0[Install]
WantedBy = multi-user.target
  • 启动服务
sudo systemctl enable frps
sudo systemctl start frps
4.2 内网服务器 client
  • 两台服务器操作一样
  • 创建系统服务文件
sudo nano /etc/systemd/system/frpc.service
  • 添加以下内容
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /opt/frp/frpc -c /opt/frpc.ini
Restart=always
RestartSec=5
StartLimitInterval=0[Install]
WantedBy = multi-user.target
  • 启动服务
sudo systemctl enable frpc
sudo systemctl start frpc

2 systemctl常见命令

# 重新加载 systemd 管理的服务配置文件
sudo systemctl daemon-reload
# 启动 FRP 客户端服务
sudo systemctl start frpc
# 启用 FRP 客户端的开机自启动。
sudo systemctl enable frpc
# 停止 FRP 客户端服务。
sudo systemctl stop frpc
# 重启 FRP 客户端服务。
sudo systemctl restart frpc
# 查看 FRP 客户端状态
sudo systemctl status frpc
# 查看 FRP 客户端日志
sudo journalctl -u frpc

3 FRP监控页面查看

在这里插入图片描述

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

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

相关文章

Uniapp中实现加载更多、下拉刷新、返回顶部功能

一、加载更多: 在到达底部时,将新请求过来的数据追加到原来的数组即可: import {onReachBottom } from "dcloudio/uni-app";const pets ref([]); // 显示数据function network() {uni.request({url: "https://api.thecatap…

C# 多线程 Task TPL任务并行

先总结一下 之前发展过程的要点 1: 为了保证多线程正确顺序执行 线程同步 2: 为了节省操作系统线程资源 线程池 异步 方式管理 正常来讲 使用这俩个要点 进行使用 多线程可以满足开发使用需求 但是 新的问题产生了 那就是 多个异步操作 需要编写大量的代…

C++单例模式的设计

单例模式(Singleton Pattern)是一种设计模式,用于确保一个类只有一个实例,并提供一个全局访问点来访问该实例。在C中,单例模式通常用于管理全局资源或共享状态。 以下是C中实现单例模式的几种常见方式: 懒…

HBASE学习(一)

1.HBASE基础架构, 1.1 参考: HBase集群架构与读写优化:理解核心机制与性能提升-CSDN博客 1.2问题: 1.FLUSH对hbase的影响 2. HLog和memstore的区别 hlog中存储的是操作记录,比如写、删除。而memstor中存储的是写入…

Flutter:封装ActionSheet 操作菜单

演示效果图 action_sheet_util.dart import package:ducafe_ui_core/ducafe_ui_core.dart; import package:flutter/material.dart; import package:demo/common/index.dart;class ActionSheetUtil {/// 底部操作表/// [context] 上下文/// [title] 标题/// [items] 选项列表 …

【Rust练习】28.use and pub

练习题来自:https://practice-zh.course.rs/crate-module/use-pub.html 1 使用 use 可以将两个同名类型引入到当前作用域中,但是别忘了 as 关键字. use std::fmt::Result; use std::io::Result;fn main() {}利用as可以将重名的内容取别名:…

Nginx 可观测性最佳实践

Nginx 介绍 Nginx 是一个开源、轻量级、高性能的 HTTP 和反向代理服务器,也可以用于 IMAP/POP3 代理服务器。Nginx 因其采用的异步非阻塞工作模型,使其具备高并发、低资源消耗的特性。高度模块化设计也使得 Nginx 具备很好的扩展性,在处理静…

《汽车维护与修理》是什么级别的期刊?是正规期刊吗?能评职称吗?

​问题解答: 问:《汽车维护与修理》是不是核心期刊? 答:不是,是知网收录的正规学术期刊。 问:《汽车维护与修理》级别? 答:国家级。主管单位:中国汽车维修行业协会 …

PHP智慧小区物业管理小程序

🌟智慧小区物业管理小程序:重塑社区生活,开启便捷高效新篇章 🌟 智慧小区物业管理小程序是一款基于PHPUniApp精心雕琢的智慧小区物业管理小程序,它犹如一股清新的科技之风,吹进了现代智慧小区的每一个角落…

洛谷P4868 Preprefix sum

洛谷传送门 题目描述 前缀和(prefix sum)𝑆𝑖。 前前缀和(preprefix sum)则把 𝑆𝑖 作为原序列再进行前缀和。记再次求得前缀和第 𝑖 个是 𝑆&#x1d446…

机器学习中的凸函数和梯度下降法

一、凸函数 在机器学习中,凸函数 和 凸优化 是优化问题中的重要概念,许多机器学习算法的目标是优化一个凸函数。这些概念的核心思想围绕着优化问题的简化和求解效率。下面从简单直观的角度来解释。 1. 什么是凸函数? 数学定义 一个函数 f…

vue3使用vue-native-websocket-vue3通讯

vue3使用vue-native-websocket-vue3通讯 插件使用一、启用Vuex集成1.在mian.js中2.store/index.js文件中3.要websocket使用的页面 二、启用Piain集成1.在mian.js中2.根目录下创建store文件夹,分别创建PiniaType.ts,store.ts,useSocketStore.t…

Windows图形界面(GUI)-QT-C/C++ - Qt控件与布局系统详解

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 目录 Qt布局系统(Layouts) 布局管理器基础 高级布局技巧 嵌套布局 设置间距和边距 常用控件详解 按钮类控件 QPushButton (标准按钮) QRadioButton (单选按钮) QCheckBox (复选框) …

深入理解 ECMAScript 2024 新特性:字符串 isWellFormed 方法

ECMAScript 2024 引入了一个新的字符串实例方法:String.prototype.isWellFormed。这一新增功能是为了帮助开发者更容易地验证字符串是否为有效的 Unicode 文本。本文将详细介绍这一方法的使用场景、实现原理及其在实际应用中的价值。 String.prototype.isWellFormed…

[Linux]Docker快速上手操作教程

前言 以下命令并不是docker的所有,仅涉及日常使用时最最常用的命令。 目的之一时给入门的朋友熟悉学习,其二时我自己偶尔使用时备忘。 一、概念 简单介绍下docker的相关概念: 镜像:Docker 镜像是一个轻量级、可执行的独立软件…

【算法学习笔记】32:筛法求解欧拉函数

上节学习的是求一个数 n n n的欧拉函数,因为用的试除法,所以时间复杂度是 O ( n ) O(\sqrt{n}) O(n ​),如果要求 m m m个数的欧拉函数,那么就会花 O ( m n ) O(m \sqrt{n}) O(mn ​)的时间。如果是求连续一批数的欧拉函数&#x…

生产管理看板助力节能科技公司实现数据自动化管理

在节能科技公司的生产过程中,数据管理的自动化是提高生产效率和产品质量的关键。然而,许多公司在数据记录、展示、对比和存档方面仍面临诸多痛点,如产品检测数据无法自动记录、缺乏直观的产线状态展示、检测数据对比繁琐耗时,以及…

leetcode 115. 不同的子序列

题目:115. 不同的子序列 - 力扣(LeetCode) 动态规划问题,f[i][j]表示s的第i个元素匹配到t的第j个元素,有多少种结果 f[i][j] f[i - 1][j] (s[i] t[j] ? f[i - 1][j - 1] : 0) 答案就是 f[s.length() - 1][t.len…

【C++】B2112 石头剪子布

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯题目描述游戏规则:输入格式:输出格式:输入输出样例:解题分析与实现 💯我的做法实现逻辑优点与不足 &#x1f4af…

内存快照:宕机后Redis如何实现快速恢复?

文章目录 给哪些内存数据做快照?快照时数据能修改吗?可以每秒做一次快照吗?小结每课一问 更多redis相关知识 上节课,我们学习了 Redis 避免数据丢失的 AOF 方法。这个方法的好处,是每次执行只需要记录操作命令,需要持…