Jolly

docker部署frp内网穿透
因为家里部署了群晖,还有pc和路由之类的内网应用,在公司或者外面想远程访问,考虑过购买蒲公英之类的硬件设备和会员来...
扫描右侧二维码阅读全文
30
2024/01

docker部署frp内网穿透

因为家里部署了群晖,还有pc和路由之类的内网应用,在公司或者外面想远程访问,考虑过购买蒲公英之类的硬件设备和会员来实现内网访问,但是经过一番探索,发现内网穿透的方案其实非常多,设置也不复杂,与其要花钱购买硬件每年续费会员,不如利用闲置服务器自己搭建个内网穿透服务。

一、原理

FRP 由两部分组成:FRP 客户端(frpc)和 FRP 服务器(frps),服务端部署在有公网ip的服务器上,而客户端则部署在内网里,通过预先的服务配置,服务端和客户端保持的多个连接。当外网请求预先映射好的外网ip端口地址时,请求会通过之前建立的连接走到内网的frp客户端,客户端再将请求指向对应的内网服务,最后服务的响应再通过客户端回传给外网frp服务端,给到访问用户。

二、前置准备

  1. 拥有公网ip的服务器,如果可以是国内云主机,也可以是国外的云主机,但是如果你的内网环境在国内的话,最好也使用国内的云主机搭建frp服务端,这样访问会更加顺畅。
  2. 内网搭建frp客户端的介质,frp客户端作为插件可以安装在很多环境里,你可以是内网的服务器,也可以是路由器等硬件上。

三、服务端搭建

首先默认你已经有了docker环境,然后执行以下语句:

cd opt
mkdir docker
cd docker

新建docker-compose.yaml文件

version: '3.3'
services:
    frps:
        restart: always
        network_mode: host
        volumes:
            - './frps.ini:/etc/frp/frps.ini'
        container_name: frps
        image: snowdreamtech/frps:0.51.3

然后在同级目录新建frps.ini文件,注意这是服务端的配置文件,内容如下:

[common]
# frp服务端口
bind_port = 6005
# 启用面板,面板登录名和密码
dashboard_port = 6006
dashboard_user = root
dashboard_pwd = 123

# 使用http代理并使用6111端口进行穿透,使用https代理并使用6222端口进行穿透
vhost_http_port = 6111
vhost_https_port = 6222

# 代理的服务外网访问域名
subdomain_host = www.xxxxx.com

# 服务token(根据实际情况修改),相当于连接密码,建议设置
token = 123456

然后启动服务端

docker-compose up -d

然后就可以登录网页ip:6006访问连接看板了,用户是root,密码是123
WX20240130-151420.png

四、客户端搭建

客户端搭建不做描述,可以使用现成的客户端插件,配置好就能够访问了

Last modification:January 30th, 2024 at 03:18 pm
如果觉得我的文章对你有用,请随意赞赏

Leave a Comment

🌓