ProXmoX VE 介绍

Proxmox VE是一款套开源的虚拟化管理软件,用户可通过网页的方式来管理服务器上使用 kvm 以及 lxc 技术运行的虚拟机。同时提供了一些先进功能的支持,如集群、HA等。 PVE虽然是开源,却是由一个商业公司在运营、更新以及维护

ProXmoX VE 安装

基础准备 16G以上U盘一个(非必须,这个U盘是用来安装PROXMOX的,也可以直接装硬盘上,GEN8比较特殊,使用U盘引导比较方便,所以我安装在U盘上);4G以上U盘一个; 支持虚拟化技术的CPU; 如果要虚拟软路由,需要有2个网口以上,最好千兆

安装过程

首先去proxmox下载安装包,目前最新版本是5.2-1,推荐使用种子下载,速度会比较快,下载完成后务必使用使用工具进行SHA256校验,防止下载错误 然后使用软碟通把下载的ISO文件刻录进4G的U盘(本人使用GEN8的ILO4远程安装,有GEN8的朋友应该知道咋弄)。 接着把4GU盘和16GU盘插入电脑,BIOS中开启虚拟化支持(具体方法百度,BIOS太多,我就不放图了),一个网口接入路由,使用4GU盘引导启动很快就会进入安装界面。 基于ProXmoX VE的虚拟化家庭服务器(篇一)—ProXmoX VE 安装及基础配置 此处选择第一项回车,稍微等待一会,进入下图界面 基于ProXmoX VE的虚拟化家庭服务器(篇一)—ProXmoX VE 安装及基础配置 选择 I agree 基于ProXmoX VE的虚拟化家庭服务器(篇一)—ProXmoX VE 安装及基础配置 这里选择你要安装的的硬盘或者U盘,选定后点击Next 基于ProXmoX VE的虚拟化家庭服务器(篇一)—ProXmoX VE 安装及基础配置 这里一般会默认china,如果没有那就输入china,其他默认,点击Next 基于ProXmoX VE的虚拟化家庭服务器(篇一)—ProXmoX VE 安装及基础配置 输入两遍管理密码和邮箱,点击Next 基于ProXmoX VE的虚拟化家庭服务器(篇一)—ProXmoX VE 安装及基础配置 这里注意,查看一下是不是你局域网的网段,如果不是,很可能和路由之间网络不通,另外,Hostname这项的格式需为*.*,默认的是无法下一步的,我这里使用PVE.LEN,点击next,等待安装完成,出现如下界面时,说明安装已经完成,点击reboot, 基于ProXmoX VE的虚拟化家庭服务器(篇一)—ProXmoX VE 安装及基础配置 然后拔掉4GU盘,等待重启完成,如果顺利,会出现如下界面 基于ProXmoX VE的虚拟化家庭服务器(篇一)—ProXmoX VE 安装及基础配置 用另外一台电脑在浏览器中输入上面的地址进行访问 基于ProXmoX VE的虚拟化家庭服务器(篇一)—ProXmoX VE 安装及基础配置 language选择chinese就可以中文访问啦,用户名输入root,密码为刚才安装时候输的两遍管理密码

ProXmoX VE 初始配置

  基于ProXmoX VE的虚拟化家庭服务器(篇一)—ProXmoX VE 安装及基础配置 由于proxmox一些功能是需要付费订阅的,虽然可以免费使用,但是每次登陆时候都会弹出如上让你订阅的通知,比较烦,我们这里通过技术手段把它屏蔽掉。 首先点击确定把它关掉,然后通过winscp打开以下文件/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js,或者直接在 基于ProXmoX VE的虚拟化家庭服务器(篇一)—ProXmoX VE 安装及基础配置 shell中使用VI等工具编辑,找到if(data.status!==’Active’){, 替换为 if(false){ 这条位置比较靠后,大约在800行,替换完成后保存文件,注销登陆,清理浏览器缓存,再次登陆,发现已经不再弹窗让你订阅啦。 接下来下来我们更新一下proxomx的软件,proxmox的底层毕竟是个debian系统,刚安装还是要更新一下的,在shell中输入aptupdate && apt dist-upgrade,回车,发现报错无法更新,查看官方文档发现需要更改一些设置,在shell输入 rm -f/etc/apt/sources.list.d/pve-enterprise.list 添加新的 echo“debhttp://download.proxmox.com/debian/pve stretch pve-no-subscription”>/etc/apt/sources.list.d/pve-install-repo.list 下载秘钥 Wget http://download.proxmox.com/debian/proxmox-ve-release-5.x.gpg-O /etc/apt/trusted.gpg.d/proxmox-ve-release-5.x.gpg 再次输入apt update && apt dist-upgrade 已经可以正常更新,等待更新完成,更新完成后重启一下虚拟机

ProXmoX VE 磁盘映射

如果你的proxmox是直接安装在硬盘上的,那已经可以正常使用了,如果你和我一样是安装在U盘的,因为U盘空间比较小,需要弄个硬盘用来安装虚拟机 基于ProXmoX VE的虚拟化家庭服务器(篇一)—ProXmoX VE 安装及基础配置 在磁盘中看下哪个是你要挂载的硬盘,一般推荐SSD,我这里需要挂载的设备目录为/dev/sdb, 在shell中输入mkdir /mnt/sdb创建sdb文件夹用来给磁盘挂载 输入fdisk /dev/sdb管理这个硬盘,给它分区 输入n新建分区 基于ProXmoX VE的虚拟化家庭服务器(篇一)—ProXmoX VE 安装及基础配置 输入p建立主分区, 基于ProXmoX VE的虚拟化家庭服务器(篇一)—ProXmoX VE 安装及基础配置 输入1创建一个分区, 基于ProXmoX VE的虚拟化家庭服务器(篇一)—ProXmoX VE 安装及基础配置 这里是让输入这个分区的扇区起始位置,我们选择默认,直接回车 基于ProXmoX VE的虚拟化家庭服务器(篇一)—ProXmoX VE 安装及基础配置 分区的扇区结束位置,默认,直接回车,到此就分区完成了,我们输入p查看一下 基于ProXmoX VE的虚拟化家庭服务器(篇一)—ProXmoX VE 安装及基础配置 分区已经完成,目录为/dev/sdb1 输入w,保存并退出fdisk工具 输入mkfs -t ext4/dev/sdb1格式化一下 输入 mount/dev/sdb1 /mnt/sdb进行挂载 输入vim/etc/fstab 编辑一下这个文件,在最后追加 /dev/sdb1 /mnt/sdbext4 defaults 0 0 保存退出 使proxmox可以开机自动挂载. 然后依次点击数据中心-存储-添加-目录 基于ProXmoX VE的虚拟化家庭服务器(篇一)—ProXmoX VE 安装及基础配置 基于ProXmoX VE的虚拟化家庭服务器(篇一)—ProXmoX VE 安装及基础配置 基于ProXmoX VE的虚拟化家庭服务器(篇一)—ProXmoX VE 安装及基础配置ID随意,目录输入刚才挂载的目录,内容都选上,点添加, 最后点OS查看一下是否正常识别 基于ProXmoX VE的虚拟化家庭服务器(篇一)—ProXmoX VE 安装及基础配置 基础安装完工,下篇主要内容为虚拟软路由的安装配置,敬请期待

一、环境介绍 PVE版本:Proxmox Virtual Environment 5.4-3 LEDE版本:openwrt-koolshare-mod-v2.31-r10822-50aa0525d1-x86-64-combined-squashfs.img.gz 二、环境创建 1、点击“创建虚拟机”按钮,勾上“高级”,勾上“开机自启动”(软路由一般情况下开机启动),名称填入虚拟机名称(例如LEDE),点击“下一步” 487-1.png 2、操作系统选择“Linux”,版本选择“4.X/3.X/2.6 Kernel”即可,选择“不适用任何介质”,点击“下一步” 487-2.png 3、系统默认即可,点击“下一步” 487-3.png 4、硬盘,这边随便设置,之后会删除的,点击“下一步” 487-4.png 5、CPU按照实际情况选择,点击“下一步” 487-5.png 6、内存大小设置,也是根据实际情况选择,点击“下一步” 487-6.png 7、网络模型选择“intel E1000”,关闭防火墙(勾去掉),点击“下一步” 487-7.png 8、直接点击“完成” 487-8.png 9、选择“LEDE” –> “硬件”,找到硬盘,选中点击“分离” 487-10.png 10、硬盘分离后,选中未使用的磁盘0,点击“删除” 487-9.png 三、磁盘设置 1、解压openwrt-koolshare-mod-v2.31-r10822-50aa0525d1-x86-64-combined-squashfs.img.gz文件,解压出openwrt-koolshare-mod-v2.31-r10822-50aa0525d1-x86-64-combined-squashfs.img重名为openwrt.img(原来文件名太长,输命令比较麻烦) 2、使用WinSCP把openwrt.img上传到根目录 487-11.png 3、添加磁盘。选择Shell,输入qm importdisk 100 /openwrt.img local-lvm 会看到vm-100-disk-0正在创建 100是虚拟机编号,openwrt.img是刚才上传的lede镜像 487-12.png 4、添加磁盘。进入LEDE硬件设置,选中未使用的磁盘0,点击编辑,弹出窗口默认配置即可,直接点击添加 487-13.png 487-14.png 5、调准磁盘大小,选中硬盘,点击“调整磁盘大小”,弹出框 输入要增加的磁盘大小。 487-15.png 四、启动顺序 LEDE选项,引导顺序,改为硬盘 487-16.png 五、启动LEDE并配置(略) 这里我就不详细说明了。 487-17.png 六、添加网卡(略) 关闭lede,添加网卡,配置好LEDE的lan之后再添加网卡会比较方便不容易出问题。 至此,PVE安装LEDE就差不多完成了。

一、环境介绍 1、Proxmox VE(以下简称PVE) 5.4-3 2、黑群晖引导(本教程采用DSM3617-1.03b引导)由Jun大神提供(相关文件可从网盘下载) 3、黑群晖系统PAT安装包(本教程安装DSM3617  6.2-23739版本)可从网盘下载,也可以从官网下载 二、环境创建 1、点击“创建虚拟机”按钮,勾上“高级”,勾上“开机自启动”(软路由一般情况下开机启动),名称填入虚拟机名称(例如DSM),点击“下一步” 488-1.png 2、操作系统选择“Linux”,版本选择“4.X/3.X/2.6 Kernel”即可,选择“不适用任何介质”,点击“下一步” 488-2.png 3、系统默认即可,点击“下一步” 488-3.png 4、硬盘,随便设置,之后会删除的,点击“下一步” 488-4.png 5、CPU按照实际情况选择,点击“下一步” 488-5.png 6、内存大小设置,也是根据实际情况选择(如果仅当下载机用的话,设置2G内存就足够了;如果多套件使用,建议设置8G以上内存),点击“下一步” 488-6.png 7、网络模型选择“intel E1000”,点击“下一步” 488-7.png 8、确认配置,直接点击“完成” 488-8.png 9、删除硬盘,选择“DSM” –> “硬件”,找到硬盘,选中点击“分离” 488-9.png 10、硬盘分离后,选中未使用的磁盘0,点击“删除” 488-10.png 三、硬盘设置 1、使用WinSCP把下载的.img引导文件改成英文的文件名synoboot.img并上传到PVE的根目录 2、进入DSM虚拟机Shell,输入qm importdisk 101 /synoboot.img local-lvm回车,会看到vm-101-disk-0正在创建 (101是虚拟机编号,synoboot.img是刚才上传的引导镜像) 488-11.png 3、添加磁盘。进入LEDE硬件设置,选中未使用的磁盘0,点击编辑 488-12.png 4、总线/设备选择SATA和0,磁盘镜像选择vm-101-disk-0 488-13.png 5、引导顺序,改为硬盘,Disk ‘sata0’ 488-14.png 6、添加一块系统盘,点击“硬件”,添加“添加”下拉菜单中的“硬盘”,总线/设备选择SATA和1,存储选择local-vm,根据你的具体情况设置磁盘的大小(本教程设置为16G) 488-17.png 488-18.png 四、群晖安装 1、启动DSM虚拟机 2、内网访问网页http://find.synology.com,找到未安装的群晖 488-15.png 3、用户协议,勾上确定,下一步 488-16.png 4、点击“设置”。(如果你直通了硬盘并且之前已经在群晖系统中正常使用的,此时系统会显示“还原”或者“恢复”。建议把硬盘的第一个分区格式化一次后再重新来安装) 488-19.png 5、点击“手动安装”,选择从下载好的DS3617xs的6.2-23739.pat安装包(需要注意的是引导必须和安装包要匹配,否则安装教程中会报错),点击立即安装 488-20.png 488-22.png 6、会提示硬盘1、2数据会被删除,1是引导盘,2是系统盘 488-21.png 7、等待安装完成 488-23.png 8、DSM初次进入的配置(略) 9、进入到DSM桌面后的图 488-24.png 至此,黑群晖安装完毕,需要注意的是如果你的物理网卡不能进行升级,一旦升级就启动不了。

Proxmox VE(以下简称PVE)免费版本,每次登陆都要弹出订阅窗口,提示没有有效订阅“You do not have a valid subscription for this server. Please visit www.proxmox.com to get a list of available options.” 486-1.png 解决方法: 1、5.4版本 修改文件/usr/share/pve-manager/js/pvemanagerlib.js,大概37959行 486-2.png

Proxmox.Utils.checked_command(function() {}); // display subscription status 改成
//Proxmox.Utils.checked_command(function() {}); // display subscription status

2、5.2版本 修改文件/usr/share/pve-manager/js/pvemanagerlib.js,大概352行

if (data.status !== ‘Active’) {
改为
if (false) {

修改方法可能多种多样,不同的版本可能也会有不一样 3、也可以到SSH下输入命令去除订阅:

1
sed -i.bak "s/data.status !== 'Active'/false/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service

前面介绍过一个PVE下给群晖添加E1000e网卡的教程:《在ProxmoxVE (PVE)系统下给群晖添加E1000e网卡,让它支持DSM最新版本》,但是这个方法仅对某个虚拟机而已。今天介绍另外一种方法,把E1000e网卡添加到PVE系统里面,这样在新增虚拟机的时候,就可以直接选择。 本教程在PVE6.09下测试通过,其他的PVE版本请自行测试。需要注意的是:修改有风险,修改前请自觉做好文件备份! 具体操作如下: 一、电脑打开WinSCP,以root用户登录PVE,找到 /usr/share/perl5/PVE 目录下的 QemuServer.pm 文件,用Notepad++编辑,大约在837行找到这行内容:   把原内容:

1
my $nic_model_list = ['rtl8139', 'ne2k_pci', 'e1000', 'pcnet', 'virtio','ne2k_isa', 'i82551', 'i82557b', 'i82559er', 'vmxnet3','e1000-82540em', 'e1000-82544gc', 'e1000-82545em'];

改成:

1
my $nic_model_list = ['rtl8139', 'ne2k_pci', 'e1000', 'e1000e', 'pcnet', 'virtio','ne2k_isa', 'i82551', 'i82557b', 'i82559er', 'vmxnet3','e1000-82540em', 'e1000-82544gc', 'e1000-82545em'];

确认一下修改无误后保存退出;   二、找到 /usr/share/pve-manager/js 目录下的 pvemanagerlib.js 文件,用Notepad++编辑,大约在1813行找到这行内容:   把原内容:

1
if ((match_res = p.match(/^(ne2k_pcie1000e1000-82540eme1000-82544gce1000-82545emvmxnet3rtl8139pcnetvirtione2k_isai82551i82557bi82559er)(=([0-9a-f]{2}(:[0-9a-f]{2}){5}))?$/i)) !== null) {

改成:

1
if ((match_res = p.match(/^(ne2k_pcie1000e1000ee1000-82540eme1000-82544gce1000-82545emvmxnet3rtl8139pcnetvirtione2k_isai82551i82557bi82559er)(=([0-9a-f]{2}(:[0-9a-f]{2}){5}))?$/i)) !== null) {

确认一下修改无误后保存退出;   三、在当前文件向下拉,大约在4555行处找到这些内容: 把原内容:

1
2
3
4
5
['e1000', 'Intel E1000'],
['virtio', 'VirtIO (' + gettext('paravirtualized') + ')'],
['rtl8139', 'Realtek RTL8139'],
['vmxnet3', 'VMware vmxnet3']
]

改成:

1
2
3
4
5
6
['e1000', 'Intel E1000'],
['e1000e', 'Intel E1000e'],
['virtio', 'VirtIO (' + gettext('paravirtualized') + ')'],
['rtl8139', 'Realtek RTL8139'],
['vmxnet3', 'VMware vmxnet3']
]

确认一下修改无误后保存退出;   四、关掉WinSCP,回到PVE管理界面,关掉所有的虚拟主机,重启PVE;   五、宿主机重启完成以后重新登录PVE,这时我们去新建一个PVE的虚拟机,配置到网络模型的时候,就会发现比之前多出“E1000e”这个网卡,能不能好好的把DSM升级到最新版本就看大家了。

overture是一个用Go开发的DNS服务器,我个人觉得这是个神器,配置简单,使用方便。就是比较小众,用的人不多。。 以下部署步骤请在国内服务器或者本地进行。我这边就在本地的PVE开了一台Debian9部署。 首先在这里下载最新版本的压缩包: https://github.com/shawn1m/overture/releases 用ROOT权限登录进去安装一些需要用到的工具:

apt -y install dnsutils lrzsz unzip supervisor

新建目录然后用rz命令把下载好的压缩包传到Debian内:

mkdir -p /opt/overture && cd /opt/overture && rz

解压/重命名:

unzip overture-linux-amd64.zip
cp overture-linux-amd64 overture

下载GFWLIST/CHNROUTER列表:

wget https://cokebar.github.io/gfwlist2dnsmasq/gfwlist\_domain.txt wget https://raw.githubusercontent.com/17mon/china\_ip\_list/master/china\_ip\_list.txt

编辑OVERTURE的配置文件:

nano /opt/overture/config.json

下面是我的配置:

{
“BindAddress”: “:53”,
“DebugHTTPAddress”: “127.0.0.1:5555”,
“PrimaryDNS”: [
{
“Name”: “DNSPod”,
“Address”: “119.29.29.29:53”,
“Protocol”: “udp”,
“SOCKS5Address”: “”,
“Timeout”: 6,
“EDNSClientSubnet”: {
“Policy”: “disable”,
“ExternalIP”: “”,
“NoCookie”: true
}
},
{
“Name”: “AliDNS”,
“Address”: “223.5.5.5:53”,
“Protocol”: “udp”,
“SOCKS5Address”: “”,
“Timeout”: 6,
“EDNSClientSubnet”: {
“Policy”: “disable”,
“ExternalIP”: “”,
“NoCookie”: true
}
}
],
“AlternativeDNS”: [
{
“Name”: “CloudFlareDNS”,
“Address”: “one.one.one.one:853”,
“Protocol”: “tcp-tls”,
“SOCKS5Address”: “”,
“Timeout”: 6,
“EDNSClientSubnet”: {
“Policy”: “disable”,
“ExternalIP”: “”,
“NoCookie”: true
}
},
{
“Name”: “GoogleDNS”,
“Address”: “dns.google:853”,
“Protocol”: “tcp-tls”,
“SOCKS5Address”: “”,
“Timeout”: 6,
“EDNSClientSubnet”: {
“Policy”: “disable”,
“ExternalIP”: “”,
“NoCookie”: true
}
}
],
“OnlyPrimaryDNS”: false,
“IPv6UseAlternativeDNS”: false,
“WhenPrimaryDNSAnswerNoneUse”: “PrimaryDNS”,
“IPNetworkFile”: {
“Primary”: “./china_ip_list.txt”,
“Alternative”: “”
},
“DomainFile”: {
“Primary”: “”,
“Alternative”: “./gfwlist_domain.txt”,
“Matcher”: “regex-list”
},
“HostsFile”: “./hosts_sample”,
“MinimumTTL”: 0,
“DomainTTLFile” : “./domain_ttl_sample”,
“CacheSize” : 0,
“RejectQType”: [255]
}

新建supervisor配置文件:

nano /etc/supervisor/conf.d/overture.conf

写入如下配置:

[program:overture] priority=1 directory=/opt/overture
command=/opt/overture/overture -c /opt/overture/config.json
autostart=true autorestart=true redirect_stderr=true stdout_logfile=/var/log/supervisor/overture.log

更新supervisor配置,然后查看overture的运行状态:

supervisorctl update
supervisorctl status overture

是RUNNING状态就OK了,接下来使用dig命令进行测试,正好就拿我这个破博客测试吧,我这个域名就是被污染的,如果能够解析出正确的IP那么就说明overture工作是正常的:

dig @127.0.0.1 lala.im

OK没问题: 那么现在局域网内的其他机器修改DNS地址为这台Debian的IP即可享用无污染DNS服务了:

更新

1
apt-get update && apt-get upgrade

备份一份

1
cp /etc/apt/sources.list /etc/apt/sources.list.orig

将/etc/apt/sources.list里所有“stretch”替换为“buster”

1
sed -i 's/stretch/buster/g' /etc/apt/sources.list

再更新一下

1
apt-get update && apt-get upgrade

执行升级命令

1
apt-get dist-upgrade

提示完成后重启

1
reboot

查看下当前debian版本

1
lsb_release -a

前言

前两天,TG群里的一个逗比提出让我写个关闭 QUIC 功能的教程,我去了解了一下,发现说是写教程,实际是也就是给大家提个醒,毕竟太短啦。 注意:QUIC适用于一切基于 Chromium 的浏览器,如果不是这个内核的浏览器就没必要看了。

QUIC是什么

**QUIC(Quick UDP Internet Connection)**是谷歌制定的一种基于 UDP 的低时延互联网传输层协议。 我们知道,TCP/IP 协议族是互联网的基础。其中传输层协议包括 TCP 和 UDP 协议。与 TCP 协议相比,UDP 更为轻量,但是错误校验也要少得多。这意味着 UDP 往往效率更高(不经常跟服务器端通信查看数据包是否送达或者按序),但是可靠性比不上 TCP。通常游戏、流媒体等应用均采用 UDP,而网页、邮件、远程登录等大部分的应用均采用 TCP。 —— 截取自 http://geek.csdn.net

而谷歌就是结合这两种协议的优势,做出了 QUIC,好吧,其实说这么多也没用,我们只需要知道 QUIC 是谷歌开发出来更好的协议就行了。

为什么要关闭

那既然更好,为什么要关闭呢?这就是因为 QUIC 为了实现 UDP 的高效,会把一些 TCP 转为 UDP,但是在国内部分地区的运营商都会针对 UDP 协议QOS限速或者丢包,这就导致 UDP 效率低下,或许速度会比正常使用TCP协议还慢很多。 而谷歌的服务器,例如 Google搜索、优土鳖视频等,都部署了 QUIC 服务,这意味着当你使用已开启 QUIC 功能的基于Chromium内核浏览器访问谷歌网站的时候,会尝试使用 QUIC 方式传输数据。而碰巧你当地运营商对 UDP协议歧视,然后疯狂限速或丢包,这时候你的速度就会很感人。

注意:各地区的运营商对 UDP协议的态度不一样,有的地区QOS严重,有的地区则很轻,所以关闭 QUIC 只对部分地区用户会有加速效果!

又或者你使用酸(5)酸(5)乳(R)代理,而服务端没有开启 UDP 转发功能(或者防火墙没开放 UDP),那么你可能会遇到打开 优土鳖视频后,视频会一直缓冲无法加载,或者是首次打开总是慢很多(因为浏览器在尝试)。 目前看来,QUIC 未普及开,并且运营商也依然我行我素的歧视 UDP 协议,所以还是先关闭的好。

如何关闭QUIC

首先打开你基于Chromium内核的浏览器,地址栏输入:chrome://flags/#enable-quic 然后就会看到如下图(分别是英文和中文两种语言),在下拉框中可以选择 默认/已启用/已禁用 (Default/Enabled/Disabled) 三个选项,我们只需要把选项改为 已禁用(Disabled) 即可。 Chrome浏览器关闭 QUIC,避免部分地区运营商UDP QOS对速度的影响Chrome浏览器关闭 QUIC,避免部分地区运营商UDP QOS对速度的影响 修改后,需要重启浏览器生效。 重启后再试一下访问谷歌网站,例如优土鳖视频,看一看是否有速度提升(看当地运营商UDP协议QOS情况)。

本篇主要记录一些自己github博客搭建的过程。

1、配置 Node.js 和配置 Node.js 环境

2、安装Git和配置Git环境

注:本篇主要写搭建博客,工具类的不再赘述

3、github配置

  • 我们假设你已经有了一个 github 账号,你需要添加一个新的 new repository。点击创建一个新的 repository ,你需要将你的 Repository name 设置为 ** 账户名.github.io ** ,这一步至关重要。

  • 在建好的项目右侧有个settings按钮,点击它,向下拉到GitHub Pages,你会看到一个 http://账户名.github.io 的网址,这样,你已经有一个属于自己的博客啦。

    4、hexo 配置

  • 首先找一个合适的位置创建一个文件夹,通过 git 进入到该文件夹下

  • 输入 npm install hexo -g,开始安装Hexo

  • 输入 hexo -v,检查hexo是否安装成功

  • 输入 hexo init,初始化该文件夹。看到 ** “Start blogging with Hexo!” ** 即成功

  • 输入 npm install,安装所需组件

  • 输入 hexo g,对文件进行编译

  • 输入 hexo s,输入hexo s,开启服务器,访问该网址,正式体验Hexo。 我的默认端口是4000,如果你的页面一直无法跳转,可能是端口号被占用,可以通过 hexo server -p 端口号 进行修改。

    5、将Hexo与Github page联系起来

  • 设置Git的user name和email(对于第一次设置的童鞋)

1
2
git config --global user.name "xxx"
git config --global user.email "xxx@gmail.com"
  • 输入cd ~/.ssh,检查是否有.ssh的文件夹,输入ls,列出该文件下的内容。如果有id_rsa,id_rsa_pub,known_hosts,则说明存在。
  • 输入 ssh-keygen -t rsa -C "你的github邮箱地址",连续三个回车,生成密钥,也会自动生成两个文件:id_rsa和id_rsa.pub(默认存储路径是:C:\Users\Administrator\.ssh
  • 输入eval "$(ssh-agent -s)",添加密钥到 ssh-agent
  • 输入ssh-add ~/.ssh/id_rsa,添加生成的 SSH key 到 ssh-agent
  • 登录Github,点击头像下的settings,点击 SSH and GPG keys,点击 右侧的 new SSH key,用VS Code打开id_rsa,ctrl + A 全部复制粘贴到新建的 SSH key 中。
  • 输入ssh -T git@github.com,测试添加ssh是否成功。如果看到Hi后面是你的用户名,就说明成功了。
  • 配置Deployment,在其文件夹中,找到_config.yml文件,修改repo值(在末尾),配置成如下效果。
1
2
3
4
deploy:
type: git
repo: git@github.com:limoon7/limoon7.github.io.git
branch: master
  • 新建一篇博客,在git下执行命令:hexo new post “博客名”,这时候在文件夹_posts目录下将会看到已经创建的文件。
  • 在生成以及部署文章之前,需要安装一个扩展:npm install hexo-deployer-git --save
  • 使用编辑器编好文章,那么就可以使用命令:hexo d -g,生成以及部署了
  • 部署成功后访问你的地址:http://用户名.github.io,就可以看到你的文章啦
  • 在实际的使用中,可以修改过文件后可以先在本地预览预览,通过hexo -s 命令
  • 个人一般使用的顺序为: hexo clean ,hexo -g ,hexo -shexo -d

6、配置 yilia 主题

是不是觉得配置好的不是很美观,那就来一个优雅大方的主题吧!

参考资料:一个简洁优雅的hexo主题 A simple and elegant theme for hexo.

7、遇到的一些问题

-hexo d 出现ssh连接问题,如下所示

1
ssh: connect to host github.com port 22: Connection timed out

解决方法:git 连接 github 超时问题

引言

acme.sh 是一个 ACME(自动化证书管理环境) 脚本,可以从 letsencrypt 生成免费的证书。 本来这个教程是写在 编译Nginx支持TLS1.3 那篇帖子里的,后来感觉还是单独拿出来比较好,即能让那篇教程更简洁,也能更方便的让需要的人看到这个教程。

安装工具

1
apt-get install cron socat -y

获取 acme.sh

1
curl  https://get.acme.sh  sh

重启终端,如果你使用 zsh 可以这样 source ~/.zshrc

生成证书

使用 http 方式验证域名,需要先搭建 HTTP 站点,这里使用 acme.sh 自带的 webserver,所以先把 nginx 停掉

1
service nginx stop

接下来指定域名,开始签发

1
2
3
acme.sh --issue -d onmp.ooo \
--keylength ec-256 \
--standalone

如果是多域名,可以使用 -d 参数添加,如:-d www.onmp.ooo --keylength ec-256 是签发 ECC 类型的证书,它的安全性更高,删除则使用默认的 RSA 证书

复制证书

证书已经签发了,不过默认是保存在 ~/.acme.sh/ 里

1
2
3
4
acme.sh --ecc --installcert -d onmp.ooo \
--key-file /usr/local/nginx/conf/ssl/onmp.ooo.key \
--fullchain-file /usr/local/nginx/conf/ssl/onmp.ooo.cer \
--reloadcmd "service nginx restart"

指定域名,指定证书保存目录,我这里设置在 /usr/local/nginx/conf/ssl/,指定 Nginx 重载命令,如果签发的不是 ECC 证书,把 --ecc 参数去掉 这样使用 acme.sh 就完成了证书的签发,如果证书快要过期了,脚本会自动更新证书 脚本自动更新,可以使用以下命令

1
acme.sh --upgrade --auto-upgrade

 

证书安装

证书已经获取并且可以自动更新了,具体安装方法看 编译Nginx支持TLS1.3

0%