极空间docker搭建frpc
docker 2023-08-07 19:23:36

部署分两部分:

frpc 拷贝到内网服务所在的机器上(极空间nas部署)

frps 拷贝到具有公网 IP 的机器(腾讯云)

 

 

客户端内网搭建frpc

注意:搭建frpc,前提是自己有可用的frps服务节点,简单的内网穿透ddns更合适。


FRP能做什么:

1.利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。

2.对于 http 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口,支持80端口穿透。

3.利用处于内网或防火墙后的机器,对外网环境提供 tcp/udp 服务,例如在家里通过 ssh 访问处于公司内网环境内的主机,支持kcp协议和点对点穿透。

 

1. 准备好配置文件:打开「我的文件」先创建一个docker文件目录(比如"我的文件/docker/frpc/"),并创建好frpc.ini配置文件

iShot_2023-08-07_20.10.40.png

fprc.ini文件内容:

C/C++ Code复制内容到剪贴板
  1. [common]  
  2. server_addr = x.x.x.x  #frp server节点的ip地址  
  3. server_port = 7000 #server端 端口  
  4. token = XXXXXX #server端访问tocken  
  5.    
  6. [leanote]  
  7. type = tcp  
  8. local_ip = 192.168.3.35 #极空间的内网IP地址,提前设置成静态ip,避免重启后变动             
  9. local_port = 9000 #本地应用启动的端口  
  10. remote_port = 9000  #映射到外网要访问的端口,可以和内网不一样  
  11.    
  12. #可以复制多份leanote节点内容,映射其他应用  

 

比如我当前配置的是:

C/C++ Code复制内容到剪贴板
  1. [common]  
  2. server_addr = 47.43.11.5  
  3. server_port = 7000  
  4. token = XXXXXX  
  5.    
  6. [gitea]  
  7. type = tcp  
  8. local_ip = 192.168.1.124             
  9. local_port = 33000  
  10. remote_port = 33000  
  11.   
  12. [chandao]  
  13. type = tcp  
  14. local_ip = 192.168.1.124             
  15. local_port = 8890  
  16. remote_port = 8890  
  17.    

 

如需绑定域名:

C/C++ Code复制内容到剪贴板
  1. [housekeep-php]  
  2. type = tcp  
  3. local_ip = 192.168.1.124             
  4. local_port = 8893  
  5. remote_port = 8893  
  6. custom_domains = housekeep.xxx.vip ## 填写域名  

 

 

2. 下载镜像:docker-镜像-仓库,搜索 frpc,选择oldiy/frpc

iShot_2023-08-07_19.35.34.png

iShot_2023-08-07_19.36.35.png

 

直接获取最新的版本也可以

 

3. 创建容器

iShot_2023-08-07_19.42.12.png

默认的就够了

 

iShot_2023-08-07_20.04.25.png

将刚才创建的配置文件(我的文件/docker/frpc/)映射到"/frp/"(这个地址只能是这个)

 

iShot_2023-08-07_19.47.25.png

使用默认桥接方式即可 

 

iShot_2023-08-07_20.04.32.png

使用默认即可

 

除了上面提到的,其他部分都按默认即可,不用做改动,应用,完成创建容器。

 

 

服务端腾讯云搭建frps

点击从releases下载包

先判断自己是啥服务器类型,运行:

[root@centos ~]# uname -m

 

x86_64

 

该命令返回主机的机器硬件名称,从而确定服务器所使用的体系结构。

如果返回结果包含 "arm",则服务器是 Linux ARM 架构;如果返回结果为 "x86_64",则服务器是 Linux AMD64 架构。

例如,如果执行 uname -m 命令返回结果为 "aarch64",则表示服务器是 Linux ARM 架构。

请注意,uname -m 命令在大多数 Linux 发行版中可用,但可能存在一些特殊情况,因此无法保证适用于所有环境。在某些情况下,可能需要其他命令或方法来确定服务器的体系结构。

 

我这里显示是amd64架构所以我下载的是:

frp_0.51.2_linux_amd64.tar.gz

下载之后,上传到服务器,我这里解压到/www目录下

编写配置文件,先通过 ./frps -c ./frps.ini 启动服务端 

C/C++ Code复制内容到剪贴板
  1. [common]  
  2. bind_addr = 0.0.0.0  
  3. bind_port = 7000  
  4. token = xxxx #需与上面frpc配置的一致  
  5.   
  6. [gitea]  
  7. type = tcp  
  8. bind_addr = 127.0.0.1  
  9. bind_port = 33000  
  10. remote_port = 33000  
  11.   
  12. [chandao]  
  13. type = tcp  
  14. bind_addr = 127.0.0.1  
  15. bind_port = 8890  
  16. remote_port = 8890  

 

后台启动服务端 

C/C++ Code复制内容到剪贴板
  1. nohup ./frps -c ./frps.ini &  

 

查看日志

C/C++ Code复制内容到剪贴板
  1. tail -f nohup.out  

 

查看端口是否启动

C/C++ Code复制内容到剪贴板
  1. netstat -tunlp  

 

 

如需重启:

检查frp进程是否启用

C/C++ Code复制内容到剪贴板
  1. ps -aux|grep frp | grep -v grep  

 

杀死进程

C/C++ Code复制内容到剪贴板
  1. kill -9 (pid)  

 

再输入启动命令即可

 


 

应当注意到,如果直接双击启动 frps.exe ,她将显示以下内容,并在几秒钟后退出。

This is a command line tool.

You need to open cmd.exe and run it from there.

/*翻译

这是一个命令行工具。

你需要打开cmd.exe并从那里运行它。*/

 

可使用:

frps -c frps.ini

frpc -c frpc.ini 

 

或者前面加nohup

 


 

FRP和DDNS的区别:

FRP(Fast Reverse Proxy)和DDNS(Dynamic DNS)是两种常见的用于使NAS上的服务可以从外部访问的方法,它们有一些区别:

FRP(Fast Reverse Proxy):FRP是一种反向代理工具,它可以通过将来自外部网络的请求转发到内部网络中的设备来实现对NAS服务的访问。你需要在具有公网IP的云服务器上部署FRP服务器,并在NAS和FRP服务器之间建立连接。FRP会将外部访问请求转发到NAS上的Gitea服务。这样,你可以通过访问FRP服务器的公网IP地址来访问Gitea。

优点:

FRP可以在没有公网IP的情况下使用,只需要一个具有公网IP的云服务器。
FRP提供了额外的安全性,因为外部访问只能通过FRP服务器,并且可以配置访问控制规则。
缺点:

需要额外的云服务器来承担FRP服务器的角色。
配置和管理FRP可能相对复杂一些。
DDNS(Dynamic DNS):DDNS是一种服务,它提供了将动态的IP地址映射到一个固定的域名的功能。当你的网络具有动态IP地址(如家庭网络)时,DDNS可以定期更新IP地址和域名的对应关系,以确保你的域名始终指向正确的IP地址。你需要在NAS上设置DDNS,选择一个DDNS提供商并进行相应的配置。然后,使用DDNS提供的域名来访问你的NAS上的Gitea服务。

优点:

DDNS简单易用,无需额外的服务器。
DDNS可以在网络的IP地址发生变化时自动更新域名对应关系。
缺点:

需要一个具有公网IP地址的网络。
可能存在访问安全性问题,因为使用域名进行访问时不经过反向代理。
根据你的需求和网络环境,两种方法都可以用于让外部访问NAS上的Gitea服务。如果你拥有具有公网IP的云服务器,使用FRP可以提供更好的安全性和灵活性。如果你的网络具有动态IP地址并且没有额外的服务器可用,DDNS是一个更简单的选择。

 

 

本文来自于:http://www.yoyo88.cn/study/docker/683.html

Powered by yoyo苏ICP备15045725号