frp内网穿透:基于centos8 云服务器和debian12客户端服务器
前言
入了一台本地工控机盒子,刷成了debian12系统,性能比云服务器要好一点,现在想要远程访问这台盒子,但是盒子又没有公网地址,所以想通过内网穿透的方式,通过云服务器转发请求实现内网穿透。原来体验了一下花生壳,感觉比较麻烦,于是还是想到了使用frp实现。现在记录下具体流程留作后续参考。
访问流程:本地主机ssh工具->云服务器指定映射端口->内网工控机服务器。
正文
- 物料准备
# 1. 有公网ip的云服务器 1 台 -- 部署 frp server端
# 2. 本地可以访问外网的工控机 1 台 -- 部署 frp client端
# 3. 另外一台电脑,作为 ssh client
- 下载安装包
访问 https://github.com/fatedier/frp/releases找到最新的安装包

图中 darwin 是 macos 系统,freebsd 是 freebsd 系统。根据需要,我的云服务器是x86_64 linux,所以我下载的版本是linux_amd64。
下载完成后,tar包中文件如下:
.
├── frpc
├── frpc.toml
├── frps
├── frps.toml
└── LICENSE
其中:
frpc 是作为 frp client 用的,frpc.toml 是 frpc 对应的配置文件;
frps 是作为 frp server 用的,frps.toml 是 frps 对应的配置文件。
只需要把这个tar包分别在 云服务器 和 本地工控机服务器 解压后,运行不同的指令即可。
PS: frpc 和 frps 都是编译好的二进制可执行文件,不依赖go环境,所以不需要准备更多环境,只需要简单测试可执行即可。
# 云服务器
./frps -c frps.toml
# 内网工控机服务器
./frpc -c frpc.toml
- 服务端配置(云服务器)
解压tar包到本地
# mkdir frp,然后把压缩包放到这个目录,当然,也可以是其他目录
tar -zxvf frp_0.56.0_linux_amd64.tar.gz
cd frp_0.56.0_linux_amd64
# 试运行
./frps -c frps.toml
修改 server 端配置文件 frps.toml
# 为客户端开放的访问端口,可以修改成自定义端口号,如 27000
bindPort = 7000
# web 页面配置
# 默认为 127.0.0.1,如果需要公网访问,需要修改为 0.0.0.0;
# 端口号可以改成自定义端口号,如 27500
webServer.addr = "0.0.0.0"
webServer.port = 7500
# dashboard 用户名密码,可选,默认为空
webServer.user = "用户名"
webServer.password = "密码"
修改完毕后,启动服务
frps -c frps.toml
打开云服务器控制台,配置防火墙规则,开放tcp端口 7000 和 7500,这一步很重要。
打开浏览器,访问 http://云服务器ip:7500, 输入用户名和密码后,即可进入web页面。
systemd配置(服务开启自启动)
touch frps.service
编辑 frps.service
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /frps所在文件夹路径/frps -c /frps所在文件夹路径/frps.toml
[Install]
WantedBy = multi-user.target
生效并运行 frps.service
cp ./frps.service /etc/systemd/system/
# 刷新 service 配置文件服务
systemctl daemon-reload
# 允许 frps.service 开启启动
systemctl enable frps.service
# 运行 frps.service
systemctl start frps.service
# 查看 frps.service 状态
systemctl status frps.service
# 可见 frps.service enabled 以及 active,允许开机启动并且运行正常
# ● frps.service - frp server
# Loaded: loaded (/etc/systemd/system/frps.service; enabled; vendor preset: disabled)
# Active: active (running) since Fri 2024-04-05 22:48:32 CST; 57min ago
- 客户端配置(内网工控机服务器)
# mkdir frp,然后把压缩包放到这个目录,当然,也可以是其他目录
tar -zxvf frp_0.56.0_linux_amd64.tar.gz
cd frp_0.56.0_linux_amd64
# 试运行
./frpc -c frpc.toml
修改 client 端配置文件 frpc.toml
serverAddr = "云服务器公网ip"
# 上面 frps 中配置的 bindPort
serverPort = 7000
# web 配置
# 只允许本地访问,如果想要允许远程访问,需要改为 0.0.0.0
webServer.addr = "127.0.0.1"
webServer.port = 7400
webServer.user = "admin"
webServer.password = "admin"
[[proxies]]
# 内网工控机服务器需要映射的端口
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
# sshd server配置的端口号
localPort = 22
# 映射到云服务器的端口号
remotePort = 6000
修改完毕后,启动服务
frpc -c frpc.toml
在终端机服务器访问 http://127.0.0.1:7400 可以看到详情
打开云服务器控制台,配置防火墙规则,开放tcp端口 6000,这一步的目的是,本地ssh终端访问云服务器6000端口,frps 服务会将云服务器的6000端口转发给内网终端机的22端口,这样实现 ssh 登录的目的。
使用电脑的ssh终端访问:
ssh -o Port=6000 内网终端机服务器用户名@云服务器ip
# 或者
ssh 内网终端机服务器用户名@云服务器ip -p 6000
即可通过云服务器frps服务ssh登录到内网工控机服务器上去。
systemd配置(服务开启自启动)
touch frpc.service
编辑 frpc.service
[Unit]
# 服务名称,可自定义
Description = frp client
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /frpc所在文件夹路径/frpc -c /frpc所在文件夹路径/frpc.toml
[Install]
WantedBy = multi-user.target
生效并运行 frpc.service
cp ./frpc.service /etc/systemd/system/
# 刷新 service 配置文件服务
systemctl daemon-reload
# 允许 frpc.service 开启启动
systemctl enable frpc.service
# 运行 frpc.service
systemctl start frpc.service
# 查看 frpc.service 状态
systemctl status frpc.service
# 可见 frpc.service enabled 以及 active,允许开机启动并且运行正常
# ● frpc.service - frp client
# Loaded: loaded (/etc/systemd/system/frpc.service; enabled; preset: enabled)
# Active: active (running) since Fri 2024-04-05 23:33:59 CST; 14min ago
参考
[1]. frp实现内网穿透(超详细!)
[2]. https://gofrp.org/zh-cn/docs(frp官方中文文档)
frp内网穿透:基于centos8 云服务器和debian12客户端服务器的更多相关文章
- Frp内网穿透搭建,家庭主机对外提供接口,支持ssh访问
Frp内网穿透搭建,家庭主机对外提供接口,支持ssh访问 1.使用场景: 需求1.家中服务器 ubuntu 主机,跑接口服务,需要对外暴漏, 需求2.同时需要在外网ssh远程 关键词: frp内网 ...
- frp内网穿透(已验证)
# 云服务器frp内网穿透教程 软件源码在https://github.com/fatedier/frp/releases上,根据系统类型,按需下载 教程术语描述 > A 是有固定IP的云服务器 ...
- frp内网 穿透映射使内网svn可外网访问
起因 公司svn目前部署在内网服务器上,现在想在家中也可以使用,因此需要外网访问内网的工具 经过 使用过几个产品: utools,一个小巧的windows下的工具,内网映射只是它的一个小功能,支持tc ...
- 树莓派FRP内网穿透及自启动
内网穿透的步骤和文件存档 实验室在远方部署了电脑主机来采集数据和图片,每次去调试会很麻烦,因而使用FRP内网穿透使得我们可以在实验室访问主机. 主要功能 实现远程可访问和开机自启FRP程序服务 安装和 ...
- 【网络】内网穿透方案&FRP内网穿透实战(基础版)
目录 前言 方案 方案1:公网 方案2:第三方内网穿透软件 花生壳 cpolar 方案3:云服务器做反向代理 FRP简介 FRP资源 FRP原理 FRP配置教程之SSH 前期准备 服务器配置 下载FR ...
- 网络安全之frp内网穿透
前言 内网穿透,也即 NAT 穿透,进行 NAT 穿透是为了使具有某一个特定源 IP 地址和源端口号的数据包不被 NAT 设备屏蔽而正确路由到内网主机 环境需求 一台公网服务器(linux操作系统) ...
- frp 内网穿透访问内网Web服务
ps:最近想要通过域名(公网)访问或者测试在本地搭建的 web 服务(不想在公网IP服务器上再部署个服务,也不想通过teamview等工具远程卡到爆!), 由于本地机器没有公网 IP,无法将域名解析到 ...
- [svc]frp内网穿透
什么是穿透 可以任意暴漏内网任何服务,加入你在你的办公网络有台pc,可以上网就可以了, 你可以在你电脑上安装各类服务器, 暴漏如80 22等端口, 注意 这可以暴漏到公网哦, 在出口不做任何nat情况 ...
- frp内网穿透
原理 frp(fast reverse proxy)分为Server端和Client端,Server端安装在带有公网IP的服务器上,Client安装在内网环境但能上网的普通PC中. 流程: Serve ...
- frp内网穿透实战
什么是frp frp是一个使用非常简单的开源内网穿透软件,代码地址:https://github.com/fatedier/frp ,使用条前提你需要有一台公网服务器,大致原理是:公网服务器监听某个端 ...
随机推荐
- CompletableFuture学习总结
CompletableFuture 简介 在Java8中,CompletableFuture提供了非常强大的Future的扩展功能,可以帮助我们简化异步编程的复杂性,并且提供了函数式编程的能力,可以通 ...
- 纯JS实现多张图片无缝滚动和多张图片上下滚动的效果--JavaScript实例集锦(初学)
我们会看到很多的网站上会使用多张图片无缝滚动的效果. 下面我就介绍几种纯JS实现多张图片的无缝滚动,并实现鼠标移到图片上运动停止的效果,可以控制图片左右滚动.1.效果展示: 代码实现: <!DO ...
- 不同模式下删除Oracle数据表的三个实例
首发微信公众号:SQL数据库运维 原文链接:https://mp.weixin.qq.com/s?__biz=MzI1NTQyNzg3MQ==&mid=2247485212&idx=1 ...
- C语言:ACLLIB图形库——如何搭建环境(附三个文件代码)
看一下我配置完的运行结果: 1)首先创建一个项目. 2)选择win项目和C语言 3)然后找到你保存项目的文件夹里面拷贝两个.c和.h文件,两个文件代码我附在最后. 4)现在还不能用,找到项目属性 5) ...
- Python基础篇(安装)
Python简介 Python是Guido van Rossum发布于1991年的一种计算机程序设计语言.是一种动态的.面向对象的脚本语言,是一种解释型的,弱类型的高级计算机语言.需要注意的是pyth ...
- 🔥 Java Solon v2.7.6 发布
Java Solon 是什么框架? Java "新的"应用开发框架.开放原子开源基金会,孵化项目.从零开始构建(非 java-ee 架构),有灵活的接口规范与开放生态. 追求: 更 ...
- docker之docker-compose
docker-compose就是个二进制的工具,它可以单机编排,批量管理多个容器 [root@mcwk8s01 harbor]# file /usr/local/bin/docker-compose ...
- kubernetes之Secret和Configmap
创建和查询Secret literal 播报 编辑 讨论 上传视频literal是一个英语单词,形容词,意思是文字的:逐字的:无夸张的. [1] 通过--from-literal创建以及查看 [mac ...
- sass语法嵌套规则与注释讲解
语法嵌套规则 选择器嵌套 例如有这么一段css,正常CSS的写法 .container{width:1200px; margin: 0 auto;} .container .header{height ...
- 2024 CISCN WEB 部分wp
前言 第二天的revenge真是绷不住,出的很好,下次多出点revenge. ezjava 简要介绍 sqlite jdbc...真的没想到,写文件覆盖写了半天,结果是个CVE...,给的很多东西都是 ...