首页 > 系统相关 >frp内网穿透:基于centos8 云服务器和debian12客户端服务器

frp内网穿透:基于centos8 云服务器和debian12客户端服务器

时间:2024-04-05 23:56:00浏览次数:29  
标签:service frps frp toml frpc 服务器 内网

前言


入了一台本地工控机盒子,刷成了debian12系统,性能比云服务器要好一点,现在想要远程访问这台盒子,但是盒子又没有公网地址,所以想通过内网穿透的方式,通过云服务器转发请求实现内网穿透。原来体验了一下花生壳,感觉比较麻烦,于是还是想到了使用frp实现。现在记录下具体流程留作后续参考。

访问流程:本地主机ssh工具->云服务器指定映射端口->内网工控机服务器。

正文


  1. 物料准备
# 1. 有公网ip的云服务器 1 台 -- 部署 frp server端
# 2. 本地可以访问外网的工控机 1 台 -- 部署 frp client端
# 3. 另外一台电脑,作为 ssh client
  1. 下载安装包
    访问 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
  1. 服务端配置(云服务器)
    解压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
  1. 客户端配置(内网工控机服务器)
# 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官方中文文档)

标签:service,frps,frp,toml,frpc,服务器,内网
From: https://www.cnblogs.com/brian-sun/p/18117025

相关文章

  • vscode通过ssh连接服务器(吐血总结)
    一、通过ssh连接服务器1、打开vscode,进入拓展(Ctrl+Shift+X),下载拓展Remote-SSH。2、点击远程资源管理器选项卡,选择远程(隧道/SSH)类别。3、点击SSH配置。4、在中间上部分弹出的配置文件中点击第一个....config。5、在点进的config文件中输入以下内容。ps:这里的hostn......
  • 我们该怎么选择服务器?多大的服务器合适?
    我们在选择服务器时,需要考虑多个因素以确保服务器的性能、稳定性和成本效益符合我们的实际需求。以下是一些关键步骤和建议:京东云服务器,一年2G2H3M只需要50元!!进入活动会场:即将跳转京东云活动页面明确业务需求:评估企业的业务需求,包括数据量、访问量、处理速度等。这将......
  • 华为服务器RAID配置教程 服务器硬盘故障处理帮助 浪潮RAID配置教程 磁盘阵列配置通用
    前言(本文档持续更新)    本文主要记录服务器配置RAID(磁盘阵列)过程中存在的细节问题及官方文档无法解决的问题的解决方案配置环境    华为RH2288v3服务器配置RAID组如何快速配置    1.找到服务器品牌的阵列卡型号,找不到就搜型号的阵列卡型号的配......
  • 阿里云服务器无法远程连接
    一、问题由来使用远程连接工具操作阿里云服务器时,内存突然飙升到百分之八九十,然后突然服务器就连接不上啦,让人很是头大。  二、问题分析出现这个问题的原因,就是自己启动一个服务后,内存很快就满了,然后自己想关掉其中的一个服务,正准备关然后服务就连接不上了,初步判断不知道......
  • 【放假第1天】采购季倒计时 2G 50/年,4G 618/3年 云服务器选购攻略 阿里云 腾讯云 京
    ​更新日期:4月4日(阿里云价格回调,京东云采购季持续进行)《最新对比表》已更新在文章头部—腾讯云文档,文章具有时效性,请以腾讯文档为准!https://docs.qq.com/document/DV0RCS0lGeHdMTFFV?tab=000003当前活动:采购季,各厂商活动已更新,适用于博客建站(2-4G)、小型游戏(4-8G)、大型游戏......
  • 如何做到服务器之间的免密登录
    1.当A服务器访问B时,A服务器需要生成公钥和私钥2.A服务器把自己的公钥发送给B服务器,B服务器接收并加入白名单3.以后如果B服务器发送信息到A时,信息是根据公钥加密发送,保证了安全性,A服务器会接收到信息,根据私钥解密获取解密后的信息。 每次启动或者关闭hadoop会频繁输入密码,操作......
  • 【放假第一天】幻兽帕鲁 雾锁王国 我的世界 游戏云服务器选购指南 附最新价格对比表
    更新日期:4月4日(阿里云价格回调6个月无折扣,京东云采购季持续进行)本文纯原创,侵权必究【云服务器推荐】价格对比!阿里云京东云腾讯云选购指南视频截图《最新对比表》已更新在文章头部—腾讯云文档,文章具有时效性,请以腾讯文档为准!【腾讯文档实时更新】2024年-幻兽帕鲁服务......
  • 【服务器uwsgi + flask + nginx的搭建】
    目录服务器uwsgi+flask+nginx的搭建1.安装必要的软件2.启动nginx服务3.测试Nginx4.配置uwsgi和flask5.配置nginx服务器uwsgi+flask+nginx的搭建1.安装必要的软件安装Python、uWSGI、Flask和Nginx。#Ubuntu安装命令sudoapt-getupdatesudoap......
  • TCP客户端及服务器端开发实践
    一、TCP客户端及服务器端开发实践1、TCP网络应用程序开发分类①TCP客户端应用程序开发②TCP服务器端应用程序开发客户端程序是指运行在用户设备上的程序,服务端程序是指运行在服务器设备上的程序,专门为客户端提供数据服务。那如何记忆呢?主动发起建立连接请求的是客户端......
  • 可以取代宝塔和Nginx的Web服务器:Caddy
    一、安装官网文章:https://caddyserver.com/docs/install我们的服务器是Ubuntu,在官网上得到下述5条命令,复制粘贴后即可安装成功:sudoaptinstall-ydebian-keyringdebian-archive-keyringapt-transport-httpscurlcurl-1sLf'https://dl.cloudsmith.io/public/caddy/stable......