反思250519

反思需总结,改之&加勉

一年一年,周而复始。对待未结事项,需要有一个抉择,即使是错的,也没有问题,自己的选择。

娱乐至死

我们将毁于我们所热爱的东西

人们可能会因为过度追求财富、权力、名利等
而忽视了家庭、健康和道德,
最终导致自己的毁灭。
这也提醒我们要保持理性和清醒,
不要被自己的欲望和热爱所蒙蔽,
要时刻警惕它们可能带来的风险和后果。


三十而立
四十而不惑
五十而知天命
六十而耳顺
七十而从心所欲
不逾矩


GithubToken如何生成和使用

1
2
3
4
5
6
7
生成GitHub Token可以通过以下步骤完成:

1. 登录GitHub账户,并进入个人设置页面。
2. 在个人设置页面的侧边栏中,点击”Developer settings”(或者直接访问https://github.com/settings/tokens)。
3. 在Developer settings页面中,点击”Personal access tokens”。
4. 在Personal access tokens页面中,点击”Generate new token”按钮。
5. 在Generate new token页面中,首先输入一个
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
要生成一个GitHub令牌(token),您需要按照以下步骤进行操作:

1. 登录到GitHub账户:首先,您需要登录到您的GitHub账户。如果您还没有账户,请在GitHub的官方网站上创建一个新账户。

2. 进入个人设置:登录后,点击右上角的个人头像,选择”Settings”(设置)。

3. 进入令牌页面:在个人设置页面的左侧菜单中,选择”Developer settings”(开发者设置),然后选择”Personal access tokens”(个人访问令牌)。

4. 生成新令牌:在个人访问令牌页面,点击”Generate new token”(生成新令牌)按钮。

5. 命名令牌:在弹出的生成新令牌页面中,可以为令牌命名。例如,您可以为将来使用该令牌的用途起个名称。

6. 选择权限:根据您的需求,选择要为令牌授予的权限。您可以选择不同的权限,包括仅读取权限、写入权限,或者其他更高级别的权限,如管理存储库或管理用户的权限。

7. 生成令牌:选择您所需的权限后,点击”Generate token”(生成令牌)按钮。

Github Action实现Blog自动发布

密钥对接流程

使用 Hexo 的 Git 部署方式将生成的静态文件推送到 GitHub Pages 的 gh-pages 分支,但没有成功。这种情况下,通常需要检查以下几个关键点:

1. 确保 SSH 密钥正确配置

由于你使用的是 SSH 地址(git@github.com:owen-chenao/owen-chenao.github.io.git),需要确保 GitHub Actions 有权限通过 SSH
推送到目标仓库。

解决方法

  1. 生成 SSH 密钥对: 在本地生成一个 SSH 密钥对,公钥需要添加到目标仓库的 Deploy Keys 中。

    bash

    复制

    1
    ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f deploy_key

这将生成 deploy_key(私钥)和 deploy_key.pub(公钥)。

  1. 将公钥添加到目标仓库的 Deploy Keys

    • 打开目标仓库(owen-chenao.github.io)的 Settings 页面。
    • 在左侧菜单中选择 Deploy keys
    • 点击 Add deploy key,将 deploy_key.pub 的内容粘贴进去,并勾选 Allow write access
  2. 将私钥添加到 GitHub Actions 的 Secrets

    • 打开源仓库(owen_private_blog)的 Settings 页面。
    • 在左侧菜单中选择 Secrets and variables > Actions
    • 点击 New repository secret,名称为 DEPLOY_KEY,值为 deploy_key 的内容(私钥)。
  3. 修改 deploy.yml 文件: 在 GitHub Actions 的工作流中,需要使用私钥来配置 SSH 代理,以便能够通过 SSH 推送到目标仓库。以下是修改后的
    deploy.yml 文件:

    yaml

    复制

    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
    name: Deploy Hexo to GitHub Pages

    on:
    push:
    branches:
    - main

    jobs:
    deploy:
    runs-on: ubuntu-latest
    permissions:
    contents: write
    steps:
    - name: Checkout blog source
    uses: actions/checkout@v3
    with:
    fetch-depth: 0

    - name: Set up Node.js
    uses: actions/setup-node@v3
    with:
    node-version: "18"

    - name: Cache dependencies
    uses: actions/cache@v3
    with:
    path: node_modules
    key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
    restore-keys: ${{ runner.os }}-node-

    - name: Install dependencies
    run: npm install

    - name: Generate Hexo site
    run: npx hexo generate

    - name: Set up SSH agent
    uses: webfactory/ssh-agent@v0.5.4
    with:
    ssh-private-key: ${{ secrets.DEPLOY_KEY }}

    - name: Deploy to GitHub Pages
    run: |
    git config --global user.name "github-actions"
    git config --global user.email "github-actions@github.com"
    npx hexo deploy

在这里,我们使用了 webfactory/ssh-agent 动作来设置 SSH 代理,并将私钥传递给它。

2. 确保 Hexo 配置正确

在 Hexo 的 _config.yml 文件中,确保部署配置正确:

yaml

复制

1
2
3
4
deploy:
type: git
repo: git@github.com:owen-chenao/owen-chenao.github.io.git
branch: gh-pages

3. 确保目标仓库的 GitHub Pages 配置正确

  1. 打开目标仓库(owen-chenao.github.io)的 Settings 页面。
  2. 在左侧菜单中选择 Pages
  3. Source 部分,选择 gh-pages 分支作为发布源。

过程图片记录

私有库(owen_private_blog)

配置Actions secrets and variables

https://github.com/owen-chenao/owen_private_blog/settings/secrets/actions

公有库配置SSH(owen-chenao.github.io)

https://github.com/owen-chenao/owen-chenao.github.io/settings/keys

Action操作执行步骤和结果

frp实现内网穿透(Windows版本)

frp

frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网

IP 节点的中转暴露到公网。

github 下载地址:github.com/fatedier/frp/releases

frp配置参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[common]
bind_port = 7000
# 启用面板
dashboard_port = 7500
# 面板登录名和密码
dashboard_user = admin
dashboard_pwd = xxxxxx
# 使用http代理并使用80端口进行穿透
vhost_http_port = 80
# 使用https代理并使用443端口进行穿透
vhost_https_port = 443
# 日志路径
log_file = ./frps.log
# 日志级别
log_level = info
# 日志最大保存天数
log_max_days = 7
# 认证超时时间
authentication_timeout = 900
# 认证token,客户端需要和此对应
token=123123123
# 最大连接数
max_pool_count = 5
max_ports_per_client = 0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[common]
bind_port = 7000
# 启用面板
dashboard_port = 7500
# 面板登录名和密码
dashboard_user = admin
dashboard_pwd = xxxxxx
# 使用http代理并使用80端口进行穿透
vhost_http_port = 80
# 使用https代理并使用443端口进行穿透
vhost_https_port = 443
# 日志路径
log_file = ./frps.log
# 日志级别
log_level = info
# 日志最大保存天数
log_max_days = 2
# 认证超时时间
authentication_timeout = 900
# 认证token,客户端需要和此对应
token=123123123
# 最大连接数
max_pool_count = 5
max_ports_per_client = 0

frpClient

1
2
3
4
5
6
7
8
9
10
11
12
[common]
serverAddr = 127.0.0.1
serverPort = 7000

auth.method = "token"
auth.token = "gKpsGx0AMSVRVjAVvo2Qa94kU81"

[web]
type = tcp
local_ip = 127.0.0.1
local_port = 80
remote_port = 8080

frpServer

1
2
3
4
5
6
7
8
9
10
11
[common]
bind_addr = 0.0.0.0
bindPort = 7000

auth.method = "token"
auth.token = "gKpsGx0AMSVRVjAVvo2Qa94kU8"

dashboard_addr = 0.0.0.0
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = "SuxqcRvNC2iknszYNpZmuxfrtp"

公网、内网服务器都下载一份。

找到第一条,然后下载 frp_windwos_amd64.zip 这个 (amd64 是 64 系统,386 是 32 位系统,现在电脑基本 64 位了),比如图片上的
frp_0.33.0_windows_amd64.zip

2、将 frp_0.33.0_windows_amd64.zip 解压至任意目录

3、进入解压目录这里所有 frpc 开头的文件都是客户端文件,所以全部删了,我们服务器只需要 frps 开头的文件

4、配置服务端(公网服务器)
我们打开 frps.ini(我用的 notepad++ 编辑器,记事本也可以)
注意配置文件不支持注释,请不要把汉字复制进去

1
2
3
[common]
bind_port = 7000 #与客户端绑定的进行通信的端口
vhost_http_port = 6081 #访问客户端web服务自定义的端口号

保存然后打开 cmd 进入当前目录(cmd 不会用自行百度),输入:frps.exe -c ./frps.ini,此时会提示网络防火墙安全警告,点允许

提示 start frps success 则服务启动成功

警告:云服务器一定要开放端口,不会开放自行百度,图中的 7000 是 frp 绑定的默认端口要打开,另外一个是 http(用不到可以删了)

至此服务端配置完成!
5、配置客户端(内网服务器),首先删掉 frps 开头文件文件,然后再进行配置,编辑 frpc.ini
注意配置文件不支持注释,请不要把汉字复制进去

1
2
3
4
5
6
7
8
9
[common]
server_addr = xx.xx.xx.xx #公网服务器ip
server_port = 7000 #与服务端bind_port一致

[yclj]
type = tcp
local_ip = 127.0.0.1
local_port = 3389 # 3389是windows的远程连接端口
remote_port = 24567 # 远程服务器端口(自定义)

保存然后执行
windows 使用 cmd 或者 powershell 进入当前目录,执行

frpc.exe -c frpc.ini
6、访问方式
(1) 远程连接 windows bind_post 要绑定 3389,其他的不行
ip:xx.xx.xx.xx:24567 (这个是服务器开放的端口,映射本地的 3389)

三、结尾

  1. 客户端连接服务端提示访问被拒绝,则需要服务端开放防火墙端口(学习的话全开就行了,生产环境除外)。

示例代码

frpc.ini(客户端)frpc.exe -c frpc.ini

1
2
3
4
5
6
7
8
9
[common]
server_addr = xx.xx.xx.xx
server_port = 7000

[yclj]
type = tcp
local_ip = 127.0.0.1
local_port = 80
remote_port = 80

frps.ini(服务端)frps.exe -c frps.ini

1
2
3
[common]
bind_port = 7000
vhost_http_port = 6081

frp 如何增加密码校验

FRP(Fast Reverse Proxy)可以通过以下几种方式增加密码校验:

1. 使用 Token 鉴权

FRP 支持通过 Token 进行身份验证。你需要在服务端(frps)和客户端(frpc)的配置文件中设置相同的 token 值。

  • 服务端配置(frps.toml

    toml

    复制

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    [common]
    bind_port = 7000
    auth.method = "token"
    auth.token = "your_secret_token"


    auth.method = "token"
    auth.token = "gKpsGx0AMSVRVjAVvo2Qa94kU8"

    dashboard_addr = 127.0.0.1
    dashboard_port = 7500
    dashboard_user = admin
    dashboard_pwd = "SuxqcRvNC2iknszYNpZmuxfrtp"
  • 客户端配置(frpc.toml

    toml

    复制

    1
    2
    3
    4
    5
    6
    7
    8
    [common]
    server_addr = x.x.x.x
    server_port = 7000
    auth.method = "token"
    auth.token = "your_secret_token"

    auth.method = "token"
    auth.token = "gKpsGx0AMSVRVjAVvo2Qa94kU8"

2. 使用 OpenID Connect (OIDC) 鉴权

FRP 也支持使用 OpenID Connect (OIDC) 进行身份验证。

  • 服务端配置(frps.toml

    toml

    复制

    1
    2
    3
    4
    5
    [common]
    bind_port = 7000
    auth.method = "oidc"
    auth.oidc.issuer = "https://example-oidc-issuer.com/"
    auth.oidc.audience = "https://oidc-audience.com/.default"
  • 客户端配置(frpc.toml

    toml

    复制

    1
    2
    3
    4
    5
    6
    7
    8
    [common]
    server_addr = x.x.x.x
    server_port = 7000
    auth.method = "oidc"
    auth.oidc.clientID = "your_client_id"
    auth.oidc.clientSecret = "your_client_secret"
    auth.oidc.audience = "https://oidc-audience.com/.default"
    auth.oidc.tokenEndpointURL = "https://example-oidc-endpoint.com/oauth2/v2.0/token"

3. 使用 BasicAuth 鉴权

如果你需要对 HTTP/HTTPS 代理进行密码校验,可以使用 BasicAuth 鉴权。

  • 客户端配置(frpc.ini

    ini

    复制

    1
    2
    3
    4
    5
    6
    7
    8
    [http]
    type = http
    local_port = 80
    remote_port = 8080
    use_encryption = true
    use_compression = true
    http_user = admin
    http_passwd = 123456
  • 服务端配置(frps.ini

    ini

    复制

    1
    2
    [common]
    bind_port = 7000

4. 使用签名验证

在某些高级场景中,可以通过签名验证来保护配置文件不被篡改。例如,通过计算配置文件的 MD5 值并进行验证,但这种方法需要结合额外的工具或脚本实现。

5. 使用 TLS 双向认证

虽然 TLS 双向认证主要用于加密通信,但也可以通过证书来验证客户端和服务端的身份。

  • 服务端配置(frps.toml

    toml

    复制

    1
    2
    3
    transport.tls.certFile = "/path/to/server.crt"
    transport.tls.keyFile = "/path/to/server.key"
    transport.tls.trustedCaFile = "/path/to/ca.crt"
  • 客户端配置(frpc.toml

    toml

    复制

    1
    2
    3
    transport.tls.certFile = "/path/to/client.crt"
    transport.tls.keyFile = "/path/to/client.key"
    transport.tls.trustedCaFile = "/path/to/ca.crt"

根据你的需求选择合适的密码校验方式,并按照上述配置进行设置即可。

报考软件设计师250506

时间

每年大概报考时间(一年2次)
考生报名时间:03-24 至 04-01
考生报名时间:09-06 至 09-14

考试计划

软件设计师

考试科目 场次 时间
基础知识 基础知识 09:00:00(150分钟)
应用技术 应用技术 14:00:00(150分钟)

基础知识&应用技术包括哪些

基础知识

基础知识是软考初级、中级和高级的必考科目,涵盖了计算机软件领域的各个方面,包括数据结构、操作系统、编程语言、数据库
等方面的知识。考试形式为单选题和多选题,主要测试考生对基础知识的掌握程度和应用能力。

一、 基础知识

  1. 计算机系统知识

  2. 程序设计语言基础知识

  3. 数据结构

  4. 操作系统知识

  5. 软件工程基础知识

  6. 结构化开发方法

  7. 面向对象技术

  8. 算法设计与分析

  9. 数据库技术基础

  10. 网络与信息安全基础知识

  11. 标准化和软件知识产权基础知识

  12. 软件系统分析与设计

应用技术

应用技术是软考初级和中级的必考科目,主要测试考生在实际工作中运用基础知识和技术解决问题的能力。考试形式为简答题和案例分析题,要求考生能够运用所学知识解决实际问题。

二、 应用技术

  1. 数据流图

  2. 数据库设计

  3. UML 建模

  4. C 语言算法

  5. 程序设计

模拟练习

模拟练习平台旨在让考生熟悉计算机化考试环境和作答方式,不涉及考试题型、题量、分值等考试内容,以上内容以正式考试答题系统为准。

了解考试大纲和考试用书等更多信息,请登陆中国计算机技术职业资格网(https://www.ruankao.org.cn/)

考生模拟练习平台操作指南
考生模拟练习平台操作说明