WireGuard就不多做介绍了,一个简单,高性能,安全的VPN。使用这个可以让多个vps,或者跟家里电脑组建一个内网。

官方网址:https://www.wireguard.com/


1.Ubuntu 18.04 安装办法,在服务端和客户端都要安装:
$ sudo add-apt-repository ppa:wireguard/wireguard
$ sudo apt-get update
$ sudo apt-get install wireguard


2.centos7.x下安装wireguard:
$ sudo yum install epel-release elrepo-release
$ sudo yum install yum-plugin-elrepo
$ sudo yum install kmod-wireguard wireguard-tools


3.在服务端和客户端上进入 /etc/wireguard/ 目录,然后生成自己机器的公私钥对:
$ wg genkey | tee privatekey | wg pubkey > publickey
然后在/etc/wireguard/ 下会生成 privatekey和publickey两个文件。
如果目录没有需要手动创建:
$ mkdir /etc/wireguard


4.在服务端上开放1820端口用于客户端连接,请注意,是UDP协议。
在所有机器 /etc/WireGuard/ 目录下创建一个名为 wg0.conf 的文件,

内容分别如下:

服务端 wg0.conf:

[Interface]
Address = 192.168.1.1/24
SaveConfig = true
ListenPort = 51820
PrivateKey = 服务端的PrivateKey

[Peer]
PublicKey = 客户端上的publickey 的内容 >
AllowedIPs = 192.168.1.0/24
可以添加多个Peer。

客户端 wg0.conf :

[Interface]
PrivateKey = 客户端的PrivateKey
Address = 192.168.1.2/24

[Peer]
PublicKey = 服务端的PublicKey
Endpoint = 服务端公网IP:51820
AllowedIPs = 192.168.1.1/24


然后在所有机器上启动WireGuard:
$ wg-quick up wg0 #启动服务端
$ wg-quick down wg0 #停止服务端
$ wg #查看节点列表


基本完事儿了。然后再互相ping一下是否能连通。

假如想把A服务器 /home/test/ 文件夹发送到B服务器 /home 目录下:
先在A服务器/root/.ssh/目录下设置好B服务器的登录私钥,如果不设置可以输入密码。

A服务器上

$cd /home/
$:/home#tar czf - test | ssh root@192.168.1.1 -p 22 -i ~/.ssh/密钥文件 tar xzf - -C /home/

首次传输要把B服务器加入known_hosts 里。
如果不使用私钥登录删掉 -i ~/.ssh/密钥文件 即可。

如果要把Mastodon实例本站媒体文件备份到其他服务器/home/目录上
$cd /home/mastodon/live/public/system/
$tar czf - accounts custom_emojis media_attachments | ssh root@192.168.1.1 -p 22 tar xzf - -C /home/

即可。

在魔改Mastodon实例过程中友邻站长给我介绍cherry-pick命令。
我在搜索相关文档后发现这是一个本地命令,将一个分支的commit 快速应用到另一个分支上。
所以想使用这个命令先把需要的仓库拉取到本地。


首先将你需要合并代码的分支添加到本地:

git remote add https://github.com/xxxxx/mastodon.git

然后复制需要合并代码的commitID。
再进行

git cherry-pick commitID

就可以了。然后可能会有冲突。解决完冲突合并即可。这样不用一个个去手动改动。

有时候更新Mastodon,如果没有升级ruby会看到小象砸键盘,
按下面的办法可以更新ruby以完成Mastodon的顺利升级。
有两种方式可以升级。


1.

su - mastodon
cd ~/.rbenv/plugins/ruby-build 
git pull 
cd ~/.rbenv 
rbenv install 3.0.3


2.
/home/mastodon/live/目录下

git -C /home/mastodon/.rbenv/plugins/ruby-build pull //拉取新版本
RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install    //更新到指定版本


由于Mastodon外站缓存文件会非常占用硬盘,并且很多站点都是在便宜的小硬盘vps上搭建所以非常有必要经常清理站外媒体文件。
我们可以通过设置Ubuntu计划任务来实现自动清理站外缓存。

我在Ubuntu18.04系统下按Mastodon官方文档教程搭建的实例。所以如果是用别的方式搭建的请忽略此文章。


su -mastodon //切换到Mastodon用户。
crontab -e //打开编辑器

写入以下代码


SHELL=/bin/bash
PATH=/home/mastodon/.rbenv/shims:/home/mastodon/.rbenv/bin:/usr/local/bin:/usr/bin:/bin

0 2 3 cd /home/mastodon/live && RAILS_ENV=production ./bin/tootctl media remove --days=15

SHELL=/bin/bash
PATH=/home/mastodon/.rbenv/shims:/home/mastodon/.rbenv/bin:/usr/local/bin:/usr/bin:/bin

0 3 3 cd /home/mastodon/live && RAILS_ENV=production /home/mastodon/live/bin/tootctl statuses remove --days=90

SHELL=/bin/bash
PATH=/home/mastodon/.rbenv/shims:/home/mastodon/.rbenv/bin:/usr/local/bin:/usr/bin:/bin

0 4 3 cd /home/mastodon/live && RAILS_ENV=production /home/mastodon/live/bin/tootctl media remove-orphans

SHELL=/bin/bash
PATH=/home/mastodon/.rbenv/shims:/home/mastodon/.rbenv/bin:/usr/local/bin:/usr/bin:/bin

0 5 3 cd /home/mastodon/live && RAILS_ENV=production /home/mastodon/live/bin/tootctl preview_cards remove --days=60


然后保存即可,它会在每周三 2点 3点 4点 5点 运行一次。