Linux VPS使用Caddy快速搭建文件分享平台

Linux VPS使用Caddy快速搭建文件分享平台,这里用的是逗比的脚本。

使用命令:

wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/caddy_install.sh && bash caddy_install.sh uninstall
#备用地址
wget -N --no-check-certificate http://d.12u.net/shell/Caddy/caddy_install.sh && bash caddy_install.sh uninstall

创建IP访问,使用命令:

#以下一整条命令,直接复制即可,80为端口,可以随便修改,且/chinavps为要分享的文件目录
echo ":80 {
 root /chinavps
 gzip
 browse
}" > /usr/local/caddy/Caddyfile

然后我们可以打开http://IP:端口进入界面了。

如果打不开,重新启动下Caddy即可。

/etc/init.d/caddy start

service caddy restart

本文参考:https://www.moerats.com/archives/533/

利用Caddy扩展快速安装FileManager私人网盘/在线文件管理器

说明:

本文转载自:https://www.moerats.com/archives/403/

关于FileManager安装方法之前说过,参考:一个基于GO的轻量级文件管理系统:FileManager安装教程,不过对于小白来说,还是有点麻烦,刚刚看到逗比那里也有个安装方法,很方便。

 截图

请输入图片描述

Caddy FileManager扩展介绍

FileManager是基于Caddy的扩展。它提供文件管理界面,可用于上传/下载/删除/预览和重命名等该目录中的文件。

  • 支持 上传文件
  • 支持 按类型 搜索文件
  • 支持 批量压缩 文件下载
  • 支持 多用户管理(权限可控)
  • 支持 在网页执行 Linux命令
  • 支持 创建 共享链接(限时/永久)
  • 支持 在线编辑 各类文本文件
  • 支持 在线浏览 图片/文本/视频等
  • 支持 新建/重命名/移动/删除 文件和文件夹等
  • 部署简单,几步完成,无需任何依赖环境
  • 等等 …

安装Caddy

Caddy文档:https://caddyserver.com/docs/http.filemanager
Github项目:https://github.com/hacdias/filemanager

运行以下命令:

wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh install http.filemanager
#备用地址
wget -N --no-check-certificate https://www.moerats.com/usr/shell/Caddy/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh install http.filemanager

安装成功后,继续新建一个用于使用的虚拟主机文件夹,例如file(可以自己改):

mkdir /usr/local/caddy/www && mkdir /usr/local/caddy/www/file

配置

1、IP访问
绑定虚拟主机为IP(即通过IP访问),HTTP协议(80端口)。

# 以下全部内容是一个整体,是一个命令,全部复制粘贴到SSH软件中并一起执行!
echo ":80 {
 root /usr/local/caddy/www/file
 timeouts none
 gzip
 filemanager / /usr/local/caddy/www/file {
  database /usr/local/caddy/filemanager.db
 }
}" > /usr/local/caddy/Caddyfile

2、域名HTTP访问
本示例是,绑定虚拟主机为域名(即通过域名访问),HTTP协议(80端口)。

# 以下全部内容是一个整体,是一个命令,全部复制粘贴到SSH软件中并一起执行(注意替换示例域名)!
echo "http://moerats.com {
 root /usr/local/caddy/www/file
 timeouts none
 gzip
 filemanager / /usr/local/caddy/www/file {
  database /usr/local/caddy/filemanager.db
 }
}" > /usr/local/caddy/Caddyfile

3、域名HTTPS访问
本示例是,绑定虚拟主机为域名(即通过域名访问),HTTPS协议(443端口)。

如果你有SSL证书和密匙的话,把SSL证书(xxx.crt)和密匙(xxx.key)文件放到/root文件夹下(也可以是其他文件夹,自己改下面代码),然后这样做:

# 以下全部内容是一个整体,是一个命令,全部复制粘贴到SSH软件中并一起执行(注意替换示例域名)!
echo "https://moerats.com {
 root /usr/local/caddy/www/file
 timeouts none
 tls /root/xxx.crt /root/xxx.key
 gzip
 filemanager / /usr/local/caddy/www/file {
  database /usr/local/caddy/filemanager.db
 }
}" > /usr/local/caddy/Caddyfile

如果你没有SSL证书和密匙,那么你可以这样做:

下面的xxxx@xxx.xx改成你的邮箱,同时需要注意的是,申请SSL证书前,请务必提前解析好域名记录(解析后最好等一会,以全球生效),否则Caddy会申请并配置失败!

# 以下全部内容是一个整体,是一个命令,全部复制粘贴到SSH软件中并一起执行(注意替换示例域名)!
echo "https://moerats.com {
 root /usr/local/caddy/www/file
 timeouts none
 tls xxxx@xxx.xx
 gzip
 filemanager / /usr/local/caddy/www/file {
  database /usr/local/caddy/filemanager.db
 }
}" > /usr/local/caddy/Caddyfile

4、域名HTTP重定向HTTPS
本示例是,域名HTTP重定向为HTTPS

当你是手动指定SSL证书和密匙 来配置的话,Caddy只会监听443端口(https),并不会自动设置80端口(http)的重定向,如果要做重定向的话,可以这样做:

下面的示例代码中,是把http://moerats.com重定向到了https://moerats.com

# 以下全部内容是一个整体,是一个命令,全部复制粘贴到SSH软件中并一起执行(注意替换示例域名)!
echo "http://moerats.com {
 timeouts none
 redir https://moerats.com{url}
}
https://moerats.com {
 root /usr/local/caddy/www/file
 timeouts none
 tls /root/xxx.crt /root/xxx.key
 gzip
 filemanager / /usr/local/caddy/www/file {
  database /usr/local/caddy/filemanager.db
 }
}" > /usr/local/caddy/Caddyfile

当你已经配置完上面步骤后,那就需要启动Caddy了。

/etc/init.d/caddy start
# 如果启动失败可以看Caddy日志: tail -f /tmp/caddy.log

最后就可以通过ip访问filemanager了,用户名和密码均为admin

更多配置方法请参考原文:https://doub.io/jzzy-3/

[ Linux Shell ] 通用无限制在 Linux VPS 上一键全自动 dd 安装 Windows

原文转载自:无限制全自动dd安装Windows

https://moeclub.org/2017/11/19/483/

突破没有VNC,没有救援模式,内存比dd包小的限制.
使用Debian Live CD中的busybox做中间媒介,经过复杂的处理,
使本机的网络参数传进Windows操作系统中,
即使没有DHCP能够让Windows获取网络参数,
也能让Windows操作系统在开机的第一时间能够连通网络.

    • 背景:

1.带Windows的为什么就卖得那么贵?
2.当然是为了更自由的使用自己的机器.

    • 萌咖提供的demo包(1.19G;已激活):

使用的是Windows Embedded Standard 7(Thin PC)作为底包,官方精简.
如需其他组件,例如:完整的桌面特征,Windows照片查看器等.
请参考: Thin PC (Win7 Embedded) 安装组件

    • 使用示例:
    • 注意事项:
      1. 远程登陆账号为: Administrator
      2. 远程登陆密码为: Vicer
      3. 仅修改了主机名,可放心使用.(建议自己制作.)
      4. 使用的公用网盘,如需长期/大量使用此包请自行备份.
      5. 如果因此违反了TOS,萌咖不负任何责任.
    • 可能用到的命令:
    • 温馨提示:

磁盘管理中,点击’C‘盘,右键选择’扩展卷‘,可以直接’增加‘C盘的空间.
激活相关请参考: https://moeclub.org/kms

    • 萌咖提供的可用包:
        与本地用iso镜像安装过程一样,如果你有VNC,可看到全部过程.

 

      • 因为

全新安装!!! 全新安装!!! 全新安装!!!

      •  所以会等待久一点.

      • Windows Embedded 8.1 Industry Pro x64 (2.87G;KVM;XEN;Hyper-V;未激活)

Vmware ESXI服务器虚拟机共享IP部署

部署说明

适用范围

本部署文档适用于

使用了 Vmware ESXI 虚拟化的服务器:

  • 只分配了一个IPv4地址的独立服务器,必须满足:
    • 拥有IPMI远程管理权限 (全部 online.net 服务器)。
    • 或者 拥有有效的IPv6地址 (OVH旗下服务器,包括kimsufi等)。
    • 或者 拥有内部网络,并且可以访问(部分 online.net 服务器)。
  • 分配了多个IPv4地址,不想浪费一个公网 IP作为ESXI的管理。

已测试适用于

  • Online.net
  • OVH集团(包括kimsufi)

准备资源

  • 软路由镜像: 可选 pfsense, 海蜘蛛爱快
  • 控制台镜像: windows镜像(或者带桌面的Linux发行版本)
  • 网络代理: 在支持IPv6的vps 安装shadowsocks服务端(已测试支持IPv6)。本地安装Proxifier + shadowsocks客户端,测试站点 Google IPV6

部署示例

部署注意

请务必阅读前一章 部署说明,确认满足部署条件。以下部署以kimsufi 为例子,使用爱快作为软路由。

部署步骤

1. 使用kimsufi 自动安装系统为 Esxi 5.0

kimsufi_reinstall
一直点击next,安装成功后会有邮件通知,并且默认打开了ESXI的ssh功能。

2. 更新系统版本为最新的 Esxi 6.0 update2

1
2
3
4
5
6
7
# 下载Esxi更新包
  cd /vmfs/volumes/datastore1
  wget "" -O update-from-esxi6.0-6.0_update02.zip
# 安装更新包
  esxcli software vib install -d "/vmfs/volumes/datastore1/update-from-esxi6.0-6.0_update02.zip"
#重启生效
  reboot

3. 安装 VMware vSphere Client

下载地址: vsphereclient
安装后登陆,继续进行下一步。

4. 配置ipv6地址[Online]

  • 配置 Esxi 支持 Ipv6
    esxi_ipv6_enable
  • 配置 静态Ipv6
    kimsuifi 默认分配了一个Ipv6地址 (管理面板 -> IP 可查看),配置信息为

    1
    2
    3
    4
    5
    2607:xxxx:xxxx:xxxx::1          # 分配的Ipv6地址
    
    2607:xxxx:xxxx:xxff:xx:xx:xx:xx # 网关网段内的任意IP, 请绑定该IPv6与分配的IPv6在同一个网卡上
    
    2607:xxxx:xxxx:xxff:ff:ff:ff:ff # 默认IPv6网关

    esxi_ipv6_setting

  • 测试绑定是否正确
    1
    ping6 2607:xxxx:xxxx:xxxx::1 # 在具有Ipv6网络的vps上测试配置的ipv6 是否成功。

5. 创建内部网络

[对于没有IPMI权限机器] 请务必使用Ipv6地址连接 Esxi 服务器进行此步骤操作。否则可能会导致机器无法访问

对VMware vSphere Client(支持Ipv6地址)设置走代理,连接上Esxi 服务器进行操作

  • 创建一个内部交接网络 vswitch(Adding networking), 类型请选择 Virtual Machine,不绑定网卡
  • 对添加的网络添加 VMkernel, 设置一个静态内网IP地址esxi_inner_set

6. 添加爱快软路由以及控制端虚拟机

关于爱快的安装有相关的爱快安装指导,这里不再赘述。需要提醒注意的是:

  • 爱快需要1GB+的内存。内存小户要慎重考虑。
  • 64位与32位的对比。服务器线上使用,推荐64位。
  • 建议第一块网卡连接内网,第二款外卡连接外网。
  • 爱快安装成功后,默认lan 网络为 192.168.1.1/255.255.255.0安装windows虚拟机成功后,连接爱快web控制台进行设置 http://192.168.1.1 默认账号为 admin, 密码为admin。登陆成功后请修改控制台端口以及admin密码。

7. 设置软路由Wan 地址

  • 查看vswitch0 管理网络(VMkernel) 网络设置,并记下网卡的mac地址。
  • 去除vswitch0 管理网络(VMkernel) 的ipv4地址设置 (No Ip Settings)。如果有Ipv6,千万记得保留ipv6 setting。
  • 为了不触发online的端口安全绑定,不要在机器默认的外网网卡上设置Ipv4 (勾选为No IP Settings)
  • 设置软路由的wan 地址,并指定mac地址。
    • 如果你有IPMI权限,那么先在爱快web控制台设定WAN IP,然后登陆IPMI,手动到ESXI 控制台的网络设定去掉IP设置。如果爱快WAN无法生效,可以恢复原来的网络设置,再次连接爱快控制台进行设置。
    • 如果你有Ipv6连接,那么先在爱快web控制台设定WAN IP,然后用ipv6 连接Esxi客户端,关闭网卡的Ipv4地址设定。

8. 设置端口映射

为了通过Ipv4 正常连接Esxi服务器,请在软路由上添加以下端口的映射

  • 22
  • 80
  • 443
  • 902设置软路由开机自启动(非常重要)。
    esxi_autostart.jpg
  • 原文链接:https://www.nfetch.com/SysOps/2016/07/esxi-nat.html

使用Mail-in-a-Box自建电子邮箱和邮件中继服务器

本文作者为香菇肥牛,感谢付出。

原文标题是:使用MIAB搭建专业的私有邮件服务器和邮件中继服务器

原文链接为https://qing.su/article/122.html

本次我将介绍如何使用国外已经发展较为成熟的Mail-in-a-Box套件搭建专业的私有邮件服务器, 并试图将其作为邮件中继服务器, 让第二台服务器使用此服务器发信. 很遗憾, 对于这样一个强大成熟的邮件服务器套件, 国内尚无任何的介绍和使用.

第一部分 邮件服务器的搭建

Mail-in-a-Box套件的安装条件如下: 1, 一个域名; 2, 一个VPS或独立服务器, 内存要求768MB以上, 系统必须是Ubuntu 14.04 LTS 64bit; 3, Mail-in-a-Box安装过后不能和其他任何应用类程序 (比如MySQL, PHP, Apache等) 共存, 因此我建议您在安装前重装系统; 4, 有部分国人垃圾主机商喜欢使用一种垃圾的XenSystem VPS控制面板, 该面板有一个极其傻逼的特性是会在重启的时候重置主机名和hosts文件, 这对于任何一个邮件服务器来说都是灾难性的, 因此不能在使用XenSystem控制面板的VPS上使用这个套件. 5, 因为未知的原因,OVH的服务器无法安装Mail-in-a-Box. 确定您的服务器满足了以上条件之后, 我们就开始操作. 教程中我们以12.34.56.78代替您的IP地址, 以mail.example.com代替您的主机名.

1, 主机名的设置

拿到一个新的VPS或者独立服务器之后要设置主机名,这是使用主机服务的良好习惯,是所有Linux服务器用户的基本功,也是使用任何邮件类服务所必须的操作。一个合格的主机名应当具有这样的格式:

1
xxx.example.com

有些服务器支持example.com这类的主机名,不过对于邮件服务器,请务必设置成xxx.example.com这种格式。在这里我们以mail.example.com为例介绍一下怎样设置主机名(hostname).

首先,修改系统内的自解析文件。编辑: /etc/hosts 在文件中添加一行(或者修改已有的行):

1
12.34.56.78       mail.example.com          mail

然后在SSH中执行:

1
2
echo ‘mail’ > /etc/hostname
hostname -F /etc/hostname

这时,主机名应该设置完毕了。我们执行hostname命令,应该能看到”mail” (不含引号), 执行hostname -f命令,应该能看到”mail.example.com” (不含引号). 如果这里没有设置正确(比如,如果你输入hostname命令检查的时候看到的仍然是长主机名mail.example.com, 说明没有设置正确),请不要继续。

2, 域名的解析

域名的解析是重要的, 尤其是对于一个邮件服务器. Mail-in-a-Box支持DNS的自动设置, 因此我强烈建议您将您的域名交给您的服务器来解析, 而不是用注册商或其他第三方的解析服务. 如果您想详细了解DNS设置在配置邮件服务器中的作用, 后面我会详细介绍一下域名的各项邮件解析记录对于邮件的收发产生了怎样的作用.

第一步,我们需要注册两个NS服务器。请到您的域名注册商处,注册两个NS服务器(中国的好多傻逼注册商新建NS服务器居然还要收费,国外都是免费的,告别国产保平安),分别为ns1.mail.example.com和ns2.mail.example.com且指向您的VPS/独服的IP地址。

第二步,记下您的域名当前的解析记录,然后将您的域名的DNS服务器设置为我们刚才新注册的两个地址。

第三步,添加Reverse DNS, 将12.34.56.78解析到mail.example.com. 国外VPS用户请在您的VPS控制面板中自行设置Reverse DNS, 国外独服用户请您提交工单申请设置Reverse DNS. 国内主机商都是傻逼,不支持Reverse DNS.

 

3, 安装Mail-in-a-Box

1
2
wget https://mailinabox.email/setup.sh
sh setup.sh

安装过程中管理员邮箱请按照xxx@example.com的格式输入; 系统的主机名请输入mail.example.com. 其他的设置默认即可。

第二部分,使用Mail-in-a-Box邮件服务器进行邮件中继

1, 邮件服务器与邮件中继的工作机制

在介绍邮件中继服务器之前,我们有必要介绍一下邮件服务器的工作流程。

一封邮件从诞生到传输到投递,大致需要经过三个主要部件: MUA, MTA, MDA. MUA全称是Mail User Agent, 即邮件用户代理,它的作用是将用户写好的邮件传送给MTA, Mail Transfer Agent, 即邮件中转代理. MTA在接到邮件后,判断该邮件的收件人是否在本域;若在本域,则转交MDA (Mail Delivery Agent) 投递至目标用户的收件箱;若收件人不在本域,则转发至目标用户所在域的MTA, 并进而传达给该域的MDA进行投递。因此我们可以作这样的归纳,即一般情况下A域MTA扮演的角色有二: (1) 接受A域MUA的邮件并传给B域MTA; (2) 接受B域 (或A域) MTA的邮件并传给A域MDA.

然而还有一种特殊的情况是这样的: A域MTA接受B域MUA的邮件并传给C域MTA. 这很有意思——邮件服务器A的MTA既接收了外域MUA传来的邮件,又把收到的邮件投递到另一外域的邮箱。这种情况我们即称为邮件中继。通常,如果我们已经有了一台邮件服务器,其他服务器就可以通过这台邮件服务器进行中继发送而无需再额外搭建邮件服务了。

2, 配置和使用邮件中继服务器

我们仍以Mail-in-a-Box邮件服务器为例,讲解邮件中继服务器的使用。按照第一部分的操作步骤,我们假设您已经成功安装好了Mail-in-a-Box服务器 (称为A), 那么A已是现成可用的邮件中继服务器。在这里扮演中继角色的, 是A服务器上面的Postfix. 在A上新建一个合格的用户,比如test@example.net密码为pass, 下面我们配置另一台服务器B (主机名: xxx.example.net) 以期通过A进行邮件中继发送。

首先,我们在B服务器上安装postfix. 执行:

1
apt-get install postfix

需要注意的是,我们并不将B服务器上的postfix作为MTA使用,只是作为一个MUA, 因此我们在安装时需要选择Satellite System.

安装完毕后,需要手动配置Postfix. 新建文件/etc/postfix/credential, 内容为:

1
mail.example.com   test@example.net : pass

给该文件设权,执行:

1
chmod 600 /etc/postfix/credential

然后在文件/etc/postfix/main.cf尾部添加下面语句:

1
2
3
4
5
6
7
8
9
10
11

mydestination =

smtp_tls_security_level = verify

smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

smtp_sasl_auth_enable = yes

smtp_sasl_password_maps = hash:/etc/postfix/credential

smtp_sasl_tls_security_options =

在SSH中执行:

1
postmap /etc/postifx/credential && service postfix reload

然后我们配置SSL. 将A服务器的/home/user-data/ssl/ssl_certificate.pem拷贝至B服务器相同路径并复制到/usr/local/share/ca-certificates/ssl_certificate.crt, 执行

1
update-ca-certificates

这样,B服务器就会通过已安装好Mail-in-a-Box的A服务器发信了(你需要安装SMTP服务器比如Dovecot/Exim/Mailman或者使用系统mail/mailx等命令发信).

第三部分,邮件服务器对域名解析的要求

很多新手(甚至很多主机商本身)都不知道,一个邮件服务器对于域名解析的要求有多严苛。大部分人,只知道搭建域名邮箱需要添加MX记录。少部分人知道添加SRV记录。还有很多重要的DNS记录,比如Reverse DNS, DKIM, DNSSEC, TLSA等等,鲜为人知。殊不知,发送的邮件会被很多的邮箱直接标记为垃圾邮件,其重要原因就是没有设置好DNS解析。

这里,我简要介绍一下一个合格的域名邮箱对于域名解析的要求。

1, MX记录。

MX记录大家都知道,我这里也不再啰嗦。但必须要提及的一个重要常识是同域名的MX记录和CNAME记录一般不能共存。准确地说,是CNAME记录和其他所有类型记录 (DNSSEC除外) 一般不能共存。有部分CDN厂商还有很多傻逼国内主机商,他们的虚拟主机不提供IP绑定而是让你把你的域名CNAME到一个子域名上面,这时如果你再用同样的域名设置MX记录用企业邮箱,那么你的邮箱收信将会经常掉信。这是CNAME记录的解析方式所决定的。因此,尽管部分DNS解析服务提供商支持同域名CNAME与MX解析,请不要这么做,否则你的MX记录将可能无效。

2, Reverse DNS

国人如果没有用过国外主机商的产品,基本不会知道这是什么东西。因为所有国内的主机商都不支持Reverse DNS. Reverse DNS将IP地址解析到邮箱服务器主hostname上,旨在提供一种途径,使得收件方能够追溯邮件的来路。若rDNS未设置,将被诸多邮件系统标记为可疑。正确设置rDNS可以将SpamAssassin的Spam Score评估降低0.3分左右。

3, DKIM, DMARC, SPF

同样的,国内的傻逼企业邮箱服务提供商不会告诉你怎样设置DKIM和DMARC的。这些DNS记录旨在提供一种途径,使得收件方能够知道是“你”或者说是从“这台服务器”发送了这封邮件,而不是由其他人冒用你的地址发送的邮件。正确设置这些记录可以将SpamAssassin评估分降低0.5~1.0左右。

4, DNSSEC

说多了都是泪。有次我打电话给万网(中国最大的虚拟主机和互联网域名服务提供商)的客服问能不能设置com域名的DNSSEC记录。结果客服一脸懵逼:“那是什么?”忍不住再骂一遍国产主机和域名服务商都是傻逼。DNSSEC记录需要在域名注册商处设置,它提供了额外的验证途径,以提高来自该域邮件的可信度。

综上,本文介绍了使用技术成熟的MIAB套件搭建私有邮件服务器和邮件中继服务器的方法、邮件服务器的工作原理及其对域名DNS记录的要求。

CyberPanel:基于 LiteSpeed 的主机面板

cPanel/DirectAdmin 太大太贵,ep全身是洞,vesta功能不全。最终,我找到了CyberPanel。

功能

不同级别的用户:管理员,分销商和普通账号
自动申请SSL证书(Let’s Encrypt)
FTP服务器
轻量化的DNS服务器
phpMyAdmin
电子邮件(Rainloop)
文件管理器
PHP版本管理器,可以分别为不同的站点设置不同版本的PHP (5.3/5.4/5.5/5.6/7.0/7.1)
防火墙
一键备份/还原

更多内容与功能,持续更新中

官方网站:https://cyberpanel.net/

 

 

系统需求

CentOS 7.x
SELinux 关闭
Python 2.7
512MB 内存
10GB 硬盘

英文原版安装

wget http://cyberpanel.net/install.tar.gz
tar zxf install.tar.gz
cd install
chmod +x install.py
python install.py [你的IP地址(可选)]

目前chinavps已经在另外一台dedi的机器上安装成功并且顺利运行了,还是比较方便的。

中文安装方式:

国内服务器请使用以下命令,已经替换MariaDB为阿里云源。

sh <(curl -k https://cn.cyberpanel.net/download/install-cn.sh || wget –no-check-certificate -O – https://cn.cyberpanel.net/download/install-cn.sh)

国外服务器请使用以下命令,MariaDB官方源。

sh <(curl -k https://cn.cyberpanel.net/download/install.sh || wget –no-check-certificate -O – https://cn.cyberpanel.net/download/install.sh)

 

AriaNg + Caddy FileManager: 打造自己的离线下载网盘

简单介绍

Aria2 是一个命令行下运行、多协议、多来源下载工具,支持磁力链接、BT 种子、HTTP、FTP 等下载协议,当然因为它是命令行下载工具,所以我们想下载一个东西还需要去敲命令自然是不方便,于是就有一些人根据 Aria2 的 API 开发了一些在线管理面板,可以直接在网页上面添加管理任务。

本教程介绍的是 AriaNg,Github 项目:https://github.com/mayswind/AriaNg

Aria2 是一个后端 (服务端) 的程序,而 AriaNg 是一个前端 (HTML+JS 静态) 控制面板,不需要和 Aria2(后端 / 服务端)放在一个服务器或者设备中,你甚至可以只在服务器上面搭建 Aria2 后端,然后访问别人建好的 AriaNg 前端面板,也可以远程操作 Aria2 后端!

注意不要使用 HTTPS 协议,监听地址不支持的!

演示

  • 我用 Hostsolutions 的月付 2 欧的特价机器搭建了一个,购买的话看这里。
    截一下图:

教程环境

一个纯净的 Debian 7 x64 系统的服务器(VPS)
一个域名(可选)

准备工作

apt-get update -y && apt-get upgrade -y

后端安装

这里指的就是 Aria2

  • 换源
mv /etc/apt/sources.list /etc/apt/sources.list.bak && wget --no-check-certificate -P /etc/apt "https://softs.fun/Bash/sources/us.sources_stretch.list" && mv /etc/apt/us.sources_stretch.list /etc/apt/sources.list
  • 安装 Aria2 等软件
apt-get update && apt-get install aria2 curl unzip vim -y
  • 还原备份的 包管理器源,注意下次再安装软件的时候,请先运行 apt-get update ,否则包列表还是前面测试版源!
rm -rf /etc/apt/sources.list && mv /etc/apt/sources.list.bak /etc/apt/sources.list
  • 如果以上过程没有报错,然后通过以下命令来检查 Aria2 是否安装成功。
aria2c -v
# 正常情况下应该返回 一大串的版本信息,如果返回 找不到命令,那么说明安装失败。

配置后端

# 创建Aria2配置文件夹
mkdir /root/.aria2 && cd /root/.aria2
# 下载Aria2配置文件、DHT文件(BT有没有速度就靠这个)
wget --no-check-certificate https://softs.fun/Other/Aria2/aria2.conf
wget --no-check-certificate https://softs.fun/Other/Aria2/dht.dat
# 创建一个空的 Aria2 下载任务保存文件
echo '' > /root/.aria2/aria2.session
  • 默认我已经配置好了 Aria2 的配置文件,如果你想要修改,那么你可以输入 vi /root/.aria2/aria2.conf 或者 把这个文件下载到本地修改(有中文注释,# 井号是注释的,不懂的参数不要乱动,默认就好)。
  • 主要就是下面这两个选项:下载目录 (dir)、RPC 监听端口 (rpc-listen-port)、RPC 令牌 (rpc-secret),默认是下面这样:
下载目录:dir=/usr/local/caddy/www/aria2/Download
RPC监听端口:rpc-listen-port=6800 (默认#注释)
RPC令牌:rpc-secret=doub.io (如果不需要,则修改配置文件在参数前面加上 # 注释即可)
RPC令牌就相当于 Aria2(后端/服务端)远程API连接的授权密码,默认是开启的PRC令牌是 doub.io
正式使用建议更改 PRC监听端口和令牌 ,避免安全隐患!

后端使用方法

  • 启动 Aria2(后端 / 服务端)
nohup aria2c -c &>/root/.aria2/aria2.log &

如果使用 nohup 进程无法后台运行或者其他问题,可以使用 screen 来做这个事儿

  • 停止 Aria2(后端 / 服务端)
kill -9 $(ps -ef|grep "aria2c"|grep -v "grep"|awk '{print $2}')
  • 重启就是先停止后启动喽~
  • 查看 Aria2 输出的日志
    这个命令是监控 日志输出,如果想要退出监控,那么按 Ctrl+C 键即可。
tail -f /root/.aria2/aria2.log

前端安装

这里指的就是 AriaNg / FileManager

  • 这里安装 Caddy 一个很简单的 HTTP 服务器,如果你想要使用 Nginx/Apache 或者 LNMP 一键包之类的,使用方法自行谷歌。
wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh install http.filemanager
  • 如果上面这个脚本无法下载,尝试使用备用下载:
wget -N --no-check-certificate https://softs.fun/Bash/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh install http.filemanager
  • 安装 Caddy 成功后,继续新建一个虚拟主机文件夹,
mkdir /usr/local/caddy/www && mkdir /usr/local/caddy/www/aria2
  • 写入配置到 Caddy 配置文件,注意下面这五行要一起复制粘贴,不是一行一行复制!

注意:

  • 将域名替换为你自己的!
  1. 第四行basicauth / user233 doub.io和第七行user233:可以删除,不删除代表的意思是你的前端用户和密码分别是:user233doub.io,你也可以改成你想要的用户名密码。
echo "dl.liyuans.com {
root /usr/local/caddy/www/aria2
gzip
basicauth / user233 doub.io
filemanager /Download {
show /usr/local/caddy/www/aria2/Download
user233:
allow_new true
allow_edit true
allow_commands true
}
}" > /usr/local/caddy/Caddyfile

安装 AriaNg

# 新建Aria2下载文件夹 并进入文件夹 #
mkdir /usr/local/caddy/www/aria2/Download && cd /usr/local/caddy/www/aria2

# 下载并解压 AriaNg 文件,注意下面这一段是需要一起输入的,这段代码会自动检测并下载最新版本 #
Ver=$(curl -m 10 -s "https://github.com/mayswind/AriaNg/releases/latest" | perl -e 'while($_=<>){ //tag/(.*)">redirected/; print $1;}') && wget "https://github.com/mayswind/AriaNg/releases/download/${Ver}/aria-ng-${Ver}.zip" && unzip aria-ng-${Ver}.zip && rm -rf aria-ng-${Ver}.zip

# 赋予虚拟主机文件夹权限 #
chmod -R 755 /usr/local/caddy/www/aria2
  • 上面代码都执行完后,就可以启动 Caddy 了。
service caddy start
  • 如果 Caddy 运行正常,那么你打开你的域名即可看到 AriaNg 的页面了!

配置 AriaNg

  • 进入 AriaNg 的网页后,默认是英文语言,你可以 点击左侧选项菜单 —— AriaNg Setting ,然后在新页面中 Language 选项选择 简体中文,然后刷新页面后即可生效。
  • 如果你的 Aria2(后端 / 服务端) 还没有运行,请先根据 Aria2 使用说明 启动 Aria2(后端 / 服务端)。
  • 依然是 左侧选项菜单 —— AriaNg 设置 —— RPC —— 依次输入 / 选择下图各选项。
Aria2 RPC 主机:就是填写你 安装Aria2(后端/服务端)的服务器IP 或者 域名。
Aria2 RPC 端口:默认 6800 。
Aria2 RPC 协议:选择 http ,如果你配置了https,那么就选择https。
Aria2 RPC 密匙:输入你的RPC密匙(令牌),如果你安装后没有修改配置文件中的RPC密匙(令牌),那么你这里需要填写 doub.io 。
强烈建议打开 RPC密匙(令牌)来保证安全性。
  • 设置完毕后,刷新页面即可生效。
  • 正常情况下,右上角会提示 连接成功,点击左侧选项菜单 —— Aria2 状态,即可看到当前 AriaNg 前端面板连接到的 Aria2(后端 / 服务端) 的信息。

其他

  • Caddy 使用方法
启动:service caddy start
停止:service caddy stop
重启:service caddy restart
查看状态:service caddy status
Caddy 配置文件:/usr/local/caddy/Caddyfile
Caddy 虚拟主机:/usr/local/caddy/www
AriaNg 虚拟主机文件夹:/usr/local/caddy/www/aria2
AriaNg 下载文件夹:/usr/local/caddy/www/aria2/Download

注意事项

  • Caddy 启动失败,打开 http://ip 显示的是 It works !
    一些系统会自带 apache2 ,而 apache2 会占用 80 端口,导致 Caddy 无法绑定端口,所以只要关掉就好了。
netstat -lntp
# 我们可以通过这个命令查看是不是被其他软件占用了 80 端口。

不过 apache2 会默认开机自启动,如果不需要可以关闭自启动或者卸载 apache2 。

  • 停止 Apache2
service apache2 stop
# 尝试使用上面这个关闭,如果没效果或者提示什么错误无法关闭,那就用下面这个强行关闭进程。
kill -9 $(ps -ef|grep "apache2"|grep -v "grep"|awk '{print $2}')
  • 取消开机自启动
update-rc.d -f apache2 remove
  • 卸载 Apache2
apt-get remove --purge apache2
  • 关闭 Apache2 后,就可以尝试启动 Caddy ,并试试能不能打开网页。
service caddy stop
service caddy start

个人网站部署策略(二) – 反代端部署https

(请别忘了将下文的mjj.party替换成你自己的网站域名)

接上一篇的,反代网站建好以后,继续输入命令:
curl https://get.acme.sh | sh
(如果这一步出错那么先apt-get install -y curl)
然后source ~/.bashrc 就装好了acme,我们用它来签发证书

建一个临时的网站目录 mkdir -p /www/mjj.party
编辑我们的反代网站配置文件:
vi /etc/nginx/sites-enabled/mjj.party
进入编辑器后光标移动到access_log off这行,按o,在这行下面粘贴插入以下内容:

        location /.well-known {
            alias /www/mjj.party/.well-known;
        }

然后esc、输入:wq回车(保存退出)

重启nginx使修改生效 service nginx restart

签发证书
acme.sh –issue -d mjj.party -d www.mjj.party -w /www/mjj.party
看到success字样就是成功了
再建个目录 mkdir /www/ssl
安装证书
acme.sh –installcert -d mjj.party -d www.mjj.party –keypath /www/ssl/mjj.party.key –fullchainpath /www/ssl/mjj.party.key.pem –reloadcmd “service nginx reload”

然后 openssl dhparam -out /www/ssl/dhparam.pem 2048
(如果机器配置低,这一步可能执行时间有些久,耐心等候)

再次修改网站配置文件 vi /etc/nginx/sites-enabled/mjj.party
进入编辑器后光标移动到 listen 80; 这行,按o,在下面一行粘贴插入

        listen 443;

按esc,光标再移动到最后一个}的上一行按o(就是在server这个大括号里添加内容)
粘贴入以下

        ssl on;
        ssl_certificate /www/ssl/mjj.party.key.pem;
        ssl_certificate_key /www/ssl/mjj.party.key;
        ssl_dhparam /www/ssl/dhparam.pem;
        #add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";

如果想hsts强制开启https那么就去掉最后那个注释符#,不过我非常不建议这样做

按esc 输入:wq回车保存退出
service nginx restart
结束

可以顺便检查下crontab里是否已成功添加了定期重签任务:
crontab -l
看到有acme的就对了

本文转载自:http://gaoit.de/a/3

个人网站部署策略 – 反代服务器架设超简易教程

很多站长可能都有同样的烦恼,直连中国线路好的服务器价格昂贵或者不稳定,而物美价廉又稳定的服务器呢线路不好,访问速度慢,两者很难兼得或者成本很高。

这个难题其实用一个很简单的部署策略就可以解决,就是加一层前端反代。用线路好的小规格vps,反代线路差但是稳定强健的后端服务器。

具体操作如下:

后端先架好你的网站,就是该装的php mysql apache啥的,都有很多一键包,这里不多说了。

找一个线路好的小vps做前端,修改网站域名的a记录到这个前端。然后前端简单装一个debian就行,进ssh后运行命令 apt-get install -y nginx
(这一步如果出错就先apt-get update 更新一下软件包)
nignx装好后 rm -rf /etc/nginx/nginx.conf
然后vi /etc/nginx/nginx.conf
进入vi编辑器之后按一下i进入插入模式,粘贴入以下内容

user www-data;
worker_processes 4;
pid /run/nginx.pid;
events {
	worker_connections 768;
}
http {
	sendfile on;
	tcp_nopush on;
	tcp_nodelay on;
	keepalive_timeout 65;
	types_hash_max_size 2048;
	server_tokens off;
	include /etc/nginx/mime.types;
	default_type application/octet-stream;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
	ssl_prefer_server_ciphers on;
	access_log /var/log/nginx/access.log;
	error_log /var/log/nginx/error.log;
	proxy_connect_timeout 5;
        proxy_read_timeout 60;
        proxy_send_timeout  5;
	proxy_buffer_size 16k;
	proxy_buffers  4 64k;
	proxy_busy_buffers_size 128k;
	gzip on;
	gzip_disable "msie6";
	gzip_min_length  1k;
	gzip_buffers     4 16k;
	gzip_http_version 1.0;
	gzip_comp_level 2;
	gzip_types       text/plain application/x-javascript text/css application/xml;
	gzip_vary on;
	include /etc/nginx/conf.d/*.conf;
	include /etc/nginx/sites-enabled/*;
}

然后 :wq回车 保存退出,这就完成了nginx的反代设置
接下来就可以建立一个反代网站了:

vi /etc/nginx/sites-enabled/mjj.party
进入编辑器后按i并粘贴入以下内容:

server {
        listen 80;
        server_name mjj.party www.mjj.party;
        index index.html index.htm index.php;
        access_log off;
        location / {
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Referer http://mjj.party;
                proxy_set_header Host $host;
                proxy_set_header Cookie $http_cookie;
                proxy_pass http://1.1.1.1;
        }
}

(其中mjj.party替换成你的网站域名, 1.1.1.1换成你的后端服务器ip)
然后 :wq回车 保存退出,service nginx restart 重启nginx
结束

应用这个策略,还可以灵活的应付ddos攻击,你只要注意保护后端ip不要泄露,攻击者只能打你的前端,而你要做的只是适时的换一个前端就行了。

Debian LNMP/LEMP/WordPress一键脚本

本文修改自Actgod的Damnp.sh和gubo的一键脚本,服务器环境从Nginx+Apache+MySQL+PHP替换成了Nginx+MariaDB+PHP。继承了该脚本的优点,占用资源小,三局命令安装Wordpress,全部用官方源包安装,不用编译节省大量时间。

#脚本和文章介绍部分都修改自actgod.com和gubo.org,在这里再次表示我的由衷感谢,之所以转载过来就是怕类似于actgod的网站没续费而这么好的脚本失传。

Lemp.sh详情 Linux+Nginx+MariaDB+PHP

  • L – Linux: 脚本目前适用于Debian8的32及64位系统
  • E – Enginex(Nginx): 高性能省资源的服务器
  • M – MariaDB: SUN被Oracle合并之后,MySQL有被封闭风险情况下,MySQL创始人倡导的MySQL替代品
  • P – PHP: 流行的WEB语言

因为我的所有网站应用的都是Wordpress,Nginx日趋完善,一些新的功能例如HTTP/2也能很好地实现,Apache就不是那么必要了。加之一直想切换到MariaDB,所以花了一些时间进行修改,方便自己使用。脚本目的在于快速部署基本的生产环境和Wordpress,Typecho, Carbon Forum等常用CMS/博客/论坛系统,如果需要更强大的功能请再行寻找或者留言讨论。

目前所能做到的就是快速部署可用的LNMP环境,性能调优方面还没有深入研究,需要更多的建议。

#Nginx前端+Maria数据库+PHP
#所安装包全部来自官方源,仅对配置文件进行参数调优,没有任何添加
#无需长时间编译
#三条命令即可开始wordpress
#一键自由更改ssh端口,增强安全性
#优化VPS性能,小内存可用
#增加在线gmail代理工具Rainloop的一键安装
请一定注意系统,Debian9, Debian8,Debian7选择对应脚本

Debian 9

适用于Debian9的32位及64位系统

Debian 8 及小内存

适用于Debian8的32位及64位系统

适用于小内存64M~128M的VPS,Debian8的32位及64位系统。

Debian 7 及小内存

适用于Debian7的32位及64位系统, 建议内存大于等于256M. Debian7不带MariaDB,故使用MySQL作为数据库

适用于Debian7的32位及64位系统, 建议在内存在64M到128M之间使用

Debian8 五分钟/一键安装Wordpress

有点标题党好吧,其实是三句命令,但是很简单很快速这点没有骗人哦
#命令范例默认是Debian8。Debian7和Debian8小内存版本请看上面脚本下载地址

#Debian8下载脚本
#安装稳定版Nginx+PHP+MariaDB
bash lemp.sh stable
#安装wordpress,www.yourdomain.com即为你的域名
bash lemp.sh wordpress www.yourdomain.com

五分钟/一键安装typecho

#命令范例默认是Debian8, Debian7和小内存版本请看上面脚本下载地址

#Debian8下载脚本
#安装稳定版Nginx+PHP+MariaDB
bash lemp.sh stable
#安装Typecho,www.yourdomain.com即为你的域名,数据库用户名和密码会显示在屏幕上
bash lemp.sh typecho www.yourdomain.com

重要:更改SSH端口

默认的22端口会经常被黑客扫描,所以更改端口是一定要做的。如果用的是Bandwagonhost等默认随机化端口的服务商,用完这个脚本之后端口会被恢复为22,需要更改一次端口才能登陆。

#更改端口为22022,数字可以自由更换
bash lemp.sh sshport 22022
#重启使新端口生效
reboot

命令列表说明

bash lemp.sh system # 优化系统,删除不需要组件,dropbear替代sshd
bash lemp.sh exim4 # 更轻量级邮件系统
bash lemp.sh mysql # 安装mysql
bash lemp.sh nginx # 安装nginx,默认一个进程,可调整
bash lemp.sh php # 安装php,包含php5-gd,可使用验证码
bash lemp.sh stable # 安装上面所有,软件是debian官方stable源,版本较旧
bash lemp.sh wordpress www.yourdomain.com # 一键安装wordpress, 数据库自动配置好。
bash lemp.sh vhost www.yourdomain.com # 一键安装静态虚拟主机。
bash lemp.sh dhost www.yourdomain.com # 一键安装动态虚拟主机,方便直接上传网站程序。
bash lemp.sh typecho www.yourdomain.com # 安装typecho,提供数据库名,密码等自主添加完成安装
bash lemp.sh phpmyadmin www.yourdomain.com # 一键安装phpmyadmin 数据库管理软件,用http://www.yourdomain.com/phpMyAdmin访问
bash lemp.sh addnginx 2 #调整nginx进程,这里2表示调整后的进程数,请根据vps配置(cpu核心数)更改
bash lemp.sh sshport 22022 #更改ssh端口号22022,建议更改10000以上端口。重启后生效。
bash lemp.sh rainloop www.yourdomain.com  # 增加Gmail的web客户端一键安装
bash lemp.sh carbon www.yourdomain.com  # 增加Carbon Forum的一键安装

配置文件列表

/etc/nginx/nginx.conf  #nginx配置文件,可根据vps的cpu核心数更改进程数最大限度利用
/etc/php5/fpm/php.ini    #php配置文件
~/.my.cnf                 #mysqlroot密码保存文件
/etc/nginx/conf.d/          #nginx下各个具体网站配置文件所在文件夹

日志Log文件列表

/var/log/nginx   #nginx的log文件所在文件夹,所有网站都在一个文件中
/var/log/php5-fpm.log  #php的log文件,所有网站都在一个文件中

出错请参考日志

/tmp/lemp.log

Nginx出于CPU负担等考虑,默认不启用Gzip,想开启Gzip的朋友请参考:Nginx启用gzip