当前位置:   article > 正文

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

linux frp

实际需求:实时远程项目现场的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的服务器上开放

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

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

  1. # 创建目录
  2. sudo mkdir -p /srv/frp
  3. # 拷贝
  4. sudo mv ~/frp_0.43.0_linux_amd64.tar.gz /srv/frp/
  5. # 解压
  6. sudo tar -zxvf frp_0.43.0_linux_amd64.tar.gz
  7. # 修改frps.ini,frps.ini文件见下
  8. sudo vim /srv/frp/frp_0.43.0_linux_amd64/frps.ini
  9. # 配置frps frp server开机自启,frps.service文件内容在下面
  10. sudo vim /etc/systemd/system/frps.service
  11. # 创建日志保存文件夹
  12. sudo mkdir /srv/frp/log
  13. # 刷新服务列表
  14. sudo systemctl daemon-reload
  15. # 设置开机自启
  16. sudo systemctl enable frps.service
  17. # 启动服务
  18. sudo systemctl start frps.service

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

  1. [common]
  2. # frp对客户端的服务端口
  3. bind_port = 49152
  4. # token,客户端会用到,改的复杂些
  5. token = csf_token
  6. # 访问frp客户端web服务的端口
  7. vhost_http_port = 49153
  8. # pool_count(下限),max_pool_count(上限)
  9. max_pool_count = 50
  10. # tcp流多路复用,默认为true
  11. tcp_mux = true
  12. # frp管理后台端口
  13. dashboard_port = 49154
  14. # frp管理后台用户名和密码
  15. dashboard_user = admin
  16. dashboard_pwd = csf_pwd
  17. # 允许服务监控
  18. enable_prometheus = true
  19. # frp日志配置
  20. log_file = /srv/frp/log/frps.log
  21. log_level = info
  22. log_max_days = 3

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

  1. [Unit]
  2. Description=frps
  3. After=network.target
  4. Wants=network.target
  5. [Service]
  6. # 启动失败后重启服务
  7. Restart=on-failure
  8. # 重启间隔时间
  9. RestartSec=5
  10. # 修改为自己的frp目录,注意是frps
  11. ExecStart=/srv/frp/frp_0.43.0_linux_amd64/frps -c /srv/frp/frp_0.43.0_linux_amd64/frps.ini
  12. [Install]
  13. 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版本发布版本,然后执行下面脚本

  1. # 创建目录
  2. sudo mkdir -p /srv/frp
  3. # 拷贝
  4. sudo mv ~/frp_0.43.0_linux_arm.tar.gz /srv/frp/
  5. # 解压
  6. sudo tar -zxvf frp_0.43.0_linux_arm.tar.gz
  7. # 修改frpc.ini,frpc.ini文件见下
  8. sudo vim /srv/frp/frp_0.43.0_linux_arm/frpc.ini
  9. # 配置frpc frp client开机自启,frpc.service文件内容在下面
  10. sudo vim /etc/systemd/system/frpc.service
  11. # 刷新服务列表
  12. sudo systemctl daemon-reload
  13. # 设置开机自启
  14. sudo systemctl enable frpc.service
  15. # 启动服务
  16. sudo systemctl start frpc.service

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

  1. [common]
  2. server_addr = xx.xx.xx.xx
  3. # 与frps.ini的bind_port一致
  4. server_port = 49152
  5. # 与frps.ini的token一致
  6. token = csf_token
  7. # 配置ssh服务,本文未配置
  8. [ssh]
  9. type = tcp
  10. # frp客户端IP
  11. local_ip = 127.0.0.1
  12. # frp客户端ssh端口
  13. local_port = 22
  14. # 自定义ssh转发端口
  15. remote_port = 55555
  16. # 配置http服务,本文配置
  17. [web]
  18. type = http
  19. # frp客户端IP
  20. local_ip = 127.0.0.1
  21. # frp客户端web服务端口
  22. local_port = 49153
  23. # frp服务端域名或者IP
  24. custom_domains = xx.xx.xx.xx
  25. # 自定义frp服务端端口,将本地80端口转出为公网ip端口的49153
  26. local_port = 80
  27. remote_port = 49153

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

  1. Unit]
  2. Description=frpc
  3. After=network.target
  4. Wants=network.target
  5. [Service]
  6. # 启动失败后重启服务
  7. Restart=on-failure
  8. # 重启间隔时间
  9. RestartSec=5
  10. # 修改为自己的frp目录,注意是frpc
  11. ExecStart=/srv/frp/frp_0.43.0_linux_arm/frpc -c /srv/frp/frp_0.43.0_linux_arm/frpc.ini
  12. [Install]
  13. WantedBy=multi-user.target

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

服务端

  1. # 停止服务
  2. sudo systemctl stop frps.service
  3. # 启动服务
  4. sudo systemctl start frps.service
  5. # 重启服务
  6. sudo systemctl restart frps.service
  7. # 查看状态
  8. sudo systemctl status frps.service
  9. # 查看是否设置开机自启
  10. sudo systemctl is-enabled frps.service
  11. # 关闭开机自启
  12. sudo systemctl disable frps.service

客户端

  1. # 停止服务
  2. sudo systemctl stop frpc.service
  3. # 启动服务
  4. sudo systemctl start frpc.service
  5. # 重启服务
  6. sudo systemctl restart frpc.service
  7. # 查看状态
  8. sudo systemctl status frpc.service
  9. # 查看是否设置开机自启
  10. sudo systemctl is-enabled frpc.service
  11. # 关闭开机自启
  12. sudo systemctl disable frpc.service
  1. 测试结果

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

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/161373?site
推荐阅读
相关标签
  

闽ICP备14008679号