前言

在拥有Office E5订阅后,如何续期成了一个大问题。最近找到了一个GitHub项目:iyear/E5SubBot,决定用它来续期E5。

Requirements

  • 1 * VPS(要能访问Telegram)
  • 1 * Office E5账号
  • 1 * Telegram账号

申请Telegram机器人

添加@BotFather机器人,输入/start 开始

image-20220710162212450

输入/newbot创建新机器人

image-20220710162320105

输入bot名字

image-20220710162345391

输入bot用户名,得到bot的Token

image-20220710162516659

配置E5SubBot

Releases 页面下载对应系统的二进制文件,上传至服务器

重命名config.yml.exampleconfig.yml

编辑config.yml,将bot_token一项的值修改为刚刚获取的Token

前往 https://t.me/userinfobot 获取自己的tgid,并填入admin项中

启动E5SubBot

screen -S e5sub
chmod +x E5SubBot
./E5SubBot
(Ctrl A+D)

绑定账号

参照以下教程(图片来自网络)

E5Sub_1

E5Sub_2

E5Sub_3

E5Sub_4

E5Sub_5

E5Sub_6

前言

在配置Cloudreve期间,发现VPS仅有的60G空间对于离线下载远远不够,因此决定将内网的一台机器作为Cloudreve的离线下载节点。

思路

在子节点上运行Cloudreve和Aria2,并通过frp将子节点服务暴露给公网,最后通过Cloudreve自带的功能进行子节点离线下载

Cloudreve 支持“从机离线下载”,您可以将离线下载任务分流至多台服务器处理,避免这些任务过多占用主机的资源。每个负责处理离线下载任务的节点需要运行一组 Cloudreve 和 Aria2 实例。您可以按照管理面板中的节点添加向导指引配置并添加新节点。

Requirements

  • 1 * 拥有公网ip的机器
  • 1 * 无公网ip的机器
  • frp软件
  • Cloudreve

准备步骤

内网机

安装Cloudreve

参见安装配置Cloudreve

安装frp

参见frp内网穿透教程

安装aria2

apt install aria2
# 创建aria2配置文件
mkdir -p /etc/aria2
nano /etc/aria2/aria2.conf

/etc/aria2/aria2.conf中添加

# 启用 RPC 服务
enable-rpc=true
# RPC 监听端口
rpc-listen-port=6800
# RPC 授权令牌,可自行设定
rpc-secret=<your token>

创建aria2用户

useradd aria2

编辑/etc/systemd/system/aria2c.service

[Unit]
Description= Aria2c Service
After=network.target

[Service]
Type=simple
User=aria2
ExecStart=/usr/bin/aria2c --conf-path=/etc/aria2/aria2.conf

[Install]
WantedBy=multi-user.target

创建离线下载临时文件夹,并设置权限防止报错

mkdir /offline_download
# 将所有者改为aria2用户并设置权限
chown -R aria2 /offline_download
chmod -R 777 /offline_download

配置frp

/etc/frp/frpc.ini

[common]
server_addr = 公网机ip
server_port = 7000

[https2http]
type = https
custom_domains = 访问内网服务用的域名

plugin = https2http
plugin_local_addr = 127.0.0.1:5212

# HTTPS 证书相关的配置
plugin_crt_path = 域名证书crt文件路径
plugin_key_path = 域名证书key文件路径
plugin_host_header_rewrite = 127.0.0.1
plugin_header_X-From-Where = frp
注:这里我公网机Cloudreve使用了https,则暴露内网机服务时必须也使用https

公网机

安装frp、Cloudreve略

配置frp

在服务端frp配置中添加用于访问内网Cloudreve的HTTPS端口

/etc/frp/frps.ini

[common]
bind_port = 7000
vhost_https_port = 访问用端口

配置Cloudreve

现在可以通过https://[公网机ip]:端口访问内网的Cloudreve了

打开公网机上的Cloudreve,点击管理面板离线下载节点接入新节点,打开添加新节点界面,复制生成的从机密钥

在内网机上Cloudreve配置文件中添加:

[Slave]
Secret = 从机密钥

并修改Mode字段的值为slave,重启Cloudreve

在管理面板从机地址中填入https://[公网机ip]:端口,并测试是否正常

下一步启用,在RPC授权令牌中填入aria2c.conf中的rpc-secret

RPC服务地址http://127.0.0.1:6800/

绝对路径填离线下载文件夹在内网机上的位置,如/offline_download

完成后测试aria2通信,检查是否正常

点击下一步设置节点名字,自此,离线下载节点添加完成

前言

自从申请到Office E5之后便有了容量高达5TB的OneDrive。心想怎能没有一个配套的网盘程序呢,于是便有了此文。

何为Cloudreve?

以下内容来自官方文档

Cloudreve 可以让您快速搭建起公私兼备的网盘系统。Cloudreve 在底层支持不同的云存储平台,用户在实际使用时无须关心物理存储方式。你可以使用 Cloudreve 搭建个人用网盘、文件分享系统,亦或是针对大小团体的公有云系统。

安装Cloudreve

本文以Debian 10 (buster),amd64架构,Cloudreve 3.5.3为准,Cloudreve安装在/opt/cloudreve

下载

前往Github Release页面根据系统架构下载最新版本

解压到/opt

mkdir -p /opt/cloudreve
tar -zxvf cloudreve_3.5.3_linux_amd64.tar.gz -C /opt/cloudreve
# 添加可执行权限
chmod +x /opt/cloudreve/cloudreve

获取初始管理员密码

cd /opt/cloudreve
./cloudreve

你应该看到如下图所示的界面

image-20220529184316860

配置systemd

新建/usr/lib/systemd/system/cloudreve.service

[Unit]
Description=Cloudreve
Documentation=https://docs.cloudreve.org
After=network.target
After=mysqld.service
Wants=network.target

[Service]
WorkingDirectory=/opt/cloudreve
ExecStart=/opt/cloudreve/cloudreve
Restart=on-abnormal
RestartSec=5s
KillMode=mixed

StandardOutput=null
StandardError=syslog

[Install]
WantedBy=multi-user.target

而后

# 更新配置
systemctl daemon-reload

# 启动服务
systemctl start cloudreve

# 设置开机启动
systemctl enable cloudreve

管理命令:

# 启动服务
systemctl start cloudreve

# 停止服务
systemctl stop cloudreve

# 重启服务
systemctl restart cloudreve

# 查看状态
systemctl status cloudreve

配置反代

现在可以通过http://[server_ip]:5212来访问Cloudreve了,若有通过HTTPS访问的需求,则需配置反代(以nginx为例)

在网站的server字段中加入:

location / {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_pass http://127.0.0.1:5212;

    # 如果您要使用本地存储策略,请将下一行注释符删除,并更改大小为理论最大文件尺寸
    # client_max_body_size 20000m;
}

配置Cloudreve

访问Cloudreve后台,使用初始用户密码登录

点击右上角的头像→管理面板,会询问是否修正站点URL,确认即可

image-20220529184746382

修改默认用户密码

在管理面板中点击用户,在右边的用户列表中修改即可

添加存储策略

管理面板→存储策略→添加存储策略,如下图所示

image-20220529185722835

各存储策略对比–Cloudreve

各存储策略的官方引导式配置已十分详细,这里不再赘述

杂项

忘记了密码?

/opt/cloudreve/cloudreve --database-script ResetAdminPassword

校准用户容量

/opt/cloudreve/cloudreve --database-script CalibrateUserStorage

前言

frp是什么

frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

项目地址:https://github.com/fatedier/frp/

为什么要写这篇文章

最近在折腾arma3的服务器,饱受没有公网ip之困扰。为此写下这篇教程记录我折腾内网穿透的整个过程。

本文部分参考了官方文档的内容

全文以写作这篇文章的最新版(v0.43.0)为准

配置环境:Debian 10 64-bit

下载frp

wget https://github.com/fatedier/frp/releases/download/v0.43.0/frp_0.43.0_linux_amd64.tar.gz

安装frp

解压

tar -zxvf frp_0.43.0_linux_amd64.tar.gz

复制到系统目录

cd frp_0.43.0_linux_amd64/
mkdir -p /etc/frp
mv *.ini /etc/frp
mv frpc frps /usr/bin

配置systemd

公网机

新建/usr/lib/systemd/system/frps.service:

[Unit]
Description=Frp Server Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/bin/frps -c /etc/frp/frps.ini
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target

随后执行

systemctl enable frps

内网机

新建/usr/lib/systemd/system/frpc.service:

[Unit]
Description=Frp Client Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/bin/frpc -c /etc/frp/frpc.ini
ExecReload=/usr/bin/frpc reload -c /etc/frp/frpc.ini
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target

随后执行

systemctl enable frpc

启动frp

公网机

systemctl start frps

内网机

systemctl start frpc
注:每次修改完配置应通过systemctl restart重启服务

配置frp

普通服务(以SSH为例)

公网机修改/etc/frp/frps.ini

[common]
bind_port = 7000

内网机修改/etc/frp/frpc.ini

[common]
server_addr = 公网机ip
server_port = 7000

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 本地SSH端口
remote_port = 公网访问服务用的端口

其他服务以此类推,如我的Arma 3服务器配置为:

[common]
server_addr = xxx.xxx.xxx.xxx
server_port = 7000

[arma3-1]
type = udp
local_ip = 127.0.0.1
local_port = 2302
remote_port = 2302

[arma3-2]
type = udp
local_ip = 127.0.0.1
local_port = 2303
remote_port = 2303

Web服务(HTTP)

在公网机frps.ini中添加一行

vhost_http_port = 8080

即设置http请求端口为8080

在内网机frpc.ini中添加

[web]
type = http
local_port = 80
custom_domains = your.domain

分别启动frps,frpc。并将your.domain的A记录解析至公网机

访问http://your.domain:8080来访问内网服务

Web服务(HTTPS)

在公网机/etc/frp/frps.ini中添加

vhost_https_port = 443

即设置https请求端口为443

暴露本地HTTP服务

在内网机/etc/frp/frpc.ini中添加

[test_htts2http]
type = https
custom_domains = your.domain

plugin = https2http
plugin_local_addr = 127.0.0.1:80

# HTTPS 证书相关的配置
plugin_crt_path = ./server.crt
plugin_key_path = ./server.key
plugin_host_header_rewrite = 127.0.0.1
plugin_header_X-From-Where = frp

分别启动frpc,frps

访问https://your.domain来访问内网服务

暴露本地HTTPS服务

在内网机/etc/frp/frpc.ini中添加

[https2https]
type = https
custom_domains = your.domain

plugin = https2https
plugin_local_addr = 127.0.0.1:443
# 证书和密钥位置
plugin_crt_path = /etc/frp/server.crt
plugin_key_path = /etc/frp/server.key

杂项

服务端Web界面

在公网机的/etc/frp/frps.inicommon中添加

dashboard_port = 7500
# 用户名和密码
dashboard_user = admin
dashboard_pwd = admin

通过http://[公网机ip]:7500来访问服务端Web界面

客户端Web界面

在内网机的/etc/frp/frpc.inicommon中添加

admin_addr = 127.0.0.1
admin_port = 7400
admin_user = admin
admin_pwd = admin

通过http://127.0.0.1:7400来访问客户端Web界面