日志
- 2023-05-13:优化“SSH之VPS相互信任”的相关教程。
- 2023-05-10:更新rsync相关教程。
- 2023-04-08:新增SSH防自动断开的教程。
- 2023-03-30:更新
SSH之登陆黑/白名单
的相关设置。 - 2023-02-16:新增tree用法;改良其它,如目录结构。
- 2022-11-13:改良了SSH相关的教程并增强其可读性;更新部分代码以增强可读性!
前言
经过前面一系列学习,相信你已经对Linux的很多基本操作都很了解了,比如cd
、ls
;使用Vim编辑器也越来越顺;还会用一些简单的高级工具,比如htop
和ncdu
;了解了一些目录管理的实践方案;甚至已经安装了第一个Docker应用Ward
面板。
我觉得,现在你基本已经入门Linux了。以后的路要自己走了。记得好好地利用Google和Github!
这里再助攻一波,发一个我玩Linux以来,我觉得比较实用的命令。你在学习Linux的时候,也应该专门建立一个markdown文件记录一些你常用的命令,然后时常回顾和复习。
值得一说的是,如果你用的是自己的主机搭配Ubuntu等,其实还有很多可能会用到的比较复杂的设置,比如修改镜像源、设置本地静态ip、安装无线网卡驱动、禁止更新Linux内核啥的。考虑到我们都用的VPS,就不细说了。有空再补充。
另外,这一页面就不包括咱们此前学习的cd
、ls
之类的常用命令了,只包括一些实用但比较少用的tips。此页面会动态更新。
话不多说,咱们上车!
清理日志
如果你的VPS运行时间很久的话,日志管理对于节省空间是很重要的。这里有个文章可以简单参考一下。Docker的日志管理可见:《Docker系列 配置Docker全局环境》。
# 删除目前所有的系统日志
sudo rm -rf /var/log/journal/*
# 查看日志管理软件是否存在
which journalctl # /bin/journalctl
# 日志保存的最长时间是1周
sudo journalctl --vacuum-time=1w
# 日志保存的最大容量是300M
sudo journalctl --vacuum-size=300M
清理日志的自动化脚本
可将Linux系统日志所占空间控制到一个较低的水平。Debian/Ubuntu均适用(日志保存在/var/log里的系统原则上均适用),CentOS未测试。
先检查一下依赖:
# 检查依赖,没有的话要自己用apt-get安装
which xargs # /usr/bin/xargs
which tee # /usr/bin/tee
新建一个文件,比如clean_system_log.sh
:
vim ~/clean_system_log.sh
添加以下内容(按需注释某些内容即可):
#! /bin/bash
# 清除遗留在/var/cache中的已取回的包文件的本地仓库。它清除的目录是 /var/cache/apt/archives/ 和 /var/cache/apt/archives/partial/
apt-get clean
# clean journals
rm -rf /var/log/journal/*
# clean .gz logs
# ls -hlS /var/log/ | grep -E '.gz'
ls /var/log/ | grep -E '.gz' | xargs -i rm -r /var/log/{}
# Echo nothing to logs
# 这里并未将所有的log去除,只是将那些体积比较大的log去除。强迫症患者可以自己添加一些项目进去,比如tallylog/faillog之类的。另外,auth可以查看登陆记录,在意的话可以不删除。
ls /var/log/ | grep -E 'syslog|messages|user|daemon|btmp|auth|mail' | xargs -i tee /var/log/{}
# Mail
ls /var/mail | xargs -i tee /var/mail/{}
# Report
echo 'Clean all system logs!'
进行权限和软链接映射:
sudo chmod +x ~/clean_system_log.sh && sudo ln -s `echo ~`/clean_system_log.sh /usr/bin/clean_system_log
最后检查一下是否成功添加为环境变量:
which clean_system_log # /usr/bin/clean_system_log
输出/usr/bin/clean_system_log
的字样说明已经成功。
使用时,只要运行sudo clean_system_log
即可。你也可以添加到root用户的cron
任务里自动地定期清理系统日志,比如:
# clean system logs every 10-day
* * */10 * * root /usr/bin/clean_system_log >/dev/null 2>&1
北京时间
中国用户一般是使用北京时间,所以我们最好修改一下时间以适应自己的习惯。
查看时间:
# 查看时间
date
如果要修改时区,可运行下面命令:
# 为当前用户
tzselect
按提示操作即可。如果为当前用户设置选定时区,可用:
sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
如果要为所有用户设置选定时区,则编辑下面文件:
# 为所有用户
sudo vim /etc/profile
添加以下记录:
TZ='Asia/Shanghai'; export TZ
source /etc/profile && source ~/.bashrc
中英文界面切换
如果想修改默认显示语言,可以修改下面文件:
# 修改文件
sudo vim /etc/default/locale
英文一般填写以下内容:
# 英文
LANG="en_US.UTF-8"
LANGUAGE="en_US:en"
中文一般填写以下内容:
# 中文
LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh"
重启系统生效。
一般还是建议英文吧,慢慢就会习惯了。查bug也方便一些不是?
文件权限
非常重要!非常重要!非常重要!
我们之前也有了解过一些了,就是类似这种-rw-r--r--
。
强烈推荐学习参考资料Linux chmod命令!
你也会知道1,2,4
和x,w,r
的关系以及他们的排列组合/和在改变文件权限上的灵活运用。自己创建一个文件来试玩吧!这个必须要掌握!
这里给一些常用的用户名(组):
www-data:www-data
的id是33:33
root:root
的id是0:0
参考资料:
find:搜索文件
find . -name \*.gcno -o -name \*.gcda # | xargs rm -f
tree:文件列表
更多细节请参考Linux tree命令 | 菜鸟教程 (runoob.com)或运行
tree --help
查看。
tree是非常好用的文件层级结构查看命令。除了tree -h
,比较实用的形式有:
- 形式1:
tree -h -L 2
├── [ 4] private
│ ├── [ 3] backup
│ └── [ 5] lucky-huangwb8
└── [ 8] share
├── [ 8] docker
├── [ 5] dump
├── [ 2] images
├── [ 2] private
├── [ 2] snippets
└── [ 4] template
- 形式2:
tree -augfCD -L 2
.
├── [bensz bensz Feb 14 13:56] ./private
│ ├── [bensz users Feb 14 13:56] ./private/backup
│ └── [bensz users Feb 17 23:39] ./private/lucky-huangwb8
└── [bensz bensz Feb 17 19:56] ./share
├── [bensz bensz Feb 17 23:14] ./share/docker
├── [bensz bensz Feb 18 07:50] ./share/dump
├── [bensz bensz Feb 14 12:24] ./share/images
├── [bensz bensz Feb 14 12:24] ./share/private
├── [bensz bensz Feb 14 12:24] ./share/snippets
├── [bensz bensz Feb 17 23:13] ./share/softwares
└── [bensz bensz Feb 14 12:24] ./share/template
SSH之防自动断开
SSH登录Linux长时间不操作就会自动断开问题 – 腾讯云开发者社区-腾讯云
因为RackNerd的机器线路不好,开这个可以大大降低日常使用时的断线概率,推荐使用!
有时候,连接ssh时如果没有活动(比如打代码或开htop监测),ssh连接很快就断开,这种现象经常会给我们带来困扰。它在《Linux基础 个人VPS安全》的禁Ping操作后更加常见。因此,我建议将ssh的默认连接时间延长,以防连接中的Shell频繁掉线。具体作法如下:
在该VPS的Shell里输入:
vi /etc/ssh/sshd_config
找到下面2个参数:
#ClientAliveInterval 0
#ClientAliveCountMax 3
去掉前面的注释,并修改值为:
ClientAliveInterval 15
ClientAliveCountMax 6
ClientAliveInterval
指定了服务器端向客户端请求响应的时间间隔, 默认是0, 不发送请求;改为15秒,则15秒发送一次请求,客户端自动响应,这样就保持长连接不会自动断开了。你也可以改一个比15更小的正整数。
ClientAliveCountMax
:指定了服务器发出请求后客户端没有响应的次数达到一定值, 就会自动断开。默认值为3,这里使用6次,以阻碍ssh过早地断开。
重启sshd服务,使配置生效:
service sshd restart
SSH之访问其它主机
通过ssh访问另一台主机。不过我们平时都有MobaXterm、FinalShell之类的管理软件,感觉这个功能不是很需要。
# ssh访问另一台主机
ssh [email protected]
# ssh根据特定的端口访问,比如1234
ssh [email protected] -p 1234
参考资料:
SSH之VPS相互信任
ssh公私钥是一个非常实用的功能,特别是你的VPS有很多用户时。建议基于bitwarden来管理VPS和公私钥(即附件功能)。
基本的原理,就是把你的本地主机用户的ssh公匙文件复制到远程主机用户的~/.ssh/authorized_keys
文件中。
比如,对于某用户,在本地VPS运行此命令:
ssh-keygen -t rsa
会有三提示输入,第一次是生成的文件名字,第二次和第三次是输入密码,可以直接回车三次则不设置密码。我觉得家用级别可以不用专门设置密码,直接空白即可。最后,用户目录~/.ssh/
会产生两个文件:id_rsa
(私钥)和id_rsa.pub
(公钥)。
当然,一种更成熟的做法是:
ssh-keygen -t rsa -C "VPS1.Pubkey-to-VPS2"
这样产生的公钥和私钥就会有名字。这种做法建议在多人使用VPS的情况下使用,这样你就知道该VPS信任的公钥对应哪一个用户。
之后,你可以通过这个命令将本地公钥添加到远程服务器:
# ssh-copy-id -p <远程服务器ssh端口> <远程服务器用户名>@<远程服务器IP或域名>
ssh-copy-id -p 22 [email protected]
按提示输入密码即可。之后,你也可以连接到远程服务器里看看公钥是否存在:
# ssh -p <port> <远程服务器用户名>@<远程服务器IP或域名>
ssh -p 22 [email protected]
cat ~/.ssh/authorized_keys # 内容会包括本地服务器的公钥
当然,你也可以直接登陆远程主机,然后在远程主机的root用户主目录下的.ssh
目录内新建(比如通过Vim)一个名为authorized_keys
的文件。将本地主机上的id_rsa.pub
的内容拷贝到该文件内。这样在本地主机上使用scp
命令复制文件到远程主机上将不提示输入密码了,可以直接复制;该本地主机登陆该远程主机时也不需要密码。
你也可以为VPS配置多个ssh公钥。很简单,直接在该VPS的.ssh
目录中的authorized_keys
文件中添加你想要信任的主机的id_rsa.pub
的内容即可!
我觉得ssh-keygen
可以好好的利用,比如为特定主机设定一定期限的公钥。自己ssh-keygen --help
摸索吧!
这个功能在VSCode作为终端工具的时候很常用,可以看一下我的博文《VSCode作为终端工具替代FinalShell和MobaXterm》。
参考资料:
- 配置多个SSH公钥流程
- ubuntu 添加多个ssh公钥和私钥
- 使用公钥+私钥:MobaXterm设置无密码登录:使用MobaXterm的小伙伴可以按此教程设置,实测可行。
SSH之登陆黑/白名单
如果你用登陆ssh的ip比较固定(比如仅在某局域网内),可以设置一个关于登陆IP的白名单,减少安全问题。
对于Ubuntu/Debian系统,可以这样查看ssh登陆信息:
# 检查最近失败登陆次数
tail -f -n 30 /var/log/auth.log | grep -E 'sshd' | grep -E 'preauth|error|invalid'
如果你的服务器正在被攻击,结果类似这样:
你也可以查看历史攻击记录:
# 查看异常状态
cat /var/log/auth.log | grep -E 'sshd' | grep -E 'preauth|error|invalid' | less
那么应该如何应对这种ssh暴力破解攻击呢?以下是几点建议:
- 可以根据《Linux基础 基于密钥对的SSH远程登陆》教程设置禁用root密码登陆。
- 对于普通用户,也可以
禁用密码验证
,或者根据《Docker系列 搭建密码管理应用bitwarden》教程进行强密码设置和记录。 - 基于
hosts.deny
封禁特定IP。用root权限编辑一个文件:
vim /etc/hosts.deny
添加某些规则,基本格式是:daemon, daemon, ...: client, client, ...: option
。比如:
#允许192.168.1.18通过SSH登录
sshd:192.168.1.18:allow # 禁止可用deny
#允许192.168.1.*通过SSH登录
sshd:192.168.1.:allow
#ALL表示除了上面设置的IP。其他全部拒绝SSH登录
sshd:ALL
这是我遇到的一些SSH暴力破解黑名单有:
# 非常恶意,存在用户名试探和暴力破解
sshd:46.101.190.103:deny
sshd:128.199.135.7:deny
sshd:143.42.58.165:deny
sshd:139.144.183.199:deny
sshd:133.242.173.204:deny
sshd:75.119.139.181:deny
最后,用root权限重启ssh服务:
service sshd restart
注意,这时不要关闭旧的Shell。重新登陆,确定自己现在的设备可以成功登陆后,再关掉旧的Shell。
SSH之登陆失败次数限制
Beta版本,暂未实现。
# 确定文件/etc/pam.d/sshd是否存在
ls /etc/pam.d/sshd # /etc/pam.d/sshd
# 确定pam_tally2.so是否存在
find /lib* -iname "pam_tally2.so"
# /lib/x86_64-linux-gnu/security/pam_tally2.so
编辑系统vim /etc/pam.d/common-auth
(有些系统是system-auth)文件,在 auth 字段所在的那一部分策 略下面添加如下策略参数:
# 普通帐户和root的帐户登录连续5次失败,就统一锁定300秒, 300秒后可以解锁。如果不想限制root 帐户,可以把 even_deny_root、root_unlock_time这两个参数去掉
auth required pam_tally2.so onerr=fail deny=5 unlock_time=300 even_deny_root root_unlock_time=300
故意输错密码,tail -f /var/log/auth.log
(有些系统是/var/log/secure
)会有以下信息:
Oct 31 07:30:01 openmediavault sshd[1573140]: error: maximum authentication attempts exceeded for XXX from 192.168.1.1 port 51655 ssh2 [preauth]
Oct 31 07:30:01 openmediavault sshd[1573140]: Disconnecting authenticating user XXX 192.168.1.1 port 51655: Too many authentication failures [preauth]
Oct 31 07:30:01 openmediavault sshd[1573140]: PAM 4 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.1.1 user=XXX
Oct 31 07:30:01 openmediavault sshd[1573140]: PAM service(sshd) ignoring max retries; 5 > 3
上面只是限制了从终端登陆,如果想限制ssh远程的话, 要改的是vim /etc/pam.d/sshd
这个文件,添加的内容跟上面一样!
# 检查最近失败登陆次数
tail -f -n 30 /var/log/auth.log | grep -E 'sshd' | grep -E 'preauth|error|invalid'
# 查看异常状态
cat /var/log/auth.log | grep -E 'sshd' | grep -E 'preauth|error|invalid' | less
# tail -f /var/log/auth.log | grep -E 'sshd' | grep -E 'preauth|error'
# 显示已登录的是连接到服务器的最大数量的IP的列表
# netstat -anp |grep -E 'tcp|udp' |awk '{print $20}' |cut -d: -f1 |sort uniq -c |sort -n
# 检查当前你的服务器活跃的连接信息
# netstat -n | grep :80 | wc -l
参考:
-
[设置Linux用户连续N次输入错误密码进行登陆时,自动锁定X分钟](
SSH之跨主机复制
rsync
速度比较快、稳定。推荐! 建议先完成“SSH之VPS相互信任”的相关设置。
我个人推荐通过rsync将本地文件单向复制到远程主机。需要两台主机都带有rsync。一般都是默认有的,可以用rsync –version检查两台主机。 这里是一些rsync的用法,大家可以尝试一下:
# 方法1
nohup rsync -av -P -e --partial 'ssh -p <远程主机的ssh端口号>' <本地文件> <远程主机的用户名>@<远程主机ip>:<远程主机目录> > ~/rsync.log 2>&1 &
# 方法2
nohup rsync -av -P -e --partial 'ssh -p <远程主机的ssh端口号>' <本地文件> <远程主机的用户名>@<远程主机ip>:<远程主机目录>
# Ctrl+z 悬挂
bg # 放入后台
disown %1# 忽略第1个作业的HUP信号
# 方法3:基于screen
screen -dmS rsync_task rsync -av -P -e --partial 'ssh -p <远程主机的ssh端口号>' <本地文件> <远程主机的用户名>@<远程主机ip>:<远程主机目录> > ~/rsync.log
参数说明如下:
-a
:这是--archive
的简写形式,用于执行归档模式的复制。归档模式会保留文件的所有属性,包括所有权、权限、时间戳等。它还会递归地复制目录,并保持目录结构的完整性。-v
:这是--verbose
的简写形式,用于显示详细的输出信息。当使用-v
选项时,rsync 会在复制过程中输出更多的信息,以便你可以看到正在进行的操作。-P
:这是--progress
的简写形式,用于显示复制进度。当使用-P
选项时,rsync 会在复制过程中显示进度条和估计剩余时间。--partial
:保证断点续传。
当我们将某目录从服务器A转移至B时,某些应用(比如wordpress)文件可能会很多,一直开着窗口转移是比较危险的;最好是让备份命令在后台运行,即便关闭当前窗口也不影响进程。
文件夹的格式要多加注意。比如,我的chevereto的docker根目录是/docker/chevereto
。我建议,根目录和目标目录都要写/docker/chevereto/
,最后的/
不要忘记。这样可以实现精确的拷贝。
我之前曾多次使用方法2,挺稳的;其它方法大家感兴趣可以探索一下。由于认证问题,nohup或screen可能会失败。因此,最好先做好“SSH之VPS相互信任”的准备工作。小伙伴们有什么好的经验,也欢迎在评论区留言喔!
scp
可行但不推荐
scp
这个命令用于在两台VPS间通过ssh协议传输文件(夹)。比如你要备份本地docker目录到新主机,就很管用了!苯苯最近就操作过。如果你的远程主机通过公钥信任了本地主机,你传输的时候还不需要密码!
# 远程复制文件夹
scp -r -p -P <远程主机的ssh端口号> <本地目录> <远程主机的用户名>@<远程主机ip>:<远程主机目录>
# 远程复制文件。不用-r
scp -p -P <远程主机的ssh端口号> <本地文件> <远程主机的用户名>@<远程主机ip>:<远程主机目录>
# 远程主机用的22端口,还不用指定-P
scp -p <本地文件> <远程主机的用户名>@<远程主机ip>:<远程主机目录>
参考资料:
-
https://blog.csdn.net/m0_37886429/article/details/79641551
trash-cli
通过apt-get
就可以安装了
sudo apt-get install trash-cli
自己试试看:
# 删除文件和目录(仅放入回收站中),也可以trash
trash-put
# 列出被删除了的文件和目录
trash-list
# 从回收站中恢复文件或目录 trash.
trash-restore
# 删除回收站中的文件
trash-rm
# 清空回收站
trash-empty
还蛮好用的。不过我平时还是直接rm
的。习惯了(~ ̄▽ ̄)~
参考资料:
硬链接型复制
比如,将A通过硬链接的复制到B,这样可以节省磁盘空间。具体方法是:
cp -lR A/. B/
这个命令行选项的含义是:
-l
:表示创建硬链接而不是复制文件。-R
:表示递归地复制目录及其内容。
实时查看状态
如果你想看某个命令的持续变化状态,可以这样
watch -n2 <你的命令>
这个操作在NAS管理里就特别常用,VPS中用得不多。比如,我想每2秒钟查看zpool status -v nas
这个命令的输出变化,可以这样:
watch -n2 zpool status -v nas
输出结果如下(01:56:08 to go
的部分是有变化的):
watch
对于那种想实时了解运行状态的强迫症患者来说是简直就是个神器,自己体会吧(~ ̄▽ ̄)~
进程操作
# 基本命令
ps # 观察当前用户所有进程
ps ux
ps aux # a-包括其它用户的进程;u-进程的详细内容;x-不是通过终端控制的进程
top # 动态观察CPU和内存占用比较高的进程。通过q退出
kill PID # 通过进程的PID关闭。不要随便结束以root身份启动的进程
kill -9 PID # 用kill无法进行的时候,强行终止
这里有个我觉得比较好用的ps
:
ps -ef | grep -E 'multiqc|stats'
使用时,将multiqc|stats
换成你要找的程序的名字。
这里有个我觉得比较好用的kill
:
kill -9 `ps -ef | grep -E 'java' | awk '{print $2}'`
使用时,将这个java
改成你要结束的进程名字(某段特征也行)
查看本地网络
ifconfig|less
大多数情况下,docker0
和echXXX
这两个网络的信息对我们比较重要。
查看进程网速占用
# 查看自己的网卡
ifconfig|grep -E 'eth|enp' # 很多人都是eth0;
# 安装nethogs
sudo apt-get install nethogs
通过nethogs可以实时查看流量消耗:
# 查看网速
sudo nethogs eth0 # sudo nethogs enp0s25
它是一个动态页面:
查看硬件信息
之前我们学习的neofetch
也可以看。这里介绍其它的一些命令:
# 查看基本信息
lshw -short|less
# 查看详细信息
lshw|less
#查看系统信息
uname -a
sudo dmidecode | grep "System Information" -A9 | egrep "Manufacturer|Product|Serial" # 查看服务器型号、序列号
# 查看BIOS信息
sudo dmidecode -t bios
# # 查看内存槽及内存条
sudo dmidecode -t memory | head -45 | tail -23
# 查看网卡信息
sudo dmesg | grep -i Ethernet
# 查看pci信息,即主板所有硬件槽信息
lspci | head -10
# 查看显卡
sudo lspci | grep -i vga
这里还可以推荐一个工具,叫做hardinfo
。你可以用apt-get
来安装它:
sudo apt-get install hardinfo
然后使用方法也蛮简单的,就是:
sudo hardinfo | less
之所以用less
,是因为它会输出一大堆东西,用less
命令观察会比较方便。f
向前翻页,b
向后翻页,q
退出。
扩展阅读:
查看公网ip
curl ifconfig.me
crontab执行定期任务
编辑文件内容:
# 另一种比较流行的命令是: crontab -e
vim /etc/crontab
具体用法我不多说了。自己看参考资料吧!口诀:分时日月周
。
一种比较快捷的方法是直接在Shell里输入类似命令:
echo -e "\n# 关于这条cron记录的说明\n0 */1 * * * root /usr/bin/bash /root/disk_warning.sh" >> /etc/crontab
结果类似于:
cron还可以用于开机自启。比如,如果开机想要执行cd /var/www/node/ && npm run start
,可以这样:
# 开机启动
@reboot cd /var/www/node/ && npm run start
# 延迟10秒启动
@reboot sleep 10 && cd /var/www/node/ && npm run start
参考资料:
压缩与解压
# 压缩为tar.gz
tar zvfc test.tar.gz ~/test/
# 解压为tar.gz
tar zvfx test.tar.gz
# 解压zip
unzip test.zip
# 直接查看文本类的tar.gz
zcat text.tar.gz|less
一般这几个比较常用。还有一些gzip
啥,你用到的时候自己Google一下。
Conda
如果你不知道什么是conda
或者anaconda
,你百度一下Ubuntu安装conda
。
它是一个软件版本控制的平台。利用conda,你可以在同一台电脑中配置无数个不同的环境(多个软件不同版本的搭配)。你可能不知道我在说什么。总之,你知道它是一个生产力工具就行了。
你在玩Docker
的时候并不需要conda
。你只要知道它,以后有需要的话就使用它吧!
如果你是生物信息学、人工智能或者是Python的学习者,这个东西我不说你也知道。如果你了解过python2
和python3
那些事,相信你也会不由自主地喜欢上conda
的。
言尽于此,自己体会!
FTP
仅限Ubuntu。暂未完成测试。
sudo apt-get install vsftpd
lsof -i | grep ftp
service pure-ftpd stop # 停止旧的ftp服务器
systemctl restart vsftpd
systemctl status vsftpd
小结
这一回写完,我们的Linux基础也觉得差不多了。以后要精进,还是要靠多查书、多检索、多试错。苯苯也在慢慢地学习中呢!
而且有了这些基础,相信你已经迫不及待地想要了解docker怎么使用了!我也是呀!
在本博客中,我会介绍那些最经典的Docker应用。毫不夸张地说,这些Docker应用彻底地改变了我的生活。相信你以后也会有同感的!
扩展阅读
- vsftpd.service: main process exited, code=exited, status=2/INVALIDARGUMENT” – Unix & Linux Stack Exchange:开通FTP必看。
- Ubuntu开通FTP root权限登录 – Dreamcho – 博客园
- 将conda虚拟环境设置为电脑默认的python环境
---------------
完结,撒花!如果您点一下广告,可以养活苯苯😍😍😍
哇,很实用,最近买了个服务器,准备试试把hexo换wordpress试一下。但是得考完期末先(ó﹏ò。)
转战WordPress吧!你可以看看我的《学习地图》中的
WordPress系列
,我博客的设置基本上都可以复现。甚至是所有写作或修改都可以在本地用Typora完成Markdown,然后通过m2w上传到后台,方便得很!而且WordPress的插件功能太强大了,包括SEO、CDN、安全、内外链管理、垃圾评论控制、自动邮件,只有你想不到,没有它做不到!ヾ(≧∇≦*)ゝ加油吧,学生党还是考试要紧呢!
感觉太香了,暑假有时间直接转wordpressヾ(≧∇≦*)ゝ
其实你现在的博客也蛮精致的。。。换WordPress不会是单纯的喜新厌旧吧?(ノ°ο°)ノ
也不是,部署到github的话,打开很慢,有时候git commit还失败⌇●﹏●⌇
我打开你的网站还挺快的 毕竟有个CDN。至于发布文章到github。。。emmm。。。有个代理不就快了。。。(ฅ´ω`ฅ)
有代理,有时候挺快,有时候还是有点慢,哈哈哈
那就一起来玩WordPress,可以试试看 不一定有预期那么好 也可以加Telegram群聊天 不过没啥小伙伴 还比较安静 (~ ̄▽ ̄)~
好啊,冲
hexo 我看有好多部署 gitee vercel netlify 4everland 有的可以自动同步 通过github的action。增加访问速度。
wordpress暂时没有研究第三方托管加快访问速度。最多用用Cloudflare CDN和Worker。暂时先这样苟住,问题不大 (ฅ´ω`ฅ)