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

这篇具有很好参考价值的文章主要介绍了linux下frp客户端服务端部署(超详细)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

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

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

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

测试基本原理如下:

linux下frp客户端服务端部署(超详细)
  1. 从github上获取最新发布版程序

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

linux下frp客户端服务端部署(超详细)
  1. 在主机A上部署服务端

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

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

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

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

# 创建目录
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流多路复用,默认为true
tcp_mux = true

# frp管理后台端口
dashboard_port = 49154
# frp管理后台用户名和密码
dashboard_user = admin
dashboard_pwd = csf_pwd
# 允许服务监控
enable_prometheus = true
# frp日志配置
log_file = /srv/frp/log/frps.log
log_level = info
log_max_days = 3

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

[Unit]
Description=frps
After=network.target
Wants=network.target

[Service]
# 启动失败后重启服务
Restart=on-failure
# 重启间隔时间
RestartSec=5
# 修改为自己的frp目录,注意是frps
ExecStart=/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服务器部署完成并正常启动

linux下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客户端IP
local_ip = 127.0.0.1
# frp客户端ssh端口
local_port = 22
# 自定义ssh转发端口
remote_port = 55555

# 配置http服务,本文配置
[web]
type = http
# frp客户端IP
local_ip = 127.0.0.1
# frp客户端web服务端口
local_port = 49153
# frp服务端域名或者IP
custom_domains = xx.xx.xx.xx
# 自定义frp服务端端口,将本地80端口转出为公网ip端口的49153
local_port = 80
remote_port = 49153

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

Unit]
Description=frpc
After=network.target
Wants=network.target

[Service]
# 启动失败后重启服务
Restart=on-failure
# 重启间隔时间
RestartSec=5
# 修改为自己的frp目录,注意是frpc
ExecStart=/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转发出来,如下图所示

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

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

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

到这里整个frp的服务端以及客户端的部署就全部完成了,有问题的话欢迎评论区讨论~文章来源地址https://www.toymoban.com/news/detail-478248.html

到了这里,关于linux下frp客户端服务端部署(超详细)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • netty构建udp服务器以及发送报文到客户端客户端详细案例

    目录 一、基于netty创建udp服务端以及对应通道设置关键 二、发送数据 三、netty中的ChannelOption常用参数说明 1、ChannelOption.SO_BACKLOG 2、ChannelOption.SO_REUSEADDR 3、ChannelOption.SO_KEEPALIVE 4、ChannelOption.SO_SNDBUF和ChannelOption.SO_RCVBUF 5、ChannelOption.SO_LINGER 6、ChannelOption.TCP_NODELAY 以上代码中

    2024年04月09日
    浏览(74)
  • 奇安信天擎Linux客户端部署相关事项

    1)通过Windows平台浏览器访问天擎客户端在线下载页面:http://控制中心IP:80,获取在线安装包 2)在Linux系统下,直接使用wget命令下载在线安装包。 wget “http://控制台IP/download/setup/installer-linuxs(控制台IP _80).sh” 注意端口,不同版本可能不一样 Linux 默认服务接入端口为 30081(或

    2024年02月03日
    浏览(44)
  • 【Android】MQTT入门——服务器部署与客户端搭建

    MQTT(Message Queuing Telemetry Transport) 是一种基于发布/订阅模式的轻量级消息传输协议,专门针对低带宽、和不稳定网络环境的物联网应用而设计,它可以用极少的代码为互联网设备提供实时可靠的消息服务。 MQTT 协议主要用于物联网和移动设备等资源有限的场景中,其中包括

    2024年02月04日
    浏览(79)
  • 【Linux】虚拟机安装Linux、客户端工具及Linux常用命令(详细教程)

    目录 一、导言 1、引言 2、使用场景 二、Linux安装 1、安装 2、网络配置 2.1、查看网络配置 2.2、更改网络配置 三、安装客户端工具 1、介绍 2、安装MobaXterm 3、换源 4、拍照功能 四、常用命令          Linux 是一个开源的操作系统内核,它最初由芬兰计算机科学家 Linus Torva

    2024年02月06日
    浏览(73)
  • (二) 用QWebSocket 实现服务端和客户端(详细代码直接使用)

    目录 前言 一、服务器的代码: 1、服务器的思路 2、具体服务器的代码示例 二、客户端的代码: 1、客户端的思路(和服务器类似) 2、具体客户端的代码示例 前言         要是想了解QWebSocket的详细知识,还得移步到上一篇文章: WebSocket 详解,以及用QWebSocket 实现服务端

    2024年01月20日
    浏览(41)
  • Linux中UDP服务端和客户端

    2024年02月13日
    浏览(43)
  • linux syslog日志转发服务端、客户端配置

    syslog服务器 1、#开启远程UDP模块 sed -ri \\\"s/^#(.*imudp)/1/\\\" /etc/rsyslog.conf sed -ri \\\"s/^#(.*UDPServerRun 514)/1/\\\" /etc/rsyslog.conf 2、#开启远程TCP模块 sed -ri \\\"s/^#(.*imtcp)/1/\\\" /etc/rsyslog.conf sed -ri \\\"s/^#(.*InputTCPServerRun 514)/1/\\\" /etc/rsyslog.conf 配置日志目录 vim   /etc/rsyslog.conf 在最下面添加两行 $template

    2024年02月07日
    浏览(31)
  • 【Linux】TCP的服务端(守护进程) + 客户端

    上一节,我们用了udp写了一个服务端和客户端之间通信的代码,只要函数了解认识到位,上手编写是很容易的。 本章我们开始编写tcp的服务端和客户端之前通信的代码,要认识一批新的接口,并将我们之前学习的系统知识加进来,做到融会贯通… 代码详情:👉 Gitee 对于TC

    2024年02月08日
    浏览(43)
  • NFS服务器简介、在Linux上搭建NFS服务器和客户端,Linux上使用auto(autofs)进行NFS客户端自动挂载和卸载详解

    目录 一.NFS服务器简介 1.含义简介: 2.工作原理简介: 3.RPC服务与NFS服务配合使用 二.NFS配置文件参数命令介绍 1.主配置文件/etc/exports 2.日志文件/var/lib/nfs/ 3.showmount命令 三.主配置文件/etc/exports挂载写法 1.配置nfs服务端和客户端 2.windows客户端挂载测试 3.权限介绍 (1)rw/ro,服

    2024年02月04日
    浏览(53)
  • frp内网穿透保姆级配置流程,让客户端电脑可以通过域名或者IP访问本地程序接口

    下载地址:https://github.com/fatedier/frp/releases 1、server_addr中的IP是个人云服器的IP 2、custom_domains是可以使用域名访问 3、adtech.test.link.???.com的域名解析ip是124.221.248.68,这样配置后相当于,adtech.test.link.???.com访问443端口或者8081端口时,就会被转发到客户端 4、frpc.ini是客户端配置文

    2024年02月07日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包