返回顶部
首页 > 资讯 > 操作系统 >linux下frp客户端服务端部署(超详细)
  • 683
分享到

linux下frp客户端服务端部署(超详细)

linux运维服务器Poweredby金山文档 2023-09-02 07:09:37 683人浏览 八月长安
摘要

实际需求:实时远程项目现场的arm工控机的ssh以及应用的WEB页面 现场环境:arm工控机可以通过4g路由器上网,但是使用普通流量卡没有公网IP,无法直接通过公网IP来访问设备的ssh以及web服务 应用技术:内网穿透,反向代理 开

实际需求:实时远程项目现场的arm工控机的ssh以及应用的WEB页面

现场环境:arm工控机可以通过4g路由器上网,但是使用普通流量卡没有公网IP,无法直接通过公网IP来访问设备的ssh以及web服务

应用技术:内网穿透,反向代理

开源软件:frp,可以支持 tcp, udp, Http, https的反向代理

本次测试你需要准备:一个具有公网IP的linux服务器(主机A),一个可以上网的arm工控机(主机B)

测试基本原理如下:

  1. GitHub上获取最新发布版程序

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

  1. 在主机A上部署服务端

注意:在部署之前请确保下文中的端口在具有公网IP的服务器上开放

我的阿里云开放端口如上图所示。

下面一些列操作目的是让程序在服务端部署启动,并设置为开机自启动

# 创建目录sudo mkdir -p /srv/frp# 拷贝sudo mv ~/frp_0.43.0_linux_amd64.tar.gz /srv/frp/# 解压sudo tar -zxvf frp_0.43.0_linux_amd64.tar.gz# 修改frps.ini,frps.ini文件见下sudo vim /srv/frp/frp_0.43.0_linux_amd64/frps.ini# 配置frps frp server开机自启,frps.service文件内容在下面sudo vim /etc/systemd/system/frps.service# 创建日志保存文件夹sudo mkdir /srv/frp/log# 刷新服务列表sudo systemctl daemon-reload# 设置开机自启sudo systemctl enable frps.service# 启动服务sudo systemctl start frps.service

下面是启动服务依赖frps.ini文件的配置,文件位置/srv/frp_0.43.0_linux_amd64/frps.ini(将原文件覆盖)

[common]# frp对客户端的服务端口bind_port = 49152# token,客户端会用到,改的复杂些token = csf_token# 访问frp客户端web服务的端口vhost_http_port = 49153# pool_count(下限),max_pool_count(上限)max_pool_count = 50# tcp流多路复用,默认为truetcp_mux = true# frp管理后台端口dashboard_port = 49154# frp管理后台用户名和密码dashboard_user = admindashboard_pwd = csf_pwd# 允许服务监控enable_prometheus = true# frp日志配置log_file = /srv/frp/log/frps.loglog_level = infolog_max_days = 3

下面是自启动服务依赖frps.service文件的配置,文件位置/etc/systemd/system/frps.service(需要新建)

[Unit]Description=frpsAfter=network.targetWants=network.target[Service]# 启动失败后重启服务Restart=on-failure# 重启间隔时间RestartSec=5# 修改为自己的frp目录,注意是frpsExecStart=/srv/frp/frp_0.43.0_linux_amd64/frps -c /srv/frp/frp_0.43.0_linux_amd64/frps.ini[Install]WantedBy=multi-user.target

在执行完上述的脚本之后,在浏览器上输入你服务器的公网IP端口号49154(例如1.1.1.1:49154)

如果能够看到下面网页就代表frp服务器部署完成并正常启动

  1. arm工控机客户端部署

首先在arm工控机上尝试ping一下公网ip和frp服务端口,确认ip以及端口是可以访问的

ping ip

telnet ip port

下载对应的arm版本发布版本,然后执行下面脚本

# 创建目录sudo mkdir -p /srv/frp# 拷贝sudo mv ~/frp_0.43.0_linux_arm.tar.gz /srv/frp/# 解压sudo tar -zxvf frp_0.43.0_linux_arm.tar.gz# 修改frpc.ini,frpc.ini文件见下sudo vim /srv/frp/frp_0.43.0_linux_arm/frpc.ini# 配置frpc frp client开机自启,frpc.service文件内容在下面sudo vim /etc/systemd/system/frpc.service# 刷新服务列表sudo systemctl daemon-reload# 设置开机自启sudo systemctl enable frpc.service# 启动服务sudo systemctl start frpc.service

下面是客户端服务frpc.ini文件的配置,文件位置srv/frp_0.43.0_linux_arm/frpc.ini

[common]server_addr = xx.xx.xx.xx# 与frps.ini的bind_port一致server_port = 49152# 与frps.ini的token一致token = csf_token# 配置ssh服务,本文未配置[ssh]type = tcp# frp客户端IPlocal_ip = 127.0.0.1# frp客户端ssh端口local_port = 22# 自定义ssh转发端口remote_port = 55555# 配置http服务,本文配置[web]type = http# frp客户端IPlocal_ip = 127.0.0.1# frp客户端web服务端口local_port = 49153# frp服务端域名或者IPcustom_domains = xx.xx.xx.xx# 自定义frp服务端端口,将本地80端口转出为公网ip端口的49153local_port = 80remote_port = 49153

下面是arm客户端配置自启动frpc.service,文件位置/etc/systemd/system/frpc.service

Unit]Description=frpcAfter=network.targetWants=network.target[Service]# 启动失败后重启服务Restart=on-failure# 重启间隔时间RestartSec=5# 修改为自己的frp目录,注意是frpcExecStart=/srv/frp/frp_0.43.0_linux_arm/frpc -c /srv/frp/frp_0.43.0_linux_arm/frpc.ini[Install]WantedBy=multi-user.target

关于系统自启动相关的服务命令汇总

服务端

# 停止服务sudo systemctl stop frps.service# 启动服务sudo systemctl start frps.service# 重启服务sudo systemctl restart frps.service# 查看状态sudo systemctl status frps.service# 查看是否设置开机自启sudo systemctl is-enabled frps.service# 关闭开机自启sudo systemctl disable frps.service

客户端

# 停止服务sudo systemctl stop frpc.service# 启动服务sudo systemctl start frpc.service# 重启服务sudo systemctl restart frpc.service# 查看状态sudo systemctl status frpc.service# 查看是否设置开机自启sudo systemctl is-enabled frpc.service# 关闭开机自启sudo systemctl disable frpc.service
  1. 测试结果

ssh服务可以通过公网IP端口55555转发出来,如下图所示

web页面可以通过端口49153转发出来,如下图所示

到这里整个frp的服务端以及客户端的部署就全部完成了,有问题的话欢迎评论区讨论~

来源地址:https://blog.csdn.net/vipdafei/article/details/129364506

--结束END--

本文标题: linux下frp客户端服务端部署(超详细)

本文链接: https://lsjlt.com/news/390132.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作