docker部署frp穿透内网_snowdreamtech frps

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前在阿里

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以点击这里获取!

2.编辑配置文件

#进入 /data/frp 目录
cd /data/frp

#使用 Vim 编辑器打开 frps.ini 文件
vim frps.ini

配置文件如下:

[common]
bind_addr = 0.0.0.0
bind_port = 7000
dashboard_port = 7001

vhost_http_port = 10080
vhost_https_port = 10443
 
token = abcd12345
dashboard_user = admin11
dashboard_pwd = admin11

#需要穿透的内网服务1
[could]
type = tcp
local_ip = 192.168.31.100
local_port = 5000
remote_port = 5000

#需要穿透的内网服务2
[chat]
type = tcp
local_ip = 192.168.31.223
local_port = 3000
remote_port = 3000


....
此处省略若干个服务器

你可以根据自己的需求修改这个配置文件,添加或修改代理规则,然后保存退出 Vim 编辑器。

配置内容含义:

[common]:通用配置部分,用于设置 frp 服务器的基本参数。

bind_addr:绑定的 IP 地址,这里设置为 0.0.0.0,表示监听所有的网络接口。
bind_port:服务绑定的端口号,这里设置为 7000。
dashboard_port:frp 仪表盘的端口号,这里设置为 7001。
vhost_http_port:虚拟主机 HTTP 端口号,这里设置为 10080。
vhost_https_port:虚拟主机 HTTPS 端口号,这里设置为 10443。
token:访问 frp 服务器的令牌,这里设置为 abcd12345
dashboard_user:frp 仪表盘的用户名,这里设置为 admin11。
dashboard_pwd:frp 仪表盘的密码,这里设置为 admin11。


[could] 和 [chat]:代理规则部分,用于定义具体的代理规则。
type:代理类型,这里设置为 tcp,表示 TCP 代理。
local_ip:本地 IP 地址,这里设置为 192.168.31.100和192.168.31.223。
local_port:本地端口号,这里设置为 5000 和 3000。
remote_port:远程端口号,这里设置为 5000 和 3000。

3.拉取镜像

拉取和启动一个名为 “frps” 的 Docker 镜像。这个镜像是由 “ryaning/frps” 提供的,它是一个用于部署 frp 服务器的镜像。

通过命令 docker pull ryaning/frps 是用于从 Docker Hub 上拉取 “ryaning/frps” 镜像到本地。

docker pull ryaning/frps

4.启动容器

通过命令 docker run 启动一个容器。这个容器使用了一些参数:

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

  • --restart=always 表示容器将会在退出时自动重启。
  • --network host 表示容器使用宿主机的网络命名空间,与宿主机共享网络栈,使得容器中的应用可以直接使用宿主机的网络接口。
  • -d 表示容器以后台模式运行。
  • -v /data/frp/frps.ini:/etc/frp/frps.ini 表示将宿主机上的 /data/frp/frps.ini 文件挂载到容器中的 /etc/frp/frps.ini 文件,这样可以在容器中使用自定义的配置文件。
  • --name frps 表示给容器指定一个名称为 “frps”。

当容器启动后,frp 服务器就会在容器中运行,使用挂载的配置文件进行配置。

5.安全组配置

在云服务器的安全组中,如果你想要允许入方向的连接到特定的端口,需要开放相应的端口。

以下是一般的步骤:

  • 登录云服务提供商的管理控制台
  • 导航到安全组配置页面
  • 找到服务器实例所使用的安全组,并编辑该安全组的规则。
  • 添加一个新的入方向规则,指定协议(如 TCP 或 UDP)和端口号。
    根据需求,可以选择指定来源 IP 地址范围或来源安全组。
    保存规则并应用更改。
  • 具体的步骤和界面可能因云服务提供商而有所不同。你可以参考云服务提供商的文档或向他们的支持团队寻求帮助,以获取更详细的指导。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

(2)部署frpc客户端

1.创建目录

创建目录,用于存放容器持久化存储卷

mkdir -p /data/frp
cd /data/frp

2.配置文件

vim frpc.ini

配置内容

[common]
server_addr = 120.78.156.217
server_port = 7000
token = abcd12345


[could]
type = tcp
local_ip = 192.168.31.100
local_port = 5000
remote_port = 5000



[chat]
type = tcp
local_ip = 192.168.31.223
local_port = 3000
remote_port = 3000


配置文件内容含义:

  1. [common] 部分定义了 frpc 的常规配置,包括 server_addrserver_porttoken。请确保这些值是正确的,并与 frps 服务器的配置相匹配。
  2. [could] 部分定义了一个名为 could 的隧道,其类型为 tcp。该隧道将本地的 192.168.31.100:5000 映射到远程的 5000 端口。请确保本地和远程的 IP 和端口设置正确。
  3. [chat] 部分定义了一个名为 chat 的隧道,其类型也是 tcp。该隧道将本地的 192.168.31.223:3000 映射到远程的 3000 端口。同样,请确保 IP 和端口设置正确。

3.查看frpc docker镜像

docker search frpc

4.拉取snowdreamtech/frpc 镜像

docker pull snowdreamtech/frpc 

5.启动snowdreamtech/frpc 容器

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

(3)重启与访问frp

服务端重启

docker restart frps

客户端重启

docker restart frpc

查看监听服务

重启完成,查看服务器监听的端口(其中5000和3000端口是我们想要的)

[root@josh-clound frp]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1081/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1020/master         
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      550/rpcbind         
tcp6       0      0 :::3000                 :::*                    LISTEN      5268/frps           
tcp6       0      0 :::7000                 :::*                    LISTEN      5268/frps           
tcp6       0      0 :::7001                 :::*                    LISTEN      5268/frps           
tcp6       0      0 ::1:25                  :::*                    LISTEN      1020/master         
tcp6       0      0 :::10080                :::*                    LISTEN      5268/frps           
tcp6       0      0 :::5000                 :::*                    LISTEN      5268/frps           
tcp6       0      0 :::10443                :::*                    LISTEN      5268/frps           
tcp6       0      0 :::111                  :::*                    LISTEN      550/rpcbind         
tcp6       0      0 :::80                   :::*                    LISTEN      5786/docker-proxy  

尝试访问

浏览器打开http://服务器IP:3000/进行访问

在这里插入图片描述

http://服务器IP:5000/ 进行访问

在这里插入图片描述

(4)配置nginx反向代理

通过IP+ 端口的访问方式,实现了,那么我不想记IP,那么就通过域名方式进行访问。

docker安装nginx

1.创建挂载目录

用于将宿主机上的目录 /usr/local/nginx 与容器内的目录进行挂载。

mkdir -p /usr/local/nginx/conf
mkdir -p /usr/local/nginx/log
mkdir -p /usr/local/nginx/html

  • /usr/local/nginx/conf:用于存放 Nginx 的配置文件。
  • /usr/local/nginx/log:用于存放 Nginx 的日志文件。
  • /usr/local/nginx/html:用于存放 Nginx 的静态网页文件。

2.创建临时用容器

docker run --name nginx -p 9001:80 -d nginx

3.复制临时容器的配置到宿主机

# 将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /usr/local/nginx/conf/nginx.conf
# 将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /usr/local/nginx/conf/conf.d
# 将容器中的html文件夹复制到宿主机


![](https://img-blog.csdnimg.cn/img_convert/9a8cb5f8c0ec69e6499adead0da6e95b.png)


最全的Linux教程,Linux从入门到精通

======================

1.  **linux从入门到精通(第2版)**

2.  **Linux系统移植**

3.  **Linux驱动开发入门与实战**

4.  **LINUX 系统移植 第2版**

5.  **Linux开源网络全栈详解 从DPDK到OpenFlow**



![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://img-blog.csdnimg.cn/img_convert/59742364bb1338737fe2d315a9e2ec54.png)



第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。



![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://img-blog.csdnimg.cn/img_convert/9d4aefb6a92edea27b825e59aa1f2c54.png)



**本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。**

> 需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618635766)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

ng)



**本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。**

> 需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618635766)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 18
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker是一种容器化技术,可以将应用程序及其依赖项打包到一个独立的、可移植的容器中,然后在任何支持Docker的环境中运行。FRP是一种用于内网穿透的工具,可以将内网服务暴露给外网访问。 要在Docker部署FRP,可以按照以下步骤进行操作: 1. 首先,创建一个用于存放FRP配置文件的目录,例如`/path/to/config`。 2. 在该目录下创建一个名为`frps.ini`的配置文件,并按照FRP的配置规则进行配置。例如,可以指定监听端口、认证方式、代理设置等。 3. 创建一个名为`Dockerfile`的文件,并在其中编写Docker镜像的构建指令。以下是一个示例的`Dockerfile`内容: ``` FROM alpine:latest LABEL maintainer="Your Name <your_email@example.com>" # 安装FRP RUN apk add --no-cache wget RUN wget -O /tmp/frp.tar.gz https://github.com/fatedier/frp/releases/download/v0.37.1/frp_0.37.1_linux_amd64.tar.gz RUN tar -xzf /tmp/frp.tar.gz -C /tmp && mv /tmp/frp_0.37.1_linux_amd64 /frp # 复制配置文件 COPY frps.ini /frp/frps.ini # 暴露FRP端口 EXPOSE 7000 # 启动FRP CMD ["/frp/frps", "-c", "/frp/frps.ini"] ``` 4. 构建Docker镜像。在终端中进入`Dockerfile`所在的目录,执行以下命令: ``` docker build -t frps . ``` 其中,`frps`是镜像的名称,可以根据需要进行修改。 5. 运行Docker容器。执行以下命令: ``` docker run -d -p 7000:7000 --name frps-container frps ``` 其中,`7000:7000`表示将容器的7000端口映射到主机的7000端口,`frps-container`是容器的名称,可以根据需要进行修改。 现在,FRP已经在Docker中成功部署并运行了。你可以通过访问主机的7000端口来访问FRP服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值