首页
留言板
统计
时间轴
友情链接
关于
Search
1
Emby Terminus 终点站公益服考试答案
1,479 阅读
2
2023最新Win10/Win11运行罪恶都市解决方案
788 阅读
3
Docker + PHP 搭建苹果 Maccms 的影视站详细教程
557 阅读
4
网站整站镜像克隆下载工具 - Terminus 终点站 WIKI 备用地址
181 阅读
5
使用 acme.sh 生成免费 90 天的 SSL 泛域名证书
172 阅读
默认分类
网站建设
科学上网
电子游戏
补丁插件
实用工具
优化美化
登录
Search
标签搜索
Typecho
个人博客
Docker
PHP
异地组网
Joe
网站美化
Emby
Maccms
影视站
Steam
单机游戏
补丁文件
游戏汉化
侠盗列车
罪恶都市
VPN
OpenVPN
Halo
友情链接
Java小学生丶
累计撰写
13
篇文章
累计收到
61
条评论
首页
栏目
默认分类
网站建设
科学上网
电子游戏
补丁插件
实用工具
优化美化
页面
留言板
统计
时间轴
友情链接
关于
搜索到
1
篇与
FRP
的结果
2025-03-15
基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
FRP 是 Github 上开源的一款内网穿透工具,点击前往项目地址,该项目分为 frps 服务端和 frpc 客户端,通过在拥有公网 IP 的服务器上搭建服务端,然后在被穿透的机器上安装客户端,配置好后就可以实现通过公网 IP 访问内网的内容了官方有提供中文文档,可以根据文档进行操作,虽然他的文档对配置项都有介绍,但我个人觉得他这个文档逻辑结构梳理的不是很清楚,有些配置项不知道该不该用,不知道该在哪用,不知道怎么用,所以我自己写个文章简单记录一下做个笔记本文介绍的是基于 Docker 运行 frps 和 frpc,并通过 TCP 协议简单穿透 SSH 和 HTTP,在观看本文之前请确保你的机器已经安装 Docker服务端搭建 frps连接拥有公网 IP 的服务器,在合适的位置创建frps目录作为工作空间# 创建 frps 目录作为工作空间 $ mkdir frps # 创建服务端配置文件 $ touch frps/frps.toml # 编辑服务端配置文件 $ vim frps/frps.toml服务端配置文件内容如下所示# 服务器的公网IP bindAddr = "服务器的公网IP" # 与客户端建立连接的端口 bindPort = 7000 # 服务端控制面板 webServer.addr = "服务器的公网IP" # 访问控制面板的端口号 webServer.port = 7500 # 控制面板的用户名和密码,暴露在公网的服务请使用严谨一些的用户名密码 webServer.user = "admin" webServer.password = "123456" # 配置服务端的鉴权,这里使用Token进行鉴权,客户端必须用指定的Token才可以与服务端建立连接,防止滥用 auth.method = "token" auth.token = "gbfvzhsybvtybsibvuipqfnnvlkashfgiawug" # 配置服务端只打印warn级别的日志,并将日志输出到指定目录(注意这个目录指向的是容器内的目录) log.level = "warn" log.to = "/opt/frps/frps.log"配置文件编写完成后下载fatedier/frps:v0.61.2镜像,不同与网上流传的教程(他们啥版本都有),该镜像应该是原作者提供的,镜像仓库名称和作者 Github 名称一致,且该镜像会及时跟进软件版本,v0.61.2 是截止到本文发布时的最新的版本# 下载Docker镜像,Docker网络很迷,下载失败也不要紧,后面会帮你解决 $ docker pull fatedier/frps:v0.61.2 # 启动服务端 frps,推荐网桥用 host 类型,将刚刚创建的工作空间目录映射到容器中并指定配置文件启动 $ docker run --name frps \ --restart always \ --network host \ -e TZ=Asia/Shanghai \ -v ./frps:/opt/frps \ -d fatedier/frps:v0.61.2 -c /opt/frps/frps.toml执行命令后如果容器正常运行,没有自动停止,就算启动成功了,日志文件空白属于正常现象,因为配置文件中设置了只打印 warn 级别日志,启动成功的 info 级别日志不会打印,通过容器运行状态判断是否启动成功即可启动成功后可以通过之前配置的控制面板检查 frps 的状态,之前配置的是 7500 端口,这里进行访问测试,需要注意该容器是使用 host 网桥启动的,如果服务器中启用了防火墙需要放行之前配置的 7000 和 7500 端口客户端搭建 frpc如果你是 win 或移动端用户,请自行访问发行页面下载合适的版本以及客户端软件,这里仍然以 Linux Docker 环境举例搭建 frpc 客户端同之前流程相似,在合适的位置创建frpc目录作为工作空间# 创建 frpc 目录作为工作空间 $ mkdir frpc # 创建客户端配置文件 $ touch frpc/frpc.toml # 编辑客户端配置文件 $ vim frpc/frpc.toml客户端配置文件内容如下所示# 与服务端建立连接,跟上面的配置要对应 serverAddr = "服务端IP地址" serverPort = 7000 # 配置Token鉴权,要与服务端一致 auth.method = "token" auth.token = "gbfvzhsybvtybsibvuipqfnnvlkashfgiawug" # 配置日志信息 log.level = "warn" log.to = "/opt/frpc/frpc.log"配置文件编写完成后下载fatedier/frpc:v0.61.2镜像,强烈建议与服务端版本一致# 下载Docker镜像,Docker网络很迷,下载失败也不要紧,后面会帮你解决 $ docker pull fatedier/frpc:v0.61.2 # 启动客户端 frpc,将刚刚的工作空间映射到容器中并指定配置文件启动 $ docker run --name frpc \ --restart always \ -e TZ=Asia/Shanghai \ -v ./frpc:/opt/frpc \ -d fatedier/frpc:v0.61.2 -c /opt/frpc/frpc.toml同之前一样,日志文件是空白的,只要容器保持运行没有中途停止就算运行成功了内网穿透SSH先写一个 SSH 内网穿透的配置,将本机的 22 端口映射到远程的 8001 端口,编辑客户端配置文件frpc.toml在原基础上添加内容# 与服务端建立连接,跟上面的配置要对应 serverAddr = "服务端IP地址" serverPort = 7000 # 配置Token鉴权,要与服务端一致 auth.method = "token" auth.token = "gbfvzhsybvtybsibvuipqfnnvlkashfgiawug" # 配置日志信息 log.level = "warn" log.to = "/opt/frpc/frpc.log" # 该内网穿透起名为SSH,annotations中随便写了一些备注,基于TCP协议将本机的22端口映射到公网的8001 [[proxies]] name = "SSH" annotations = {title = "SSH远程连接", fuck = "test", desc = "annotations是该连接的备注信息,里面的key和val是随便写的,在服务端控制面板可以看到"} type = "tcp" localIP = "192.168.137.10" localPort = 22 remotePort = 8001内网穿透配置完成后docker restart frpc重启容器,就可以使用公网IP在外地SSH远程本机了,控制面板看到连接信息内网穿透HTTPFRP 支持 HTTP/HTTPS 协议的内网穿透,但是使用 HTTP 类型的内网穿透不是很方便,还需要配置一个域名,HTTPS 则更麻烦一些,还需要配置 SSL 证书,这里选择继续使用基于 TCP 协议的网站内网穿透我本机运行了 Nginx,就以他为例子继续编辑客户端配置文件frpc.toml,在原基础上再在加一个内网穿透# 与服务端建立连接,跟上面的配置要对应 serverAddr = "服务端IP地址" serverPort = 7000 # 配置Token鉴权,要与服务端一致 auth.method = "token" auth.token = "gbfvzhsybvtybsibvuipqfnnvlkashfgiawug" # 配置日志信息 log.level = "warn" log.to = "/opt/frpc/frpc.log" # 该内网穿透起名为SSH,annotations中随便写了一些备注,基于TCP协议将本机的22端口映射到公网的8001 [[proxies]] name = "SSH" annotations = {title = "SSH远程连接", fuck = "test", desc = "annotations是该连接的备注信息,里面的key和val是随便写的,在服务端控制面板可以看到"} type = "tcp" localIP = "192.168.137.10" localPort = 22 remotePort = 8001 # 该内网穿透起名为NGINX-HOME,基于TCP协议将本机的80端口映射到公网的8002 [[proxies]] name = "NGINX-HOME" type = "tcp" localIP = "192.168.1.183" localPort = 80 remotePort = 8002docker restart frpc重启容器后访问公网查看效果Docker镜像下载失败DockerHub 网络阴晴不定,下载镜像经常失败,现在的 Docker 镜像加速地址也好多都失效了,我个人比较喜欢先把镜像下载到本地,然后上传到服务器载入到 Docker 引擎中为此我特意编写了一款开源工具 did-tool(Docker image download tool),该工具为 Java 语言编写可在任意操作系统上运行,可实现无 Docker 环境下使用 HTTP 协议通过代理下载 Docker 镜像文件,镜像文件下载到本地会被打包为xxx.tar文件,只需要上传到服务器后使用docker load -i xxx.tar就可以导入镜像,本文使用的 Docker 镜像文件已准备好,点击下方链接下载即可文件下载地址下载frps_v0.61.2.tar和frpc_v0.61.2.tar两个文件即可,分别对应客户端和服务端的 Docker 镜像,如果你不想使用 Docker,里面也提供了 win 和 linux 下的可执行文件{cloud title="蓝奏网盘" type="lz" url="https://hanzhe.lanzouw.com/b02a8n5pza" password="ek3v"/}
2025年03月15日
24 阅读
0 评论
0 点赞