部署分两部分:
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配置文件
fprc.ini文件内容:
- [common]
- server_addr = x.x.x.x #frp server节点的ip地址
- server_port = 7000 #server端 端口
- token = XXXXXX #server端访问tocken
- [leanote]
- type = tcp
- local_ip = 192.168.3.35 #极空间的内网IP地址,提前设置成静态ip,避免重启后变动
- local_port = 9000 #本地应用启动的端口
- remote_port = 9000 #映射到外网要访问的端口,可以和内网不一样
- #可以复制多份leanote节点内容,映射其他应用
比如我当前配置的是:
- [common]
- server_addr = 47.43.11.5
- server_port = 7000
- token = XXXXXX
- [gitea]
- type = tcp
- local_ip = 192.168.1.124
- local_port = 33000
- remote_port = 33000
- [chandao]
- type = tcp
- local_ip = 192.168.1.124
- local_port = 8890
- remote_port = 8890
如需绑定域名:
- [housekeep-php]
- type = tcp
- local_ip = 192.168.1.124
- local_port = 8893
- remote_port = 8893
- custom_domains = housekeep.xxx.vip ## 填写域名
2. 下载镜像:docker-镜像-仓库,搜索 frpc,选择oldiy/frpc
直接获取最新的版本也可以
3. 创建容器
默认的就够了
将刚才创建的配置文件(我的文件/docker/frpc/)映射到"/frp/"(这个地址只能是这个)
使用默认桥接方式即可
使用默认即可
除了上面提到的,其他部分都按默认即可,不用做改动,应用,完成创建容器。
服务端腾讯云搭建frps
先判断自己是啥服务器类型,运行:
[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 启动服务端
- [common]
- bind_addr = 0.0.0.0
- bind_port = 7000
- token = xxxx #需与上面frpc配置的一致
- [gitea]
- type = tcp
- bind_addr = 127.0.0.1
- bind_port = 33000
- remote_port = 33000
- [chandao]
- type = tcp
- bind_addr = 127.0.0.1
- bind_port = 8890
- remote_port = 8890
后台启动服务端
- nohup ./frps -c ./frps.ini &
查看日志
- tail -f nohup.out
查看端口是否启动
- netstat -tunlp
如需重启:
检查frp进程是否启用
- ps -aux|grep frp | grep -v grep
杀死进程
- 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是一个更简单的选择。