FRP docker 部署实现内网穿透

3,770次阅读
没有评论

  内网穿透技术目前已经有很多开源工具,因为要开发微信公众号的项目为了方便调试就想到了这个技术,之前都是用ngrok,但是微信不让用了,就自己搭建了。这里只是说一下使用Docker的方式实现而已,为啥要用docker呢,当然是因为穷了,买的云服务器尽量不折腾环境(防止出现不必要的麻烦,之前在.net core 早期出现过Runntime无法正常安装也无法卸载,到最后直接恢复系统,所以我现在始终坚持应用全部容器化)。

  frp在容器内对网络的托管,至少是80端口吧,但是我的80已经给了nginx,于是我将指定的网络服务又用nginx转发给了Frp,这样解决了80端口的复用问题。而Frp自身的应用端口放开系统网络限制就可以了,我在容器里使用了Host的网络模式,因为那可怜的配置。

这里我写一下自己的配置。

nginx容器部署就省略了,说一下配置,转发要代理的网络请求,切记 server_name abc.xxxx.com; 是你要代理的服务外网访问域名,而转发后的proxy_pass 127.0.0.1:7102; 是你的frp服务地址,要注意你的容器网络部署方式,我是Host所以怎么配都可以,如果你不是你可以填写你的系统内网ip,防止容器网络不通。

    server {
        server_name abc.xxxx.com;
        listen 80 ;
       
        access_log  /var/log/nginx/ih.xiaowanghu.com.access.log;
        error_log   /var/log/nginx/ih.xiaowanghu.com.error.log;
        underscores_in_headers on;
        ignore_invalid_headers off;
        proxy_set_header   Host              $http_host;
        proxy_set_header   X-Real-IP         $remote_addr;
        proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;
        location / {
              proxy_pass 127.0.0.1:7102;
        }
    }

frp分Server端和客户端,
服务端:FRPS Docker
客户端:FRPC
服务端部署,最简单就是

    docker run --restart=always --network host -d -v /etc/frp/frps.ini:/etc/frp/frps.ini --name frps snowdreamtech/frps

或者使用dockercompose

version: "3.1"
    services:
      frps:
        image: snowdreamtech/frps
        network_mode: host
        restart: always
        volumes:
          - /gzl/apps/frp/data/frp/frps.ini:/etc/frp/frps.ini

frps的服务端配置文件frps.ini

[common]
# frp服务端口
bind_port = 7100
# 启用面板
dashboard_port = 7101
# 面板登录名和密码
dashboard_user = gzl
dashboard_pwd = gzl521314
# 使用http代理并使用7102端口进行穿透
vhost_http_port = 7102
# 使用https代理并使用7103端口进行穿透
vhost_https_port = 7103
# 代理的服务外网访问域名
subdomain_host = abc.xxx.com  
# 服务token(根据实际情况修改),相当于连接密码,建议设置
token = token521314

接下来是客户都安,下载的文件内打开如下

FRP

Frpc.exe是客户端,frpc.ini是客户端配置文件

[common]
server_addr = frp地址
server_port = 7100
token = token521314

[abc]
type=http
local_port= 80
subdomain = wx

因为Frpc.exe直接双击启动是不行的,智能通过cmd启动,可以建一个bat文件,代码如下,

xxx/xxx/frpc.exe

frp 官方地址 https://github.com/fatedier/frp/blob/dev/README_zh.md
docker frp官方文档网址 https://www.itcoder.tech/posts/docker-frp/

1
老三的古代
版权声明:本站原创文章,由 老三的古代2022-05-11发表,共计1818字。
转载提示:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)