当前位置:   article > 正文

frp实现内网穿透(openwrt+命令行部署)_openwrt frp

openwrt frp

前言:笔者通过了微软的Azure的学生认证(通过邮件客服发送学信网资料)领到了免费的linux虚拟机。因笔者有在本地的linux物理机上jellyfin和webdav,便打算通过frp内网穿透让jellyfin和webdav能够通过外网访问

一:服务端配置

1.下载frp

wget https://github.com/fatedier/frp/releases/download/v0.37.1/frp_0.37.1_linux_amd64.tar.gz

注:如果是arm架构则请到https://github.com/fatedier/frp/releases  找到对应压缩包,把以上指令的对应部分替换

2.解压安装包并进入文件夹

tar -zxvf frp_0.37.1_linux_amd64.tar.gz

命令解释:

  • tar:表示使用tar命令。
  • z:表示使用 gzip 压缩算法。tar.gz 是经过 gzip 压缩的 tar 归档文件。[gzip]
  • x:表示提取(或解压缩)tar.gz 文件中的内容。[extract]
  • v:表示详细输出,可查看解压缩的进度和文件列表。[verbose]
  • f:表示指定要解压缩的文件。在这里,-f 之后需要指定要解压缩的 tar.gz 文件的路径。[file]
  • tar (tape archive) 是一种归档文件格式,用于将多个文件或目录打包成一个单独的文件,但并不会进行压缩。
  • gz (gzip) 是一种压缩算法,用于对文件进行压缩,通常用于压缩 tar 文件,生成 tar.gz 或者 .tgz 格式的压缩文件
cd frp_0.37.1_linux_amd64

3.编辑配置文件 

注:如果没有vim请自行安装

  1. cd frp_0.37.1_linux_amd64
  2. vim frps.ini
  1. #!/bin/sh
  2. [common]
  3. bind_port = 7000
  4. vhost_http_port = 8080
  5. vhost_https_port = 443
  6. subdomain_host= unen.tech
  7. token = 123456
  8. dashboard_port = 7400
  9. dashboard_user = admin
  10. dashboard_pwd = 123456
  11. log_file = /home/azure/frp2/frps.log
  12. log_level = info
  13. log_max_days = 3
  14. tcp_mux = true

其中8080为你希望服务器实用的http端口

token为和frp客户端通信使用的密钥

dashboard_port为frp服务端的web面板的端口

log_file是服务器日志记录的地方(很重要,通过查看这个日志文件来了解frp的客户端与服务端的通信)

subdomain_host 用于多个http服务,需要拥有域名(也可以使用自定义域名,通过更改电脑的hosts来起到类似的效果)。比如说,你有一个博客和一个frp的面板都需要http访问,但只能共用frps.ini里填的http端口。是通过浏览器里输入的域名的不同来进行区别,如我的两个web服务为: jf.unen.tech:8080 和 wd.unen.tech:8080,浏览器里输这两个就可以分别访问到各自的内网服务

4.设置和启动frp服务

  1. mkdir -p /etc/frp
  2. cp frps.ini /etc/frp
  3. cp frps /usr/bin
  4. cp systemd/frps.service /usr/lib/systemd/system/
  5. systemctl enable frps
  6. systemctl start frps

可通过  systemctl status frps  查看frps运行状态

5.放行端口

不论什么云,都去管理后台放行用到的端口(frp客户端和frp服务器的配置文件中的所有端口) 

6.监控frp服务端的日志文件了解frp服务端与客户端通信情况

tail -f frps.log

 二.客户端

1.命令行部署

   1.1重复服务端的下载操作(因为下载的frp压缩包包含客户端与服务端),直至进入frp客户端的文件夹

   1.2 配置frp客户端的配置文件

vim frpc.ini
  1. [common]
  2. server_addr=4.194.74.173
  3. server_port=7000
  4. user=Unen
  5. log_level=info
  6. log_max_days=3
  7. protocol=tcp
  8. log_file=/var/etc/frp/frpc.log
  9. admin_addr=0.0.0.0
  10. admin_port=7400
  11. admin_user=admin
  12. admin_pwd=1234
  13. tcp_mux=true
  14. tls_enable=true
  15. login_fail_exit=false
  16. [jellyfin]
  17. type=http
  18. subdomain=jf
  19. local_ip=192.168.50.155
  20. local_port=8096
  21. use_encryption=true
  22. use_compression=true
  23. [mc-pc]
  24. type=tcp
  25. remote_port=25566
  26. local_ip=192.168.50.193
  27. local_port=25565
  28. use_encryption=true
  29. use_compression=true
  30. [webdav]
  31. type=http
  32. subdomain=wd
  33. local_ip=192.168.50.155
  34. local_port=8081
  35. use_encryption=true
  36. use_compression=true

common是必要的,而jellyfin 和 webdav则是笔者需要进行内网穿透的服务,按照以上格式配置即可。 

 注:use_encryption和use_compression是不必要的,可以删除;log_file是日志信息的存放位置,建议放在frp文件夹里

      1.3启动frp客户端

./frpc -c frpc.ini

 指令解释:

  • ./frpc:表示在当前目录下查找并运行名为 frpc 的可执行文件。"./"表示当前目录,frpc 是可执行文件的名称。
  • -c frpc.ini:表示使用 frpc.ini 文件作为配置文件。-c 是一个选项,后面跟着配置文件的名称 frpc.ini。

之后在服务器的日志文件中就能看见frp服务运行的信息了

2.openwrt部署

图中为客户端的配置,即fprc.ini。第二张图是总览,第一张图是“服务列表”中具体服务的配置信息

注:http和https端口仅由frp服务端的配置文件决定,第一张图中可以更改http和https端口但无意义 ,因为只是客户端的更改

应用后就能在frp服务端的日志文件看见frp服务运行的信息了

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

闽ICP备14008679号