VMware虚拟机硬盘扩容

虚拟机硬盘扩容之前必须先将所有的快照全部都删除干净才可以选择扩容,否则按钮是灰色的无法扩容。
快照都删除干净之后关闭虚拟机,点击【编辑此虚拟机设置】

20250330002153

此时可以点击【扩展】

20250329205912

输入要设置的最大磁盘空间大小,这里我扩展到100G,增加了40G的磁盘空间

20250329205957

点击扩展后,即可开机。

查看系统初始磁盘空间

开机后查看磁盘空间,//home一共60G

1
df -h

20250329201630

查看硬盘信息

1
fdisk -l

20250329201741

使用管理磁盘工具

1
fdisk /dev/sda

输入m,查看帮助
输入n,创建新分区
输入p ,查看当前分区表,在原有的1和2分区下添加3分区
p之后的东西都选择为默认【3次回车即可】

20250329202405

再输入t
分区号根据默认输入3
Hex代码输入8e,将分区的类型更改为Linux LVM
输入w保存退出
20250329202553

然后reboot重启,查看是否生效,不重启的话下一步可能会出错

1
fdisk -l /dev/sda

20250329202859

开始扩容

将创建的磁盘分区格式化

1
mkfs -t ext3 /dev/sda3

20250329211646

1
pvcreate /dev/sda3

输入y

注意,在前面步骤中,将磁盘的类型转化为Linux LVM之后才能使用pvcreate操作

20250329203124

可以查看到新的物理卷

1
pvdisplay

20250329203201

/dev/sda3添加到centos卷组

不知道自己属于什么卷组,输入df -h 查看/dev/mapper/,例如/dev/mapper/centos-root,则卷组为centos

1
vgextend centos /dev/sda3

20250329203313

增加/dev/mapper/centos-root大小,增加40GB【根据自己扩展的硬盘大小增加】

注意,扩展的硬盘大小,如果报错,说明没有这么大的空间可以扩展,需要减少增加空间,如改成:lvextend -L +39.9G /dev/mapper/centos-root

1
lvextend -L +40G /dev/centos/root

20250329203419

最后同步一下系统文件

1
xfs_growfs /dev/mapper/centos-root

20250329203446

查看扩容结果【每个人扩展的硬盘空间大小不一样那么显示的大小就不一样】

1
df -h

20250329203517

扩展完啦!!!

centos下安装docker

其他系统参照如下文档

https://docs.docker.com/engine/install/centos/

移除以前docker相关包

1
2
3
4
5
6
7
8
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

配置yum源

1
2
3
4
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装docker

1
sudo yum install -y docker-ce docker-ce-cli containerd.io

启动

1
sudo systemctl enable docker --now

配置加速

阿里云发公告,调整镜像加速器功能的使用范围,仅限阿里云用户,在支持公网访问的阿里云产品上使用该镜像加速能力。所以现在的镜像的加速基本挂了,下面是我找到目前(2025/3/29)还能使用的镜像加速网址。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://proxy.1panel.live",
"https://docker.1panel.top",
"https://docker.m.daocloud.io",
"https://docker.1ms.run",
"https://docker.ketches.cn"],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

ubuntu下安装docker

配置apt源

1
2
3
4
5
6
7
8
#安装必要支持
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release

#添加docker的GPG KEY
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

#添加apt源
echo "deb [arch=$(uname -m) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

安装docker

1
sudo apt install -y docker-ce docker-ce-cli containerd.io

启动

1
sudo systemctl enable docker --now

配置加速

阿里云发公告,调整镜像加速器功能的使用范围,仅限阿里云用户,在支持公网访问的阿里云产品上使用该镜像加速能力。所以现在的镜像的加速基本挂了,下面是我找到目前(2025/3/29)还能使用的镜像加速网址。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://proxy.1panel.live",
"https://docker.1panel.top",
"https://docker.m.daocloud.io",
"https://docker.1ms.run",
"https://docker.ketches.cn"],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

工具介绍

SpaceSniffer(磁盘空间分析工具)是一款功能强大的磁盘空间分析工具,软件界面简洁,拥有安装、删除、复制、剪切、粘贴、转移、重命名、查看等编辑功能,可以让显示出硬盘中文件和文件夹的分布情况的一款应用程序,通过使用TreeMap的可视化布局,可以直观地看到在硬盘上大的文件和文件夹。

工具下载

扫描磁盘

最近我的电脑系统C盘空间满了,在清理磁盘空间时在系统盘下有两个超G的隐藏文件,一个是pagefile.sys,2G左右,一个是hiberfil.sys,13G左右,前面一个文件虚拟内存。

20250316020213

而“hiberfil.sys”是系统休眠文件,其大小和物理内存一样大,它可以删除掉,但却不能手动删除掉,只要在“控制面板”中打开“电源选项”,之后在电源管理对话框的“休眠”标签下,去掉“启用休眠”前的勾,重新启动计算机后,休眠文件就会自动删除。

通俗的讲,电脑处于休眠状态时,内存中的所有内容将保存到硬盘,并且电脑会被关闭。电脑在返回打开状态之后,关闭电脑时打开的所有程序和文档将全都还原到桌面。也就是说,当你让电脑进入休眠状态时,Windows 在关闭系统前将所有的内存内容写入hiberfil.sys文件。而后,当你重新打开电脑,操作系统使用Hiberfil.sys把所有信息放回内存,电脑恢复到关闭前的状态。然而,Windows 在硬盘上留下了hiberfil.sys文件,即使这个文件不再需要了。

删除操作

在开始的搜索功能中,输入cmd,会出现命令提示符→右键以管理员身份运行(否则可能会出错)。

输入命令,回车

1
powercfg -hibernate off

再到系统盘查看,数G大小的hiberfil.sys文件也没有了(如还有可以自行删除)。

如要再次开启休眠功能,可以在命令提示符中输入:powercfg -hibernate on 按回车(Enter键)执行命令即可打开休眠功能(无需重启电脑)。

1
powercfg -hibernate on

然后可以在控制面板的电源选项中调整启用休眠的等待时间。

20250316022750

注意事项

“pagefile.sys”是页面交换文件,即虚拟内存文件,这个文件不能删除,不过可以改变其大小和存放位置:文法如下:

\1. 右击“我的电脑/属性”,然后在对话框的“高级”标签下单击“性能”下的“设置”按钮,在”性能选项”对话框中切换到“高级”标签下,再单击“虚拟内存”下的“更改”按钮,即可根据需要更改页面文件的大小。

\2. 先选中C盘,然后选“无分页文件”,再点“设置”按钮;之后选中要生成该文件的盘符,在下面点选“自定义大小”并输入合适的数值,此数值通常为物理内存的1.5倍,再单击“设置”,最后单击“确定”就可以了。

简介

Windows 聚集(Windows Spotlight)功能为您的桌面带来了令人惊叹的背景图片,这些图片不仅美观,还常常让人眼前一亮。然而,随着这些绚丽背景而来的“了解此图片”图标有时可能会分散您的注意力,影响您对桌面的整体视觉体验。遗憾的是,直接通过右键菜单删除这个图标并不是一个可行的选择,因为这只会打开更多的选项菜单而不是真正移除它。

接下来有两种有效的方法可以帮助您摆脱这个烦人的图标。

禁用 Windows 聚集功能

如果“了解此图片”图标是由于 Windows 聚集功能引起的,您可以选择禁用该功能:

  1. 右键单击桌面空白处,选择“个性化”。
  2. 在左侧菜单中选择“背景”。
  3. 在“背景”下拉菜单中,选择“图片”、“纯色”或“幻灯片”。
  4. 保存后,Windows 聚集将被禁用,“了解此图片”图标也会随之消失。

使用注册表编辑器删除图标

对于希望继续使用 Windows 聚集功能但不想要“了解此图片”图标的用户,可以尝试修改注册表:

  1. Win + R 键,输入 regedit,然后按回车后打开注册表编辑器。
  2. 导航至指定路径:
  3. 找到并展开 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel
  4. 创建新 DWORD 值。在右侧窗格中,右键点击,选择“新建 -> DWORD (32位)值”。
  5. 命名为 {2cc5ca98-6485-489a-920e-b3e88a4ccce3},并将其值设为 1。
  6. 应用更改后刷新桌面后,图标将消失。如需恢复,只需删除这个 DWORD 值即可。

简介

专业版和家庭版对于普通用户来说没有太多感觉,如果是程序员、工程师之类的需要频繁使用电脑、虚拟机,强烈建议升级为Windows专业版。

根据微软的升级机制,Windows系统如果要实现家庭版到专业版,只需要修改产品密钥就可以了。

这里简单介绍一下Windows专业版和家庭版的区别:

  1. 远程桌面:家庭版并非完全不支持远程桌面,而是家庭版只能其他电脑“远程控制”,用以提供系统援助,而Windows 11 专业版才可以远程控制其他电脑。
  2. 组策略:这个功能在家庭版系统中是没有的,该功能可以让你的Windows系统高度定制化。
  3. Hyper-V:Hyper-V虚拟机,了解这个应用的玩家自然不会选择家庭版系统,不了解这个应用的玩家也不会去使用它。家庭版的Windows 11不支持该功能,该功能一般被用于搭建测试用的虚拟机系统,即在系统内再运行一个系统。
  4. 硬件支持:内存方面,家庭版最多支持128G,专业版则可支持2TB。CPU方面,家庭版仅支持单路处理器,而专业版支持双路处理器。家庭版支持最多64核的处理器,专业版支持最多128核的处理器。

Win11专业版比Win11家庭版多了Hype-V虚拟机、Windows沙盒、远程桌面、BitLocker加密、Windows保护、移设备管理、组策略、使用Azure进行企业状态漫游、分配的访问权限、动态配置、适用于企业的Windows更新、自助服务终端模式。

从解决实际问题的角度上,推荐3种实测有效的方法。

手动修改产品密钥

专业版所需要的内容其实已经下载在本地了,我们只需要激活安装即可,专业版和家庭版的区别在于证书不同。

首先断开网络,然后找到:设置-》系统-》系统信息》更改产品密钥或升级Windows

以下密钥随便挑一个就行:

W269N-WFGWX-YVC9B-4J6C9-T83GX

236TW-X778T-8MV9F-937GT-QVKBB

WMN7B-Y7TKF-Y49QB-TMQ8T-GMT6T

FJHWT-KDGHY-K2384-93CT7-323RC

20250314100553

点击 【更改产品密钥】

20250314100614

输入密钥,断网,然后再点击【下一页】,就可以激活了。

20250314101846

这种方法成功激活的概率不高,如果激活失败或者成功后联网却仍显示激活失败,请看第二种方法。

命令行中激活

打开命令行,以管理员身份运行。

20250314213013

输入

1
2
3
slmgr /ipk 236TW-X778T-8MV9F-937GT-QVKBB
slmgr /skms kms.03k.org
slmgr /ato

使用KMS工具激活

这种方法相对于前两种方法成功概率大得多,几乎是100%。如果上面两种方法不行,就用这种方法。

这也是大多数90%程序员会选择这种方式激活,成功激活之后Windows家庭版就会变成专业版。

这里推荐kms激活器神龙版,直接双击打开运行即可,无需安装。

值得注意的这款软件,可能会爆病毒

需要关闭保护或者关闭其他杀毒软件。软件没有病毒,只不过windows防护是会检测这类激活工具。

在【Windows安全中心】关闭【实时保护】

20250314213458

点击exe文件,运行界面,点击激活windows 10 即可。还可以激活office、visio等微软系列软件,非常nice。

KMS软件下载

20250315185022

Bilibili客户端PC版下载

官网下载

首先下载PC版的B站客户端;打开B站首页,点击右上角的下载客户端,下载Windows客户端即可(mac没试过)

缓存视频

打开你想下载的视频;

image-20240514213258485

点击缓存后会弹出窗口让你选择下载的画质,点击下载即可

image-20240514213420675

下载完后在下面的目录里面就能找到下载的文件了

image-20240514213721864

找到两个m4s文件,这两个文件分别是视频和音频

v2-5207e1bbeacd2207ff555d4abe90b781_r

修改m4s视频文件

用二进制编辑器编辑这两个文件,例如用Notepad++或者Sublime Text

二进制打开就删除开头的0

v2-3bb9f220527b03c48ef665e967c8e95c_r

十六进制打开就删除开头的30

image-20240514220710987

注意,不要用文本编辑器去编辑器这个 *.m4s文件,会有问题

拓展:

Notepad++用十六进制方式打开二进制文件

在 Notepad++ 中,转到“插件”菜单并选择“插件管理器”。

image-20240514222028755

找到HEX-Editor,然后单击安装。

image-20240514222249417

打开二进制文件后,在插件中使用HEX插件即可,文件内容既会变成十六进制的内容

image-20240514222435071

合并视频

ffmpeg 下载

下载后建议添加到系统环境变量,使用更方便

使用ffmpeg合并成完整的视频

1
ffmpeg.exe -i 1.m4s -i 2.m4s -codec copy output.mp4

零基础保姆级小白节点搭建教学,目前最安全最稳定的搭建方式,通过x-ui面板实现单端口多用户合租

教程完全零基础手把手教学,只要跟着步骤来一定能成功搭建。
使用X-UI面板搭建vmess+ws+tls+web或者vless+ws+tls+web的节点,这是目前最安全的搭建方式
并且为了更进一步的安全,有些步骤甚至有点繁琐,这都是值得的,只有安全了才能实现省时省心
非常适合想有自己专属稳定的节点又不太愿意折腾的朋友。跳出翻墙出来学翻墙的怪圈。

至于高速稳定只有靠钞能力解决了,作为电信用户的我,刨除高攀不起的专线,个人承受范围内最好的线路是CN2 GIA
本教程使用的是搬瓦工CN2GIA线路,经过了三网优化,电信、移动、联通用户都能获得非常稳定的体验,实现全天稳定丝滑的科学上网体验,告别晚高峰拥堵的情况
考虑到GIA线路比较贵,最后给大家提供一种使用x-ui面板通过WS路径分流实现单端口多用户的合租方案,可以和你的朋友合租来分摊费用

VPS购买

搬瓦工
优惠码: BWHNCXNVXV

系统:Ubuntu22.04

执行unminimize之后,中途如果出现的A new version提示信息,输入数字2,再回车即可

域名购买

namesilo
优惠码:oldtong

SSH工具

FinallShell

方法一:手动搭建

节点搭建

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!!!重要!x-ui不要把xray版本升级到1.7.5以上,否则无法搭建vless节点!
#更新软件源
apt update
#启用 BBR TCP 拥塞控制算法
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p

#安装x-ui:
bash <(curl -Ls https://raw.githubusercontent.com/vaxilu/x-ui/master/install.sh)

#安装nginx
apt install nginx
#安装acme:
curl https://get.acme.sh | sh
#添加软链接:
ln -s /root/.acme.sh/acme.sh /usr/local/bin/acme.sh
#切换CA机构:
acme.sh --set-default-ca --server letsencrypt
#申请证书:
acme.sh --issue -d 你的域名 -k ec-256 --webroot /var/www/html
#安装证书:
acme.sh --install-cert -d 你的域名 --ecc --key-file /etc/x-ui/server.key --fullchain-file /etc/x-ui/server.crt --reloadcmd "systemctl force-reload nginx"

寻找适合的伪装站

http站点优先,个人网盘符合单节点大流量特征

示例关键字:intext:登录 Cloudreve

配置nginx

配置文件路径:/etc/nginx/nginx.conf

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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
worker_connections 1024;
}

http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;

include /etc/nginx/mime.types;
default_type application/octet-stream;
gzip on;

server {
listen 443 ssl;

server_name nicename.co; #你的域名
ssl_certificate /etc/x-ui/server.crt; #证书位置
ssl_certificate_key /etc/x-ui/server.key; #私钥位置

ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;

location / {
proxy_pass https://bing.com; #伪装网址
proxy_redirect off;
proxy_ssl_server_name on;
sub_filter_once off;
sub_filter "bing.com" $server_name;
proxy_set_header Host "bing.com";
proxy_set_header Referer $http_referer;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header User-Agent $http_user_agent;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header Accept-Encoding "";
proxy_set_header Accept-Language "zh-CN";
}


location /ray { #分流路径
proxy_redirect off;
proxy_pass http://127.0.0.1:10000; #Xray端口
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

location /xui { #xui路径
proxy_redirect off;
proxy_pass http://127.0.0.1:9999; #xui监听端口
proxy_http_version 1.1;
proxy_set_header Host $host;
}
}

server {
listen 80;
location /.well-known/ {
root /var/www/html;
}
location / {
rewrite ^(.*)$ https://$host$1 permanent;
}
}
}

每次修改nginx配置文件后必须使用 systemctl reload nginx 命令重新加载配置文件

多用户合租

通过修改nginx的配置文件实现ws path路径分流

1
2
3
4
5
6
7
8
9
10
location /ray {   #分流路径
proxy_redirect off;
proxy_pass http://127.0.0.1:10000; #Xray端口
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

MITM节点

服务端配置

1
2
3
4
5
#安装x-ui
bash <(curl -Ls https://raw.githubusercontent.com/vaxilu/x-ui/master/install.sh)

#无域名,生成自签证书
openssl req -new -x509 -nodes -newkey rsa:2048 -keyout /etc/x-ui/ca.key -out /etc/x-ui/ca.crt -subj "/CN=MITM" -days 36500

image-20230531163823796

x-ui模板

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
{
"log": {
"access": "",
"error": "",
"loglevel": "warning"
},
"inbounds": [
{
"port": 443,
"protocol": "vless",
"settings": {
"clients": [
{
"id": "bulianglin"
},
{
"id": "bulianglin-mitm",
"email": "mitm@mitm.com"
}
],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"security": "tls",
"tlsSettings": {
"certificates": [
{
"certificateFile": "/etc/x-ui/ca.crt",
"keyFile": "/etc/x-ui/ca.key"
}
]
}
}
}
],
"outbounds": [
{
"protocol": "freedom"
},
{
"tag": "mitm",
"protocol": "freedom",
"streamSettings": {
"security": "tls",
"tlsSettings": {
"alpn": [
"http/1.1"
]
}
}
}
],
"routing": {
"rules": [
{
"user": "mitm@mitm.com",
"outboundTag": "mitm",
"type": "field"
}
]
}
}

客户端配置

xray模板

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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
{
"log": {
"access": "",
"error": "",
"loglevel": "warning"
},
"inbounds": [
{
"tag": "socks",
"port": 8888,
"listen": "127.0.0.1",
"protocol": "socks",
"settings": {
"udp": true
},
"sniffing": {
"enabled": true
}
},
{
"tag": "http",
"port": 9999,
"listen": "127.0.0.1",
"protocol": "http",
"sniffing": {
"enabled": true
}
},
{
"listen": "127.0.0.1",
"port": 11111,
"tag": "in-mitm",
"protocol": "dokodemo-door",
"settings": {
"port": 443,
"followRedirect": true
},
"streamSettings": {
"security": "tls",
"tlsSettings": {
"certificates": [
{
"usage": "issue",
"certificateFile": "ca.crt",
"keyFile": "ca.key"
}
],
"alpn": [
"http/1.1"
]
}
}
}
],
"outbounds": [
{
"tag": "proxy",
"protocol": "vless",
"settings": {
"vnext": [
{
"address": "你的服务器ip",
"port": 443,
"users": [
{
"id": "bulianglin",
"encryption": "none",
"flow": ""
}
]
}
]
},
"streamSettings": {
"network": "tcp",
"security": "tls",
"tlsSettings": {
"allowInsecure": true
}
}
},
{
"tag": "out-mitm",
"protocol": "vless",
"settings": {
"vnext": [
{
"address": "你的服务器ip",
"port": 443,
"users": [
{
"id": "bulianglin-mitm",
"encryption": "none",
"flow": ""
}
]
}
]
},
"streamSettings": {
"network": "tcp",
"security": "tls",
"tlsSettings": {
"allowInsecure": true
}
}
},
{
"tag": "direct",
"protocol": "freedom"
},
{
"protocol": "freedom",
"settings": {
"redirect": "127.0.0.1:11111"
},
"tag": "re-entry"
}
],
"routing": {
"domainStrategy": "IPOnDemand",
"domainMatcher": "mph",
"rules": [
{
"type": "field",
"outboundTag": "direct",
"domain": [
"geosite:cn"
]
},
{
"type": "field",
"outboundTag": "direct",
"ip": [
"geoip:private",
"geoip:cn"
]
},
{
"type": "field",
"inboundTag": "in-mitm",
"outboundTag": "out-mitm"
},
{
"type": "field",
"port": "443",
"protocol": "tls",
"outboundTag": "re-entry"
}
]
}
}

新建config.json,粘贴模板,打开v2rayN(6.0以下的版本)文件所在目录,Xray内核和程序在同一目录下,将证书文件和私钥复制到过去,然后在v2rayN中添加自定义配置服务器,随便给个别名,将我们刚才创建的配置文件导入进来,内核选择Xray,点击确定,选中刚才创建的节点,在浏览器中设置代理,可以用配置文件中socks的8888,或者HTTP的9999,尝试访问谷歌,可以看到弹出了不安全的警告信息,这是MITM的正常表现,因为我们现在用的是自己签的ca,证书由于我们还没有信任Xray的根证书颁发机构,所以弹出来警告,尝试访问YouTube,也是同样的警告,接下来需要信任我们的CA证书,双击打开,点击安装证书 存储位置按需选择,我选择当前用户,将证书导入到受信任的根证书颁发机构,导入成功后重启浏览器,此时再来访问谷歌就可以正常访问了,并且消除了TIT的特征,可以看到谷歌的证书是由Xray的自签CA颁发的,我给大家的配置分流规则是,国内网站不走代理,所以百度并没有进行MITM,证书还是正常的证书,只是我们走代理的网站会进行MITM,这就是MITM节点的搭建过程,还是很简单的,如果你不想使用了,强烈建议把刚才导入的CA证书移除受信任,在开始菜单中搜索cer,由于刚才我们是将证书导入到当前用户,所以选择管理用户证书,如果你导入的是本地计算机,就选择下面的管理计算机证书,在受信任的根证书颁发机构里面,找到刚才导入的MITM证书,将其删除即可,删除之后,再重新使用MITM节点访问谷歌,又会弹出安全警告了,这就是MITM节点的搭建方法,我个人是不建议平时用这种方式进行科学上网的,因为你无法保证你的VPS绝对安全,当然具体还是得看你自己,毕竟每个人对安全都有自己不同的标准

naive节点

naive服务端配置

编译安装caddy+naive:

1
2
3
4
5
6
7
8
9
10
apt install software-properties-common
add-apt-repository ppa:longsleep/golang-backports
apt update
apt install golang-go

#测试
go version

go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest
~/go/bin/xcaddy build --with github.com/caddyserver/forwardproxy@caddy2=github.com/klzgrad/forwardproxy@naive

Caddyfile配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
:443, naive.buliang0.tk #你的域名
tls example@example.com #你的邮箱
route {
forward_proxy {
basic_auth user pass #用户名和密码
hide_ip
hide_via
probe_resistance
}
#支持多用户
forward_proxy {
basic_auth user2 pass2 #用户名和密码
hide_ip
hide_via
probe_resistance
}
reverse_proxy https://demo.cloudreve.org { #伪装网址
header_up Host {upstream_hostport}
header_up X-Forwarded-Host {host}
}
}

caddy常用指令:

前台运行caddy:./caddy run
后台运行caddy:./caddy start
停止caddy:./caddy stop
重载配置:./caddy reload

caddy配置守护进程(开机自启):https://github.com/klzgrad/naiveproxy/wiki/Run-Caddy-as-a-daemon

自定义端口:

naive如果要用自定义端口,需要使用json的配置方式,新手可以直接跳过

启动方式:./caddy start --config config.json

config.json内容:

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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
//需删除注释内容caddy才能加载
{
"apps": {
"http": {
"servers": {
"srv0": {
"listen": [
":4431" //监听端口
],
"routes": [
{
"handle": [
{
"auth_user_deprecated": "user", //用户名
"auth_pass_deprecated": "pass", //密码
"handler": "forward_proxy",
"hide_ip": true,
"hide_via": true,
"probe_resistance": {}
}
]
},
{
"handle": [
{
"handler": "reverse_proxy",
"headers": {
"request": {
"set": {
"Host": [
"{http.reverse_proxy.upstream.hostport}"
],
"X-Forwarded-Host": [
"{http.request.host}"
]
}
}
},
"transport": {
"protocol": "http",
"tls": {}
},
"upstreams": [
{
"dial": "demo.cloudreve.org:443" //伪装网址
}
]
}
]
}
],
"tls_connection_policies": [
{
"match": {
"sni": [
"naive.buliang0.tk" //域名
]
},
"certificate_selection": {
"any_tag": [
"cert0"
]
}
}
],
"automatic_https": {
"disable": true
}
}
}
},
"tls": {
"certificates": {
"load_files": [
{
"certificate": "/root/a.crt", //公钥路径
"key": "/root/a.key", //私钥路径
"tags": [
"cert0"
]
}
]
}
}
}
}

客户端配置

naive客户端:https://github.com/klzgrad/naiveproxy/releases/latest

客户端配置:

1
2
3
4
{
"listen": "socks://127.0.0.1:1080",
"proxy": "https://user:pass@example.com"
}

使用v2rayN加载naive内核需要将配置文件的log行删除,否则会断流

TLS指纹查看

jarm工具:https://github.com/salesforce/jarm

下载jarm:wget https://raw.githubusercontent.com/salesforce/jarm/master/jarm.py
查看网站jarm指纹:python3 jarm.py naive.buliang0.tk

网络空间资产搜索引擎:https://fofa.info

方法二:脚本搭建

更新软件和安装工具

1
2
3
4
5
#系统centos
yum update -y && yum upgrade -y && yum install curl -y && yum -y install wget

#系统debian
apt update && apt upgrade -y && apt install curl -y && apt -y install wget

安装脚本

一直默认回车就好,碰到y or n 也可以回车

1
wget -P /root -N --no-check-certificate "https://raw.githubusercontent.com/mack-a/v2ray-agent/master/install.sh" && chmod 700 /root/install.sh && /root/install.sh

开启BBR加速

选择2 和 11 安装,然后再reboot

1
wget --no-check-certificate -O tcpx.sh https://raw.githubusercontent.com/ylx2016/Linux-NetSpeed/master/tcpx.sh && chmod +x tcpx.sh && ./tcpx.sh

反向面试

大部分翻译自:https://github.com/viraptor/reverse-interview ,亦有其他网友补充。

译者总结的一份适合突击记忆的简洁版 LeetCode 题解和面试问题,也欢迎 Star。https://github.com/yifeikong/interview

下面列表里的问题对于参加技术面试的人来说可能有些用。
列表里的问题并不一定适用于某个特定的职位或者工作类型,也没有排序
最开始的时候这只是我自己的问题列表,但是慢慢地添加了一些我觉得可能让我对这家公司亮红牌的问题。
我也注意到被我面试的人提问我的问题太少了,感觉他们挺浪费机会的。

如果你问过的问题没有被列出来,请提交一个 PR。

翻译:

English
Korean
Portuguese
繁體中文

预期使用方式

  • 检查一下哪些问题你感兴趣
  • 检查一下哪些是你可以自己在网上找到答案的
  • 找不到的话就向面试官提问

绝对不要想把这个列表里的每个问题都问一遍。(尊重面试官的时间,而且你可以通过查找已经发布的答案来显示
你的主动性)

请记住事情总是灵活的,组织的结构调整也会经常发生。拥有一个 bug 追踪系统并不会保证高效处理 bug。
CI/CD (持续集成系统) 也不一定保证交付时间会很短。

职责

  • On-call (电话值班)的计划或者规定是什么?值班或者遇到问题加班时候有加班费吗?
  • 我的日常工作是什么?
  • 有给我设定的特定目标吗?
  • 团队里面初级和高级工程师的比例是多少?(有计划改变吗)
  • 入职培训 (onboarding) 会是什么样的?
  • 每个开发者有多大的自由来做出决定?
  • 在你看来,这个工作做到什么程度算成功?
  • 你期望我在最初的一个月 / 三个月能够完成什么?
  • 试用期结束的时候,你会怎么样衡量我的绩效?
  • 自己单独的开发活动和按部就班工作的比例大概是怎样的?
  • 一个典型的一天或者一周的工作是怎样安排的?
  • 对我的申请你有什么疑虑么?
  • 在这份工作上,我将会和谁紧密合作?
  • 我的直接上级他们的上级都是什么样的管理风格?(事无巨细还是着眼宏观)
  • 我在这个岗位上应该如何发展?会有哪些机会?
  • 每天预期 / 核心工作时间是多少小时?
  • 我入职的岗位是新增还是接替之前离职的同事?(是否有技术债需要还)?(zh)
  • 入职之后在哪个项目组,项目是新成立还是已有的?(zh)

技术

  • 公司常用的技术栈是什么?
  • 你们怎么使用源码控制系统?
  • 你们怎么测试代码?
  • 你们怎么追踪 bug?
  • 你们怎样监控项目?
  • 你们怎么集成和部署代码改动?是使用持续集成和持续部署吗 (CI/CD)?
  • 你们的基础设施搭建在版本管理系统里吗?或者是代码化的吗?
  • 从计划到完成一项任务的工作流是什么样的?
  • 你们如何准备故障恢复?
  • 有标准的开发环境吗?是强制的吗?
  • 你们需要花费多长时间来给产品搭建一个本地测试环境?(分钟 / 小时 / 天)
  • 你们需要花费多长时间来响应代码或者依赖中的安全问题?
  • 所有的开发者都可以使用他们电脑的本地管理员权限吗?
  • 介绍一下你们的技术原则或者展望。
  • 你们的代码有开发文档吗?有没有单独的供消费者阅读的文档?
  • 你们有更高层次的文档吗?比如说 ER 图,数据库范式
  • 你们使用静态代码分析吗?
  • 你们如何管理内部和外部的数字资产?
  • 你们如何管理依赖?
  • 公司是否有技术分享交流活动?有的话,多久一次呢?(zh)
  • 你们的数据库是怎么进行版本控制的?(zh)
  • 业务需求有没有文档记录?是如何记录的?(zh)

团队

  • 工作是怎么组织的?
  • 团队内 / 团队间的交流通常是怎样的?
  • 你们使用什么工具来做项目组织?你的实际体会是什么?
  • 如果遇到不同的意见怎样处理?
  • 谁来设定优先级 / 计划?
  • 如果团队没能赶上预期发布日期怎么办?
  • 每周都会开什么类型的会议?
  • 会有定期的和上级的一对一谈话吗?
  • 产品 / 服务的规划是什么样的?(n 周一发布 / 持续部署 / 多个发布流 / …)
  • 生产环境发生事故了怎么办?是否有不批评人而分析问题的文化?
  • 有没有一些团队正在经历还尚待解决的挑战?
  • 你们如何跟踪进度?
  • 预期和目标是如何设定的?谁来设定?
  • Code Review 如何实施?
  • 给我介绍下团队里一个典型的 sprint
  • 你们如何平衡技术和商业目标?
  • 你们如何共享知识?
  • 团队有多大?
  • 公司技术团队的架构和人员组成?(zh)
  • 团队内开发、产品、运营哪一方是需求的主要提出方?哪一方更强势?(zh)

问未来的同事

  • 开发者倾向于从哪里学习?
  • 你对在这里工作最满意的地方是?
  • 最不满意的呢?
  • 如果可以的话,你想改变哪里?
  • 团队最老的成员在这里多久了?
  • 在小团队中,有没有出现成员性格互相冲突的情况?最后是如何解决的?

公司

  • 公司为什么在招人?(产品发展 / 新产品 / 波动…)
  • 有没有会议 / 旅行预算?使用的规定是什么?
  • 晋升流程是怎样的?要求 / 预期是怎样沟通的?
  • 绩效评估流程是怎样的?
  • 技术和管理两条职业路径是分开的吗?
  • 对于多元化招聘的现状或者观点是什么?
  • 有公司级别的学习资源吗?比如电子书订阅或者在线课程?
  • 有获取证书的预算吗?
  • 公司的成熟度如何?(早期寻找方向 / 有内容的工作 / 维护中 / …)
  • 我可以为开源项目做贡献吗?是否需要审批?
  • 你认为公司未来五年或者十年会发展成什么样子?
  • 公司的大多数员工是如何看待整洁代码的?
  • 你上次注意到有人成长是什么时候?他们在哪方面成长了?
  • 在这里成功的定义是什么?如何衡量成功?
  • 有体育活动或者团建么?
  • 有内部的黑客马拉松活动吗?
  • 公司支持开源项目吗?
  • 有竞业限制或者保密协议需要签吗?
  • 你们认为公司文化中的空白是什么?
  • 能够跟我说一公司处于不良情况,以及如何处理的故事吗?
  • 您在这工作了多久了?您觉得体验如何?(zh)
  • 大家为什么会喜欢这里?(zh)
  • 公司的调薪制度是如何的?(zh)

社会问题

  • 你们关于多元化招聘什么看法?
  • 你们的公司文化如何?你认为有什么空白么?
  • 这里的工作生活平衡地怎么样?
  • 公司对气候变化有什么态度吗?

冲突

  • 不同的意见如何处理?
  • 如果被退回了会怎样?(“这个在预计的时间内做不完”)
  • 当团队有压力并且在超负荷工作的时候怎么处理?
  • 如果有人注意到了在流程或者技术等其他方面又改进的地方,怎么办?
  • 当管理层的预期和工程师的绩效之间有差距的时候如何处理?
  • 能给我讲一个公司深处有毒环境以及如何处理的故事吗?
  • 如果在公司内你的同事因涉嫌性侵犯他人而被调查,请问你会如何处理?
  • 假设我自己很不幸是在公司内被性侵的受害者,在公司内部有没有争取合法权益的渠道?

商业

  • 你们现在盈利吗?
  • 如果没有的话,还需要多久?
  • 公司的资金来源是什么?谁影响或者制定高层计划或方向?
  • 你们如何挣钱?
  • 什么阻止了你们挣更多的钱?
  • 公司未来一年的增长计划怎样?五年呢?
  • 你们认为什么是你们的竞争优势?
  • 你们的竞争优势是什么?
  • 公司未来的商业规划是怎样的?有上市的计划吗?(zh)

远程工作

  • 远程工作和办公室工作的比例是多少?
  • 公司提供硬件吗?更新计划如何?
  • 使用自己的硬件办公可以吗?现在有政策吗?
  • 额外的附件和家具可以通过公司购买吗?这方面是否有预算?
  • 有共享办公或者上网的预算吗?
  • 多久需要去一次办公室?
  • 公司的会议室是否一直是视频会议就绪的?

办公室布局

  • 办公室的布局如何?(开放的 / 小隔间 / 独立办公室)
  • 有没有支持 / 市场 / 或者其他需要大量打电话的团队在我的团队旁边办公?

终极问题

  • 该职位为何会空缺?
  • 公司如何保证人才不流失?
  • 这份工作 / 团队 / 公司最好和最坏的方面是?
  • 你最开始为什么选择了这家公司?
  • 你为什么留在这家公司?

待遇

  • 如果有奖金计划的话,奖金如何分配?
  • 如果有奖金计划的话,过去的几年里通常会发百分之多少的奖金?
  • 有五险一金(zh)/401k(us)或者其他退休养老金等福利吗?
  • 五险一金中,补充公积金一般交多少比例?/401k一般交多少比例?我可以自己选择这一比例吗?
  • 有什么医疗保险吗?如果有的话何时开始?
  • 有额外商业保险吗?例如人寿保险和额外的养老/医疗保险?
  • 更换工作地点,公司付费吗?

休假

  • 带薪休假时间有多久?
  • 病假和事假是分开的还是一起算?
  • 我可以提前使用假期时间吗?也就是说应休假期是负的?
  • 假期的更新策略是什么样的?也就是说未休的假期能否滚入下一周期
  • 照顾小孩的政策如何?
  • 无薪休假政策是什么样的?
  • 学术性休假政策是怎么样的?

NexT version 8.18.2

开启第三方插件

编辑整个博客文件夹下的themes/next/_config.ymlctrl+F搜索pjaxfalse改为true

接下来就可以添加喜欢的第三方插件了

添加看板娘-live2d_widget

项目地址:live2d-widget

加强版的live2d看板娘,可对话,换装互动

常用配置说明

模型的大小、位置、格式和文本内容等配置,需要自行设置一些配置文件waifu-tips.jswaifu-tips.jsonwaifu.css,这里提一些各文件里常用的配置。

waifu-tips.js

这里是模型加载启动/点击工具栏相应按钮时的行为和文本内容定义,具体对应可以对照参考原模型的行为,比如

2183122-20210503112404379-1613061177

这个部分是用来显示用户点回本页面时显示的文本,其余同理。

waifu-tips.json

这里是除了上面js里定义的文本以外的其余文本内容,同样可以对照参考原模型猜测来进行修改。

2183122-20210503112404630-2003319113

值得注意的是,这个文件里分了几大块,架构大概是:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"mouseover": [{ // 鼠标悬停在某个特定元素时显示的文本
"selector": "...",
"text": "..."
}],
"click": [{ // 鼠标点击某个特定元素时显示的文本
"selector": "...",
"text": "..."
}],
"seasons": [{ // 在特定日期显示的文本
"date": "01/01",
"text": "..."
}]
}

text这里很显然是填显示的文本。

date是指定的特定日期。

至于selector就类似于CSS里的CSS选择器,是用来指定元素类型的。

值得注意的,使用cdn来引用GitHub仓库的代码,只会记录第一次上传的代码,后续在github仓库上修改代码,是不会刷新jsdelivr缓存的,这个我暂时没办法解决,最后本地配置调整好在push到仓库上

配置

编辑themes/next/ayout/_layout.njk文件

建议把项目克隆到自己的仓库,这样就可以使用自己的cdn加速,也可以根据自己喜欢来修改配置

head头部添加

1
<link rel="stylesheet" type="text/css" href="https://fastly.jsdelivr.net/gh/AienH/blog_plugin/live2d/assets/waifu.css"/>

body添加

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<div class="waifu">
<div class="waifu-tips"></div>
<canvas id="live2d" class="live2d"></canvas>
<div class="waifu-tool">
<span class="fui-home"></span>
<span class="fui-chat"></span>
<span class="fui-eye"></span>
<span class="fui-user"></span>
<span class="fui-photo"></span>
<span class="fui-info-circle"></span>
<span class="fui-cross"></span>
</div>

<script src="https://fastly.jsdelivr.net/gh/AienH/blog_plugin/live2d/assets/waifu-tips.js"></script>
<script src="https://fastly.jsdelivr.net/gh/AienH/blog_plugin/live2d/assets/live2d.js"></script>

<script type="text/javascript">
live2d_settings['modelId'] = 1;
live2d_settings['modelTexturesId'] = 87;
initModel("https://fastly.jsdelivr.net/gh/AienH/blog_plugin/live2d/assets/waifu-tips.json")
</script>

最后再次编辑整个博客文件夹下的themes/next/_config.yml文件

在最下面添加

1
2
live2d:
enable: true

音乐播放器插件-APlayer & MetingJS

项目地址:APlayer MetingJS

介绍

  • APlayer 是一个简洁漂亮、功能强大的 Html5 音乐播放器。
  • MetingJS 是为 APlayer 添加网易云、QQ音乐等支持的插件。

老规矩,最好把项目拉到自己的GitHub仓库,防止作者链接失效

head头部添加

1
2
3
4
5
6
<script src="https://fastly.jsdelivr.net/npm/jquery/dist/jquery.min.js"></script>
<link rel="stylesheet" href="https://fastly.jsdelivr.net/npm/font-awesome/css/font-awesome.min.css">
<script src=" https://cdn.jsdelivr.net/npm/jquery-ui@1.13.2/dist/jquery-ui.min.js "></script>
<script rel="preload" src="https://fastly.jsdelivr.net/gh/AienH/blog_plugin@master/APlayer/dist/APlayer.min.js"></script>
<script rel="preload" src="https://fastly.jsdelivr.net/gh/AienH/blog_plugin@master/MetingJS/dist/Meting.min.js"></script>
<link rel="stylesheet" href="https://fastly.jsdelivr.net/gh/AienH/blog_plugin@master/APlayer/dist/APlayer.min.css">

body添加

1
2
3
4
5
6
7
8
9
10
11
<meting-js
server="netease"
type="playlist"
id="8269382559"
autoplay="true"
volume="0.7"
fixed="true"
order="list"
preload="metadata"
lrc-type="0">
</meting-js>

参数说明

  • 引用这两个插件的前提是要先引用jquery.min.jsfont-awesome.min.cssjquery-ui.min.js
1
2
3
<script src="https://fastly.jsdelivr.net/npm/jquery/dist/jquery.min.js"></script>
<link rel="stylesheet" href="https://fastly.jsdelivr.net/npm/font-awesome/css/font-awesome.min.css">
<script src=" https://cdn.jsdelivr.net/npm/jquery-ui@1.13.2/dist/jquery-ui.min.js "></script>

不然音乐插件不会生效

  • MetingJS参数详情
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!--
id='外链播放器id',必须参数
type=[song=单曲, playlist=歌单, album=专辑, search=搜索结果, artist=艺术家],必须参数
server=[netease=网易云音乐, tencent=QQ音乐, kugou=酷狗音乐, xiami=虾米音乐, baidu=百度音乐],必须参数
fixed=启用固定模式,固定在左下角,默认false
mini=启用迷你模式,默认false
preload=[none,metadata,auto]
mutex=[互斥锁,默认true],默认false
order=[random=随机播放,list=列表播放]
loop=[all=全部循环, one=循环一次 ,none=不循环]
volume=[音量,默认0.7]
lrc-type=[歌词类型,默认0]
list-folded=[列表是否折叠,默认false]
list-max-height=列表最大高度,默认340px
storage-name=本地存储存储密钥,用于存储播放器设置,默认metingjs
-->
0%