NAT介绍NAT(Network Address Translation,网络地址转换):简单来说就是将内部私有地址转换成公网地址。在NAT中,涉及到内部本地地址、内部全局地址、外部本地地址、外部全局地址。它们的含义是:
内部本地地址:内网中设备所使用的 IP 地址,此地址通常是一个私有地址。
内部全局地址:公有地址,通常是 ISP 所提供的,由内网设备与外网设备通信时所使用到的。
外部本地地址:外网中设备所使用的地址,这个地址是在面向内网设备时所使用的,它不一定是一个公网地址。
外部全局地址:外网设备所使用的真正的地址,是公网地址。
2.NAT的分类:
根据转化方式的不同,NAT可以分为三类:
源NAT:源地址转化的NAT。如NO—PAT, NAPT, Easy_ip
目的NAT:将目的地址进行转化的NAT。如NAT-Server
双向NAT:即将源地址和目的地址都做NAT转换。
NAT的优缺点:优点:
1、减缓了可用的IP地址空间的枯竭。
2、隐藏了内部网络的网络结构,避免了来自外部的网络攻击。
缺点:
1、网络监控的难度加大
2、限制了某些具体应用
NAT所面临的问题:1、NAT ...
前言在学习了几种C语言输入输出函数,如下列出:
printf 与 scanf
getchar 与 putchar
gets 与 puts
相比之下 printf 与 scanf的功能最为强大,但操作稍显复杂,后两种则功能简单,但针对性较强。做一下记录以备查询。
printf函数功能:按照规定格式输出指定数据一般形式:如图
格式控制:由“%”后跟格式字符组成。将输出数据转换为指定格式输出,字符串原样输出,转义字符对输出形式进行控制。
格式说明如图
附加格式说明字符
说 明
-
输出的数字或字符以左对齐,右边填空格
0(数字)
输出的空位用0填充。
m(一个正整数)
输出数据的字段宽度。如果实际位数多于m,按实际位数输出;如果实际位数少于m,则补以空格或0。
n(一个正整数)
对实数,表示输出n位小数;对字符串,表示截取的字符个数。
l(字母)
输出长整型整数
常见格式输出
%d —— 以带符号的十进制形式输出整数
%o —— 以无符号的八进制形式输出整数
%x —— 以无符号的十六进制形式输出整数
%u —— 以无符号的十进制形式输 ...
前言之前每次部署 Hexo 都需要运行 hexo cl & hexo g & hexo d 指令三件套完成推送到远程仓库,换一台电脑还要重新部署环境,而且随着文章越来越多,编译的时间也会越来越长。现在通过 Github Actions,我们只需要在每次完成博客的编写或修改以后,将改动直接 push 到远程仓库,之后的编译部署的工作统统交给 CI 来完成即可。
本文假设你已经有了自己的 hexo 静态博客,因此只介绍自动化部署的过程合设置。
一.创建GitHub仓库
创建 blog 仓库用来存放 Hexo 源码,仓库的类型是 private
创建 yourname.github.io 仓库用来存放静态博客页面,仓库类型是 public(yourname修改为自己GitHub用户名)
二.部署密钥1.生成密钥在 Git Bash Here 或 终端 中执行以下命令,一路按回车直到生成成功
1$ ssh-keygen -f github-deploy-key
将会在当前目录下生成 github-deploy-key 和 github-deploy-key.pub 两个文件 ...
Twikoo是一个简洁、安全、免费的静态网站评论系统。有部署有数种方式,其他部署方式要么收费,要么需要服务器,本次选择Vercel 部署,请选择适合自己的部署平台。
一.Twikoo评论系统配置1.配置MongoDB
申请 MongoDB 账号。
创建免费 MongoDB 数据库,区域推荐选择 AWS / N. Virginia (us-east-1)。
创建数据库用户和数据库密码。
设置允许所有 IP 地址的连接。
Clusters 页面点击 CONNECT - Drivers,记录数据库连接字符串,将连接字符串中的 <password> 修改为数据库密码。
2.配置 Vercel
申请 Vercel 账号。
点击Vercel按钮将 Twikoo 一键部署到 Vercel。
进入 Settings - Environment Variables,添加环境变量Key: MONGODB_URI,Value值为第 1.5 步的数据库连接字符串。
进入 Deployments , 点击头像后面三个点(更多) , 然后点击Redeploy , 最后点击下面的Redeploy。
进 ...
前言 GitHub Actions 是 GitHub 的持续集成服务,于2018年10月推出。可以自动化和定制化项目的 Workflow,它的功能非常强大,每一个 action 都用来执行一种操作,比如抓取代码、运行测试、登录远程服务器,发布到第三方服务等等。将这些 actions 组合起来,就是一个持续集成的过程。当然,这些 actions 都共享在 GitHub 的代码仓库中,我们可以直接引用。
Github Actions 提供了整套服务器环境,服务器规格为:
2-core CPU
7 GB RAM 内存
84 GB SSD 硬盘空间
什么是 Github Actions,官网的介绍是:
With GitHub Actions you can automate your workflow from idea to production.
所以我们完全可以用它来编译 OpenWrt固件
项目地址有以下三个项目地址:
P3TERX
ccbcfan
coolsnowwolf/lede
以下教程以ccbcfan为模板,其他两个教程基本一样。
准备 ...
前言 此教程的书写基于 Redmi AC2100 路由器,并不保证其他路由器可用。推荐使用 Windows 10/11 系统。理论上对其他型号路由器也通用,不过需要改一下固件的型号。本教程参考了多位前辈的文档与教程。
注意事项:1、进行教程操作前,请尽量使用网线与路由器连接,否则可能无法进行部分操作。正常情况是无需设置电脑防火墙和关闭杀毒软件的,但保险起见还是关闭防火墙和杀毒软件,不然刷成砖就后悔了!
2、教程中涉及文件存储和操作的所有路径和命令,请保证为全英文路径和命令(不得使用中文字符),使用中文路径可能出现未知错误,导致刷机失败!
教程一.开启SSH 利用官方固件的漏洞,通过Web注入漏洞开启SSH实现刷机,更换至漏洞官方固件版本,降级只需用官方更新方法手动刷入即可。
1.下载固件 有漏洞固件版本为:AC2100 2.0.7*版本
官方下载链接:
红米RM2100:点我下载
小米R2100:点我下载
其中 miwifi_rm2100开头的是红米的,miwifi_r2100开头的是小米的。
2.漏洞注入 降级到漏洞版本后,通过下面w ...
首先感谢qkqpttgf这位大佬开发的OneManager
一.OneManager是什么 这是一个利用微软onedrive api将onedrive目录映射成一个云盘的程序,类似的程序有很多,比如OneIndex、Pyone、OnePoint等等。这个程序的特点是支持多种onedrive类型,可以部署在vps,heroku,以及云函数上。
二.搭建教程1.准备条件
onedriver账号没有的话注册一个 https://onedrive.live.com/
腾讯云账号微信号注册一个就行
个人域名可有可无,有的话可以通过配置自定义域名来访问网盘没有的话可以通过腾讯云提供的免费域名访问
下载OneDrive_SCF源码
2.配置云函数登录腾讯云SCF
登录后新建云函数。
地区建议选择香港。
创建方式选择模板函数,模糊搜索:helloworld,Php7。
选择 helloworld模板,点击下一步。
函数名称随意填写。
创建触发器
触发器配置自定义创建
触发方式API网关触发
勾选集成响应
创建完成后进入函数管理 - 函数代码
提交方法:本地上传zi ...
CDN加速
CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。——百度百科
存放在Github的资源在国内加载速度比较慢,因此需要使用CDN加速来优化网站打开速度,jsDelivr + Github便是免费且好用的CDN,非常适合博客网站使用。
一.首先新建GitHub仓库
仓库名称随便
仓库属性Public,不然jsDelivr无法访问
初始化Readme
二.克隆创建仓库到本地
本地新建一个文件夹,文件夹名称自定义,然后进入文件夹
shift+右键打开Git Bash Here 克隆仓库到指定文件夹
1git clone //加上仓库的链接
三.上传需要加速的文件把要加速的文件复制到克隆的文件夹里
注意:JSDelivr不能加速超过50M的文件,如果文件超过50M,可以分次上传。
然后再依次执行下面的命令:
...
一.添加动态诗词 打开 themes/matery/source/css/matery.css 文件,有一个.bg-color 属性,修改其属性值即可,代码如下:
1<script src="https://sdk.jinrishici.com/v2/browser/jinrishici.js" charset="utf-8"></script>
然后再将 /themes/matery/layout/_partial/bg-cover-content.ejs 中的 <%= config.description %> 修改为 <%- '<span id="jinrishici-sentence">正在加载今日诗词....</span>' %>,这个使用前提是将主题配置文件的 subtitle 的值改为 false。
二.鼠标点击文字特效 引入 js 文件,在主题文件下的 /source/js/ 下新建 click_show_t ...
一.修改主题的 logo 图和 favicon 图标 找到如下的路径,将其替换为你的 logo.png 和 favicon.png 即可:
12favicon.png路径:"博客根目录\themes\hexo-theme-matery\source\favicon.png"logo.png路径"博客根目录\themes\hexo-theme-matery\source\medias\logo.png"
二.去掉右上角的 github 图标 打开你的主题配置文件,找到下面的配置:
123456# Whether to display fork me on github icon and link, default true, You can change it to your repo address# 配置是否在 header 中显示 fork me on github 的图标,默认为true,你可以修改为你的仓库地址.githubLink: enable: false url: https://github ...