cmake

导言

ipcc初赛的项目代码有些混乱,只是简单分类。想好好学习一下cmake和make。规范项目结构,优化编译运行流程,提高效率。

Read more

Docker On Win10

简介

  • WSL 2 是对WSL基础体系结构的一次重大改造,它使用虚拟化技术和 Linux 内核来实现其新功能。
  • docker是基于linux内核运行
  • WSL 2 加入了linux内核为docker在windows上运行铺平了道路

系统要求

开启虚拟化 + Hyper-V

  • BIOS开启虚拟化
    • 查看是否开启:任务管理器 -> 性能 -> CPU 虚拟化:开启
  • Control Panel(控制面板) -> Programs and Features(程序和功能) -> Turn Windows Features on or off(启用或关闭Widnows功能)勾选三项
    • Windows Hypervisor Platform(Windows虚拟机监控程序平台)
    • Hyper-V
    • 虚拟机平台
  • 管理员Powershell运行 bcdedit /set hypervisorlaunchtype auto
  • 重启

WSL 2

参考教程安装 WSL旧版 WSL 的手动安装步骤

1
2
3
4
5
6
7
8
9
10
11
12
13
# 查看当前版本
❯ wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Stopped 1

❯ wsl --set-version Ubuntu-20.04 2
正在进行转换,这可能需要几分钟时间。
操作成功完成。

E:/PowerShell via  v14.17.3 via 🐍 v3.9.7 took 59s
❯ wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Stopped 2

docker on Windows

注意:用命令行运行来修改默认安装路径(重命名install.exe),参考教程

1
.\Docker.exe install --installation-dir="E:\commonSoftware\Docker"

安装完之后运行设置

  • 开启开机启动
  • 在Resources里修改image保存路径

使用问题

1: read-only file system

1
Error response from daemon: container df6ee73697883e8e09edd65404e1fcc19a2b4bfb49212c754a8b3ef9741d7bda: driver "overlay2" failed to remove root filesystem: unlinkat /var/lib/docker/overlay2/475c350b02589ce2cb5ef30f0619ed3aeaba409c56d87191b8cbbd00ef618fe3: read-only file system

需要管理员运行docker

C盘没空间

WSL还是超级占用C盘

需要进一步的研究学习

暂无

遇到的问题

暂无

开题缘由、总结、反思、吐槽~~

参考文献

https://blog.csdn.net/Antarctic_Bear/article/details/123489609

Linux Auto Run : crontab

crontab的使用

任务调度

Linux下的任务调度分为两类:系统任务调度和用户任务调度。

Linux系统任务是由 cron (crond) 这个系统服务来控制的,这个系统服务是默认启动的。用户自己设置的计划任务则使用crontab 命令。

crontab 命令

1
2
crontab [-u user] file
crontab [ -u user ] [ -i ] { -e | -l | -r }
  • -u user:用于设定某个用户的crontab服务;
  • file: file为命令文件名,表示将file作为crontab的任务列表文件并载入crontab;
  • -e:编辑某个用户的crontab文件内容,如不指定用户则表示当前用户;
  • -l:显示某个用户的crontab文件内容,如不指定用户则表示当前用户;
  • -r:从/var/spool/cron目录中删除某个用户的crontab文件。
  • -i:在删除用户的crontab文件时给确认提示。

crontab文件

  • crontab有2种编辑方式:
    • 直接编辑/etc/crontab文件,其中/etc/crontab里的计划任务是系统中的计划任务,
    • 通过crontab –e来编辑用户的计划任务;
      • 每次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中,这个文件是不可以直接编辑的,只可以用crontab -e 来编辑。
      • 所有用户定义的crontab 文件都被保存在 /var/spool/cron目录中。其文件名与用户名一致。
  • crontab中的command尽量使用绝对路径,否则会经常因为路径错误导致任务无法执行。
  • 新创建的cron job不会马上执行,至少要等2分钟才能执行,可从起cron来立即执行。
  • %在crontab文件中表示“换行”,因此假如脚本或命令含有%,需要使用\%来进行转义。

配置文件实例:

1
2
3
4
5
6
7
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
HOME=/
MAILTO=root # MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户,如果MAILTO变量的值为空,则表示不发送任务执行信息给用户
# * * * * * user-name command to be executed
@reboot /home/user/test.sh #可以实现开机自动运行
@reboot sleep 300 && /home/start.sh # 延时启动

@reboot 表示重启开机的时候运行一次。还有很多类似参数如下:

1
2
3
4
5
6
7
8
9
10
string             meaning
------ -----------
@reboot Run once, at startup.
@yearly Run once a year, "0 0 1 1 *".
@annually (same as @yearly)
@monthly Run once a month, "0 0 1 * *".
@weekly Run once a week, "0 0 * * 0".
@daily Run once a day, "0 0 * * *".
@midnight (same as @daily)
@hourly Run once an hour, "0 * * * *".
1
2
3
4
5
6
7
8
9
10
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |

* */1 * * * /etc/init.d/smb restart # 每一小时重启smb

在以上各个字段中,还可以使用以下特殊字符:

  • *代表所有的取值范围内的数字,如月份字段为*,则表示1到12个月;
  • /代表每一定时间间隔的意思,如分钟字段为*/10,表示每10分钟执行1次。
  • -代表从某个区间范围,是闭区间。如2-5表示2,3,4,5
    • 组合:小时字段中0-23/2表示在0~23点范围内每2个小时执行一次。
  • ,分散的数字(不一定连续),如1,2,3,4,7,9

查看crontab的日志记录和状态

tail -f /var/log/cron观察查看cron运行日志(/var/log/cron.log),但是并未找到相关文件,原因是ubuntu默认没有开cron日志,执行命令:

1
sudo vim /etc/rsyslog.d/50-default.conf

找到cron.log相关行,将前面注释符#去掉,保存退出,重启rsyslog:

1
sudo  service rsyslog  restart

执行less -10 /var/log/cron.log再次查看cron运行日志,log出来了,提示如下信息:

1
No MTA installed, discarding output

原因是cron把屏幕输出都发送到email了,而当前环境并未安装email server,于是系统报错,解决方面就是不要直接向屏幕输出内容,而是重定向到一个文件。

1
2
cd /var/spool/mail/
less shaojiemike
1
service cron status # ubuntu

实例

夜间利用机器进行批量实验

如果Linux系统有时差,需要加8小时在0、3、6点。

1
0 0,3,6 * * * cd /home/t00906153/OpenSora/OpenSora_performance_test && git stash save "Stash before script run at $(date +"%Y-%m-%d %H:%M:%S")" && bash test/train_full_opensorav1_1.sh >> /home/t00906153/crontab.log 2>&1 && git stash pop && echo "Executed at $(date)" >> /home/t00906153/crontab.log

crontab on OpenWRT

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 1.编辑好脚本加入cron

crontab -e
* * * * * sh /root/tst.sh

# 2.创建cron初始化脚本 vi /etc/init.d/S60cron,添加下面内容

#!/bin/sh
#start crond
/usr/sbin/crond -c /etc/crontabs

# 修改权限
chmod 755 /etc/init.d/S60cron

# 3.手动启动crond
/etc/init.d/S60cron

# 4.查看crond任务
logread -e cron

# 5.重启crond
killall crond; /etc/init.d/S60cron

# 6.禁用crond日志 修改/etc/init.d/S60cron
/usr/sbin/crond -c /etc/crontabs -L /dev/null

其他自动化方法

https://zhuanlan.zhihu.com/p/35402730

https://blog.csdn.net/qq_35440678/article/details/80489102

https://neucrack.com/p/91

开题缘由、总结、反思、吐槽~~

参考文献

https://www.linuxprobe.com/how-to-crontab.html

https://martybugs.net/wireless/openwrt/cron.cgi

Keepass

简介

KeePass是一个轻量级、易用且安全性极高的密码管理器,其源码完全开源(OSI certified),获得了世界多国的安全认证和评级。

只需要一个主密码+一个数据库文件即可安全的保存所有的密码。

特点

  1. 密码数据库自己掌握,与1Password和LastPass相比不存在平台泄露的可能。
  2. 所以在云存储、多终端同步上不如商业产品1Password和LastPass便捷,需要自己配置。
    1. 跨平台(有大量开源的第三方的客户端)。
    2. 支持WebDAV,配合网盘可实现跨平台、多终端同步。
    3. Windows下可配置浏览器自动输入(Mac据说也可以)。

密码安全

普通用户面临的问题:

  • 重要的密码会泄露在非重要的地方:每个人心中都有一个常用的密码,这个密码在注册各类账户时都会拿出来用,甚至银行卡的6位数密码也包含其中
    • 小网站的“脱裤”会导致你的常用密码被泄露
  • 不同的网站对密码的复杂度要求不同,我们也会临时“演变”导致“找回密码”成了登录前的基本操作

美观兼容版

  • KeePassXC:KeePassX的分支,功能齐全,
    • 跨平台(Windows、macOS和Linux),
    • 界面更加美观、扁平化,
    • 但不支持WebDAV。
    • 支持KDBX 3.1和4.0。
  • KeeWeb:后起之秀,与KeePass兼容,功能齐全,
    • 跨平台(Windows、macOS和Linux),
    • 另有自动备份等功能,
    • 界面美观;
    • 支持在线安装插件;支持离线Web应用;
    • 笔者认为是Mac OS的首选;使用坚果云webdav时报错:“No Last-Modified header”。

Windows KeeWeb使用

  1. 中文插件 https://plugins.keeweb.info/translations/zh-CN
  2. 设置里方便激活浏览器拓展

多平台

  • Windows:KeePass、KeeWeb
  • Android:KeePass2Android
    • 读取群晖Drive下的文件即可
    • 支持自动填充功能,和生物识别
  • Mac OS:KeeWeb
  • IOS、 ipad OS:
  • iPhone:keepass touch

同步实现

坚果云

坚果云更像Dropbox,

  • 支持WebDAV、
  • 增量同步和历史版本等功能。

坚果云免费版虽不如Dropbox,但也还算厚道:

  • 上传流量1G/月,下载流量3G/月,
  • 支持1个月的历史版本,用来使用KeePass、云笔记等足矣。

操作

  1. 添加“应用密钥”
    1. 在《账户信息》-《安全选项》
  2. keeweb 添加 即可
    1. 注意坚果云用户是 邮箱, 不是昵称

参考教程

但是keeweb无法同步,会报错

其他第三方密码管理器

LastPass、1Password、 秘迹 app

需要进一步的研究学习

暂无

遇到的问题

暂无

开题缘由、总结、反思、吐槽~~

原本我是懒得用的,edge自带的密码管理器不好吗?

  1. 一方面,自动填写带来的安全性问题
    1. 目前大多数第三方密码管理器,如LastPass和1Password都不容易受到这种攻击的影响,因为它们避免了自动填入不可见的登录表单,并且需要进行用户交互。
    2. 可以直接导出所有信息的黑客程序HackBrowserdata
    3. 还有windows管理员密码获取程序。(如果要玩,记得先把火绒等杀毒软件关了
  2. 另一方面,假如你电脑被攻击了,浏览器根本无法保护你的密码

目标

  1. 多端同步的(Windows,macbook,ipad,Android)
  2. 浏览器有保存插件的(Safari,edge,chrome)

参考文献

https://www.rmnof.com/article/keepass-password-manager/

uTorrent

缓存设置

tjupt的默认设置就不错。红框是建议勾选的。

错误:内存不足,无法完成请求

This is because the cache size is too big, lower to 512MB or 1GB to fix this.[^1]
But the size bigger the faster, 1.4GB is the biggest available value which ut can support.

突然没速度了,可能是缓存卡住了。一般也没什么解决办法。但是稳定下载的时候会均衡。

下载如何修改文件名和位置

首先不要勾选”立即下载”,通过如下更改位置即可再开始下载即可。还可以多选来批量移动文件到文件夹。(对于PT需要下载100%文件才能做种的,但是不需要的文件会影响刮削。可以通过批量移动到其他位置来解决)

北洋园tjupt红种问题

Essential Reason

configure the router policy to DIRECT to fix this.

其余方法

  1. 无法与服务器建立连接. utorrent种子暂停然后开始/更新tracker即可
  2. 键盘按“Win + R”组合快捷键,输入“inetcpl.cpl”,点击“确定”进入“Internet选项”,在“高级”选项卡中选择“重置 IE 设置”

参考文献

http://pgpchs.blogspot.com/2011/03/utorrent-antigfwalloutwallbloggercom.html

https://blog.csdn.net/Gerald_Jones/article/details/78848426

Jellyfin

导言

作为一个影视剧爱好者,通过开源软件jellyfin如何管理BT或者PT下载的视频资料是本文的主要内容。

Read more

Clash on LAN/linux/Dockers

导言

在国内的linux服务器上,往往需要clash来代理访问github等外网资源。

有几种解决方案:

  1. 透明代理
  2. ssh 转发实现代理,类似ssh -fNgR 7333:127.0.0.1:7890 [email protected]
  3. Clash 的 Allow LAN功能
  4. Clash in Docker
  5. Clash in Linux

Clash的模式

  • 系统代理模式:只代理127.0.0.1:7890上的数据
  • TUN代理模式:虚拟网卡,并接管所有的网络层的数据
    • 无法封装网络层数据包,无法代理ping, fake-ip还会返回假ip
    • TUN与TAP是操作系统内核中的虚拟网络设备:
      • TAP等同于一个以太网设备,它操作第二层数据包如以太网数据帧。
      • TUN模拟了网络层设备,操作第三层数据包比如IP数据包。
  • 舍弃的redir-host模式由于必须返回一个真实ip,因此必需发起dns请求,存在dns泄露
  • 默认的fake-ip会对域名的DNS请求返回fake-ip,从而避免DNS泄露。然后根据域名分流将信包发送到对应的上游代理机器,把域名DNS解析工作留给上游机器。
    • fake-ip模式,将fake-ip-filter设置为+.*便等价于redir-host模式

Clash的配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# RESTful web API listening address
external-controller: 127.0.0.1:9090


# DNS server settings
# This section is optional. When not present, the DNS server will be disabled.
dns:
enable: false
listen: 0.0.0.0:53
ipv6: false # when the false, response to AAAA questions will be empty

# These nameservers are used to resolve the DNS nameserver hostnames below.
# 默认只支持ip
default-nameserver:
- 8.8.8.8

# 对于下面的域名,fake-ip模式会返回真实ip
fake-ip-filter:
- '*.lan'
- localhost.ptlogin2.qq.com

# 支持 UDP, TCP, DoT, DoH. 和指定端口
# 所有DNS请求都会不经过代理被转发到这些服务器,Clash会选择一个最快的返回结果
nameserver:
- https://223.5.5.5/dns-query # 阿里云
- https://doh.pub/dns-query #腾讯云
- tls://dns.rubyfish.cn:853 # DNS over TLS
- https://1.1.1.1/dns-query # DNS over HTTPS
- dhcp://en0 # dns from dhcp

# 对于所有DNS请求,fallback和nameserver内的服务器都会同时查找
# 如果DNS结果为非国内IP(GEOIP country is not `CN`),会使用fallback内的服务器的结果
# 因为nameserver内为国内服务器,对国外域名可能有DNS污染。fallback内是国外服务器,能防止国外域名被DNS污染
fallback:
- https://162.159.36.1/dns-query
- https://dns.google/dns-query
- tls://8.8.8.8:853

# DNS污染攻击的对策
fallback-filter:
geoip: false # If geoip is true, when geoip matches geoip-code, clash will use nameserver results. Otherwise, Clash will only use fallback results.
# geoip-code: CN
ipcidr: # IPs in these subnets will be considered polluted, when nameserver results match these ip, clash will use fallback results.
- 0.0.0.0/8
- 10.0.0.0/8
- 100.64.0.0/10
- 127.0.0.0/8
- 169.254.0.0/16
- 172.16.0.0/12
- 192.0.0.0/24
- 192.0.2.0/24
- 192.88.99.0/24
- 192.168.0.0/16
- 198.18.0.0/15
- 198.51.100.0/24
- 203.0.113.0/24
- 224.0.0.0/4
- 240.0.0.0/4
- 255.255.255.255/32
domain: #Domains in these list will be considered polluted, when lookup these domains, clash will use fallback results.
- +.google.com
- +.facebook.com
- +.youtube.com
- +.githubusercontent.com

Clash use Allow LAN

假如服务器和笔记本在LAN下,笔记本的clash软件只需要打开LAN就可以给服务器代理了,是最简单方便的方式。

Clash in Docker

由于UGREEN NAS一直开机,作为代理节点很适合。

首先注意修改代理机场的文件config.yaml0.0.0.0:9090,以便haishanh/yacd使用。

1
2
3
4
5
6
mixed-port: 7890
allow-lan: true
bind-address: '*'
mode: rule
log-level: info
external-controller: '0.0.0.0:9090'
  • 使用dreamacro/clash^1
  • UI使用haishanh/yacd

Clash in Linux

下载

下载可执行文件

1
2
3
4
wget https://github.com/Dreamacro/clash/releases/download/v1.11.8/clash-linux-amd64-v1.11.8.gz
scp
gunzip clash-linux-amd64-v1.11.8.gz
chmod u+x clash-linux-amd64-v1.11.8
  • Clash 运行时需要 Country.mmdb 文件,Country.mmdb 文件利用 GeoIP2 服务能识别互联网用户的地点位置,以供规则分流时使用。
  • 当第一次启动 Clash 时(使用 ./clash 命令) 会自动下载(会下载至 /home/XXX/.config/clash 文件夹下)。自动下载可能会因网络原因较慢,可以访问该链接手动下载。

配置

根据订阅链接配置文件

1
2
cd ~/.config/clash
curl -o config.yaml 'longURL'

验证

成功结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# shaojiemike @ node6 in ~/Download [10:22:54] C:130       
$set_proxy

# shaojiemike @ node6 in ~/Download [10:22:57]
$ curl -v www.google.com

# shaojiemike @ node6 in ~/Download [10:21:46]
$ ./clash-linux-amd64-v1.11.8
INFO[0000] Start initial compatible provider 🍃 Proxies
INFO[0000] Start initial compatible provider ☁️ Others
INFO[0000] Start initial compatible provider 🍂 Domestic
INFO[0000] Start initial compatible provider ⭐️ Auto
INFO[0000] Mixed(http+socks) proxy listening at: [::]:7890
INFO[0000] RESTful API listening at: [::]:9090
INFO[0000] DNS server listening at: [::]:5323
INFO[0070] [TCP] 127.0.0.1:52664 --> www.google.com:80 match DomainKeyword(google) using 🍃 Proxies[专线 日本 03]

图形化界面管理

http://clash.razord.top/#/proxies

输入

1
2
3
Host: node6.swangeese.fun
Port: 9090
Secret: 配置文件配置的 secret

查看config.yaml,发现是空

1
2
3
4
5
6
mixed-port: 7890                                      
allow-lan: true
mode: rule
log-level: info
external-controller: '0.0.0.0:9090'
secret: ''

常见问题

address already in use

1
2
3
4
5
6
7
8
9
# shaojiemike @ node6 in ~/Download [10:14:25]
$ ./clash-linux-amd64-v1.11.8
INFO[0000] Start initial compatible provider ⭐️ Auto
INFO[0000] Start initial compatible provider 🍃 Proxies
INFO[0000] Start initial compatible provider ☁️ Others
INFO[0000] Start initial compatible provider 🍂 Domestic
INFO[0000] RESTful API listening at: [::]:9090
INFO[0000] Mixed(http+socks) proxy listening at: [::]:7890
ERRO[0000] Start DNS server error: listen udp 0.0.0.0:5353: bind: address already in use

修改配置文件里的端口即可

参考文献

[^2]: Docker 安装 Clash 并对外提供代理服务

https://blog.iswiftai.com/posts/clash-linux/

https://einverne.github.io/post/2021/03/linux-use-clash.html

PersonalWebsiteDomain

Ubuntu 下Apache 域名绑定设置

在 HuaWei Cloud 购买域名

  1. 购买 shaojiemike.top

  2. 自动在华为DNS服务器上进行DNS解析(ip与域名对应)

  3. 实名认证

  4. 网站报备

  5. 网站解析
    当您想在Internet上通过域名访问您的网站时,可以通过华为云的云解析服务为域名添加解析记录。

    例如,搭建一个网站服务器,采用IPv4格式的弹性IP地址。如果想要实现通过域名“example.com”及其子域名“www.example.com”访问该网站,需要配置如下解析记录:

     A:添加域名“example.com”到弹性IP地址的解析记录。
     A:添加子域名“www.example.com”到弹性IP地址的解析记录。
    
  6. 修改DNS服务器为华为

    不要修改成域名解析的

DNS域名解析查看

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# shaojiemike @ node6 in ~ [21:24:21]
$ dig +trace shaojiemike.us.to

; <<>> DiG 9.16.1-Ubuntu <<>> +trace shaojiemike.us.to
;; global options: +cmd
. 184 IN NS f.root-servers.net.
. 184 IN NS h.root-servers.net.
. 184 IN NS c.root-servers.net.
. 184 IN NS m.root-servers.net.
. 184 IN NS g.root-servers.net.
. 184 IN NS j.root-servers.net.
. 184 IN NS a.root-servers.net.
. 184 IN NS i.root-servers.net.
. 184 IN NS l.root-servers.net.
. 184 IN NS k.root-servers.net.
. 184 IN NS d.root-servers.net.
. 184 IN NS e.root-servers.net.
. 184 IN NS b.root-servers.net.
;; Received 262 bytes from 127.0.0.53#53(127.0.0.53) in 0 ms

to. 172800 IN NS frankfurt.tonic.to.
to. 172800 IN NS singapore.tonic.to.
to. 172800 IN NS tonic.to.
to. 172800 IN NS newyork.tonic.to.
to. 172800 IN NS colo.tonic.to.
to. 172800 IN NS sydney.tonic.to.
to. 172800 IN NS helsinki.tonic.to.
to. 86400 IN NSEC today. NS RRSIG NSEC
to. 86400 IN RRSIG NSEC 8 1 86400 20221118050000 20221105040000 18733 . zYyPgXiUoIoPzZsXi8WD0aT0Ps7ajmQYA/blzyfNG6Pl1NdONShc/3T1 3p2rAfr2a7NI6SI+yeEyiRYeeI86RuNv1u4aAJD2QXZapKlogP+hveb/ SYztzsr70Ha6/7RQAqQqY+ctHOZXIzUMhpNxFneTXcJ2CVhQmGIYG0sa 0BmaDKH0kxFHtbJZvENMpo4WrE0KTNzFsYlHZQGZV0OQeU/MpcSkPt5I DefxNVBMqMS8lF0Wzg8ESwEDddE7WvMlCNlnBLE7LHk0ZdQGU5Qg/8Ot CpNKEjCoROXA7sA/CkrGEdhW3CZnJYOdQ6UcH2pDwYYVIOsE7L8QJV/r RC9/tA==
;; Received 653 bytes from 199.7.83.42#53(l.root-servers.net) in 60 ms

us.to. 86400 IN NS NS4.AFRAID.ORG.
us.to. 86400 IN NS NS3.AFRAID.ORG.
us.to. 86400 IN NS NS1.AFRAID.ORG.
us.to. 86400 IN NS NS2.AFRAID.ORG.
;; Received 156 bytes from 95.216.159.42#53(helsinki.tonic.to) in 272 ms

us.to. 3600 IN SOA ns1.afraid.org. dnsadmin.afraid.org. 2211050595 86400 7200 2419200 3600
;; Received 133 bytes from 2001:1850:1:5:800::6b#53(NS2.AFRAID.ORG) in 260 ms

可以看到13个根DNS服务器到to子服务器再到us.to的解析过程。

在 HuaWei Cloud 配置域名解析

为域名添加A记录集

在“公网域名”页面的域名列表的“域名”列,单击域名的名称“example.com”。
进入“解析记录”页面。

在页面右上角,单击“添加记录集”。
在“添加记录集”页面,根据界面提示为域名“example.com”设置A记录集参数。

解析

为子域名添加A记录集

主机记录:设置为“www”,表示解析的域名为子域名“www.example.com”。

测试域名解析是否生效

1
2
3
4
5
6
D:\OneDrive - mail.ustc.edu.cn\homepage> nslookup shaojiemike.top ns1.huaweicloud-dns.org
Server: ecs-159-138-77-159.compute.hwclouds-dns.com
Address: 159.138.77.159

Name: shaojiemike.top
Address: 202.38.73.26

解析2

ECS

云服务器Elastic Compute Service(ECS)是阿里云提供的一种基础云计算服务。它能帮助您快速的构建更稳定、安全的应用,提高运维效率,降低IT成本

如何判断自己IP是内网IP还是外网IP

局域网,内网IP

  1. tcp/ip协议中,专门保留了三个IP地址区域作为私有地址,其地址范围如下:
    1
    2
    3
    10.0.0.0/8:10.0.0.0~10.255.255.255
    172.16.0.0/12:172.16.0.0~172.31.255.255
    192.168.0.0/16:192.168.0.0~192.168.255.255
  2. 一些宽带运营商尽管也使用了非私有地址分配给用户使用,但是由于路由设置的原因,Internet上的其他用户并不能访问到这些ip。

有这么一种情况:拉的联通的带宽,分配的IP只能在联通内部访问,移动网络不能访问。这个IP最多只能算是“联通内的公网IP”,不是真的公网IP。

上面几部分IP都可称为内网IP

动态公网IP

貌似node5 与 node6 挂了网络通,是动态公网IP(chivier说的)

node5 ip: 202.38.73.26

IPv4封了许多端口(至少ssh的22端口是不行的)

IPv6是直接可以ssh访问的

公网IP是IPv4/IPv6

ipv4是32位地址,分成4段,每段之间都有”.”分开,而每段之间有8位,从0-255
最普遍看到的就是ipv4

ipv6是128位地址,每个数目等于4位(0-f)16位进制,4个一组,每段之间由“:”隔开,共有8段,其中如果有连续性的”0”
如fe80:0000:0000:0000:0000:0000:0000:de4f

修改机器的DNS服务器

IPv4DNS服务器能根据IP修改,但是我不知道华为DNS服务器的IP。

ns1.huaweicloud-dns.com:中国大陆各区域DNS地址
ns1.huaweicloud-dns.cn:中国大陆各区域DNS地址
ns1.huaweicloud-dns.net:除中国大陆之外国家或地区DNS地址
ns1.huaweicloud-dns.org:除中国大陆之外国家或地区DNS地址

Further Study

动态公网IP,可以使用nat123动态域名解析解决公网IP不固定的问题

node6配置没用80端口,不能直接IP访问

遇到的问题

还是不能直接访问shaojiemike.top(TTL为300,需要时间?)
第二天可以了。

chivier 建议

https://ngx.hk/2019/01/27/%E4%BD%BF%E7%94%A8acme-sh%E4%B8%8E%E9%98%BF%E9%87%8C%E4%BA%91dns%E7%AD%BE%E5%8F%91lets-encrypt%E7%9A%84%E5%85%8D%E8%B4%B9%E6%95%B0%E5%AD%97%E8%AF%81%E4%B9%A6.html

我用阿里的域名,用这个教程,把我的IP挂到阿里DNS上面去了

参考文献

https://support.huaweicloud.com/qs-dns/dns_qs_0002.html

https://blog.csdn.net/meitesiluyuan/article/details/58588216

https://blog.csdn.net/bennny/article/details/86319768?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.baidujs&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.baidujs

https://blog.csdn.net/bennny/article/details/82988260

域名价格对比

DNS

导言

遇到的DNS相关的问题

Read more

Ubuntu server reInstall

思路

  1. 写U盘(见网上教程,注意备份U盘文件)
  2. 插U盘,开机前根据机器型号使用命令(F2,F4, F12或者Del)进入boit manager,选择从U盘boot
    1. 改引导启动顺序,把U盘启动改到最前面
  3. 根据提示安装ubuntu(服务器不用分区,默认就行,如果自己电脑双系统则需要根据内存设置分区)
  4. 设置root密码并进入root sudo passwd root
  5. 配置实验室网络

下载安装包

官网下载

重装系统怎么保留原本的磁盘文件

只要在安装系统时分出一个/home分区。你可以把Ubuntu的“/”分区看为Windows的C盘,重装Ubuntu时只格式化“/”分区,不格式化“/home”,这样就可以保留“/home”中的数据了。使用的时候就挂载就行

但是假如一开始没分区:

  1. 可以插块新盘当作系统盘,系统安装好之后,把旧的文件系统挂载到新系统的某个目录下
  2. 从旧的文件系统里划出一块区域,安装新系统。
    1. 在你要安装的目标磁盘中,通过删除卷和删除分区操作腾出一块未分配的磁盘空间作为安装区

从已有分区中提取空间

xfs类型不可以直接缩减,只扩不减。如果是ext2,ext3,ext4可以在线缩减,如果xfs盘要缩小就要删除后重新添加

https://www.ywbj.cc/?p=712

非系统根分区LVM缩容

  1. 取消挂载
    系统根分区无法在线取消挂载,所以这时请勿对系统根分区执行任何缩容操作
    1
    umount /lv/ #取消挂载目录
  2. e2fsck检查修复磁盘完整性
    1
    e2fsck -f /dev/vg0/lv0
  3. 缩小系统文件空间,即df -h查看的空间
    不取消挂载,这步会报错,注:一定先减文件系统,再减逻辑卷
    1
    resize2fs /dev/vg0/lv0 10G
  4. 缩小磁盘空间,即lsblk查看的空间
    不执行上面的操作,直接执行这步,虽然成功,但是会操作数据丢失,系统无法启动。
    1
    lvreduce -L 10G /dev/vg0/lv0
  5. 重新挂载
    1
    mount -a
    最后查看lvs空间

系统根分区LVM缩容(救援模式)

正常启动系统进入救援模式 :启动按shift键,出现选择系统界面,按e。找到以单词 linux 开头的行,并在该行的末尾添加以下内容(要到达末尾,只需按下 CTRL+e 或使用 END 键或左右箭头键):

1
systemd.unit=rescue.target

添加完成后,只需按下 CTRL+xF10 即可继续启动救援模式。几秒钟后,你将以 root 用户身份进入救援模式(单用户模式)

需要进一步的研究学习

遇到的问题

暂无

开题缘由、总结、反思、吐槽~~

参考文献

https://blog.csdn.net/weixin_40018873/article/details/109537532

https://www.ywbj.cc/?p=712