内网服务器使用宝塔面板利用frp实现外网访问

 admin   2020-08-14 09:58   2764 人阅读  0 条评论

此方法已测试不支持使用强制 https 协议,如过您有更好的解决办法请联系,谢谢!

  • 情景还原

    准备搭建本地的 linux 服务器,安装宝塔面板来做开发环境,这样就不用项目上线时在进行兼容调试,一般来说,项目都是运行在 linux 服务器上的。

    安装好宝塔面板后,需要实现外网访问,一般来说,调试微信小程序、各种支付接口等等都是需要外网访问权限的,准备使用 frp 去做,因为个人有个 3 年的华为云服务器还在使用中。

    为什么不直接使用线上服务器?好吧,也是是考虑到项目资料越来越多,即使服务器到期时间还很久,那么对应的后期服务器续费或者服务器搬家都是不小的成本,所以说还是准备使用本地来搭建开发环境(之前也是一直在使用服务器当做开发环境)。

  • 重复造轮子?

    宝塔面板已知有 frp 插件,包含服务端和客户端,这里我也购买了一个月试用,但是!!!同样不支持 https 协议,即使映射了 443 端口。不清楚作者后续会不会更新,目前来说,即使收费还满足不了我们的要求,那就自己安装一个吧。

  • 准备工作

    公网服务器一台(可安装宝塔面板)

    内网服务器 (安装宝塔面板)

    域名

    frp 包下载frp_0.13.0_linux_amd64.tar.gz 

    因 GitHub 下载比较慢,这里放上离线包,直接解压就会得到客户端和服务端文件(后续新版不在更新此包)

  • 实现效果

    域名解析到公网服务器,利用 nginx 转发来实现泛域名内网穿透,除了不能 https 几乎没有差别,直接可以在内网服务器添加网站,域名直接填也不用在解析啦。


  • 教程开始

    • 我们首先将得到的 frp 包文件分析下:

      frps做文件名的是服务器文件 frpc 是客户端文件,显然我们将这两部分文件全部分别上传到两个服务器上,这里我建议搭建上传到服务器的/usr/local/frp 文件夹内(没有自行创建)统一管理。

    • 接下来配置 frps 服务端文件,编辑 frps.ini,内容填写如下(此文件内端口必须在安全组开放)


    • [common]
      bind_addr = 0.0.0.0
      bind_port = 7800
      vhost_http_port = 6082
      vhost_https_port = 6083

        

    • 然后cd 到 frp 目录下,使用命令./frps -c ./frps.ini 一次性启动 frp 开始观察是不是有错误信息等等(更多 frp 启动指令包含自启等自行查询其他资料)

    • 开始配置 frpc 客户端文件,编辑 frpc.ini,内容填写如下


    • [common]
      server_addr = 服务器IP地址
      server_port = 7800
      login_fail_exit = false
      
      [web]  
      type = http
      local_ip = 127.0.0.1
      local_port = 80
      custom_domains = *.frp.wslmf.com(你的域名,这里因为要做泛域名 frp 所以 dns 解析域名也是要做泛域名解析)


    • 接着使用命令 ./frpc -c ./frpc.ini 启动客户端,这样内网穿透就成功了。

  • 接下来就是配置泛域名

    在 dns 解析域名记录填写 *.frp  那么你最后的域名就是 xxx.frp.xxx.com  

    在服务器端宝塔面板新建一个网站,域名填写*.frp.xxxx.com 例如


    image.png

  • 准备添加伪静态进行反向代理转发

location ~ .* {
  proxy_set_header        X-Real-IP $remote_addr;
  proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header        Host $http_host;
  proxy_set_header        X-NginX-Proxy true;
  proxy_pass               # 这里注意域名和端口 
}
  • 基本大功告成了,现在在内网服务器上添加一个已 frp.xxx.com的 域名吧,添加完成后直接访问是不是直接访问啦,惊不惊喜?后续只需要添加这类域名后缀后是不需要解析直接就访问内网了。

  • 后记

    在正式开始 frp 使用时,启动命令后面加上一个&否则会很卡哦,开机自启脚本什么的网上一大堆,配置优化什么的可以自己在玩玩吧。

  • 没有服务器怎么办?

    我接下来就去看看 NATAPP 这款收费的内网穿透客户端,9 块钱一个月感觉据说支持 https,我去试试水,还是那句话”生命不息,折腾不止!“


发表评论:


表情

还没有留言,还不快点抢沙发?