一个CTFer的小窝 - Linux
type: channel
link: https://ctf.w1lsp0.top/index.php/category/Linux/
items: Jet全家桶和Navicat激活(仅可用于学生学习使用)
items: Linux常用命令
items: 在DNS中，国际互联网与国内网络有没有互通
items: MySQL常用指令
items: Docker常用命令
items: 云存储运维
items: 华为交换机&路由器命令
items: 软考基本知识
items: Kali安装配置过程中的一些nt操作和坑
items: 多个域名指向同一个IP访问文件造成的跨域问题

Jet全家桶和Navicat激活(仅可用于学生学习使用)
type: item
date: 2024-03-24T12:48:00+01:00
description: NavicatPremium16 激活只能激活16.0和16.1，贴个16.0的链接NavicatPremium16NavicatCracker NavicatPremium16激活教程.pdfJet全家桶激活所有的资料都在里面

Linux常用命令
type: item
date: 2024-03-24T12:28:00+01:00
description: CentOS基础命令yum install -y net-tools # 和Ubuntu使用同一个network managerUbuntu进程查看 ps top# 查看进程四种命令 ps aux ps -elf top pstree -aup 以树状图的方式展现进程之间的派生关系，显示效果比较直观。 -a：显示每个程序的完整指令，包含路径，参数或是常驻服务的标示； -c：不使用精简标示法； -G：使用VT100终端机的列绘图字符； -h：列出树状图时，特别标明现在执行的程序； -H<程序识别码>：此参数的效果和指定"-h"参数类似，但特别标明指定的程序； -l：采用长列格式显示树状图； -n：用程序识别码排序。预设是以程序名称来排序； -p：显示程序识别码； -u：显示用户名称； 在top命令显示的页面还可以输入以下按键执行相应的功能（注意大小写区分的）： ?：显示在top当中可以输入的命令 P：以CPU的使用资源排序显示 M：以内存的使用资源排序显示 N：以pid排序显示 T：由进程使用的时间累计排序显示 k：给某一个pid一个信号。可以用来杀死进程 r：给某个pid重新定制一个nice值（即优先级） q：退出top（用ctrl+c也可以退出top）压缩文件 tar zip1、tar –xvf file.tar //解压 tar包 2、tar -xzvf file.tar.gz //解压tar.gz 3、tar -xjvf file.tar.bz2 //解压 tar.bz2 4、tar –xZvf file.tar.Z //解压tar.Z 5、unrar e file.rar //解压rar 6、unzip file.zip //解压zip 1、tar -cvf xiaoq.tar xiaoq/ 2、zip -r ohnote.zip * .[^.]* 说明： -r 递归子目录 * 所有非隐藏文件/夹 .[^.]*（所有隐藏文件/夹，但排除..（上一级目录）） 3、services.msc 打开服务磁盘管理 mdadmmdadm -Cv md0 -l0 -n2 sdc sdd #创建RAID cat /proc/mdstat mkfs.ext4 sdc/sdd mdadm --stop /dev/sd0 #停止阵列 mdadm --misc --zero-superblock sdd/sdc #移出设备 mdadm -D /dev/md0 #查看阵列详情 mkfs -t ext4 /dev/md0 #格式化与挂载使用raid mdadm -Cv /dev/md0 -l10 -n4 /dev/sdb[1-4] #创建RAID10 cat /proc/进度mdsdat #查看RAID创建进度 mdadm -Cv /dev/md0 -l5 -n4 /dev/sdb[1-3] #创建RAID5 mdadm -f /dev/md0 /dev/sdb1 #模拟硬盘损坏 mdadm -r /dev/md0 /dev/sdb1 #热移出故障盘 mkfs.ext4 /dev/md0 #格式化阵列端口查询 netstatnetstat -a # 列出所有端口 netstat -at # 列出所有TCP端口 netstat -au # 列出所有UDP端口 netstat -ax # 列出所有unix端口 netstat -atnlp # 直接使用ip地址列出所有处理监听状态的TCP端口，且加上程序名 netstat -ant # 查看服务器所有被占用端口 netstat -tunlp | grep 端口号 # 验证某个端口号是否被占用 netstat -lntp # 查看所有监听端口号fdisk，使用参考[root@localhost ~]# fdisk /dev/sdb 欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中，直到您决定将更改写入磁盘。 使用写入命令前请三思。 Device does not contain a recognized partition table 使用磁盘标识符 0x155d620b 创建新的 DOS 磁盘标签。 命令(输入 m 获取帮助)：m 命令操作 a toggle a bootable flag # 切换可启动标志 b edit bsd disklabel # 编辑bsd磁盘标签 c toggle the dos compatibility flag # 切换dos兼容性标识 d delete a partition # 删除分区 g create a new empty GPT partition table # 创建一个新的GPT分区表 G create an IRIX…

在DNS中，国际互联网与国内网络有没有互通
type: item
date: 2024-03-24T12:26:00+01:00
description: @木村·星辰的观点是和根服务器（及镜像污染）有关，国际互联网不再信任中国的 DNS 服务器。但这个说法实际上是很荒谬的，也可以通过实验快速验证。本回答就旨在说明这一问题。​ 首先从DNS的解析过程入手。不考虑 DNSSEC 等因素，仅讨论最简单的情况，一个典型的解析过程如下：用户请求本地 DNS，本地 DNS 从根开始一步步解析，其中每一步都是获取 NS 记录 和 A（或者 AAAA）记录，最终查询到用户请求的记录。​ 根服务器中存储了什么？存储了各个 TLD 的 NS 记录和 A/AAAA 记录。具体的记录由 ICANN 旗下的 IANA 保管，内容见 Root Files。全世界所有的根服务器及其镜像的内容都是一致的。​ .cn的信息也不例外。在任何一个根服务器的 中，都可以查询到 .cn 正确的 delegation 信息。这一结论可以通过 'dig cn NS 任意一个根' 来快速验证。那么，只要授权 DNS 工作正常，没有理由认为 .cn 会被整个屏蔽。​ 历史上有没有发生过整个 TLD 被屏蔽的事件？有。早年间曾经发生过伊拉克的 .iq TLD 被整个从根服务器中删除的例子。然而这个例子在今天不适用：.cn 仍在根服务器中活得好好的。​ 说到底，互联网是一个分布式的系统，“国际互联网”本身就是一个伪概念。互联网有许多组成部分，哪些部分是“国际互联网”呢？事实上，并没有一个部分能完全担得起这个概念。因此，“不被国际互联网信任”本身从逻辑上就无法成立。​ 我们可以试想一下，假如“[国际互联网]”中的某个部分想屏蔽 .cn 该怎么做。某个运营商可以控制旗下的 DNS，拒绝解析 .cn。或者某个国家的政府可以如此规定。然而，这种做法终究只是某个或某些特定运营商的，很难具有普遍性，更不可能扩散到整个”国际互联网“。​ 如果上述分析还不足以令人信服，我们通过实验来核实一下就行了。实验利用 RIPE Atlas，这是一个包含了成千上万的家宽、商宽、服务器甚至是卫星连接的巨大监控网络，而我恰好有节点在其中，有资源可以发起全球规模的测试。话不多说，直接上测试结果：Atlas Console​ 上面的链接无需登录就能打开。测试目标是新华网。新华网的 DNS 全部位于境内。测试节点选用了全世界内 1000 个随机节点（但只有 994 个实际参与）。这个样本量已经足够大了。结果表明，绝大多数的测试节点都能够正常完成解析，而剩下不能完成解析的节点中很有可能也是因网络延迟问题（因为众所周知的原因，跨境网络连接不佳）。至少，绝对不存在 @木村·星辰所说的”国际互联网不信任中国 DNS“这件事。以上，如有不严谨之处欢迎评论区指点。行了，前几天的评论又给我吞了，今天才发现。原样贴过来算了。纯技术问题知乎怎么还吞评论这么严重的。本来是回复@木村·星辰的。​ 经过查询，我确认了 .cn的确有两个授权 DNS 在境外，不知是不是就是你所说的“镜像”。30s 这个限制实际上是有些不合理的。不考虑缓存因素，当 DNS 记录被修改时（增删改都算），master 会通知 slave 变更，slave 则会在收到通知后发起 AXFR。这个过程即使不考虑众所周知的那个因素，也常常需要一定时间来完成。例如，HE 运营的免费 slave 就常常需要数分钟时间来响应更新请求。可以认为，DNS 记录的更新本就不是实时的，是需要一定时间传播的。不考虑缓存的情况下，存在数十秒延迟是很正常的事，并不能认为是被“阻断”了。实际上我也完成了一项小测试，使用我自己的 .cn 域名测试了伦敦的授权 DNS 的反应速度。我采用了设置 Glue Record 的方法，经过我的测试，设置完成后 20 秒之内信息就同步了，至少我的实验无法支持“境外镜像包含错误信息”这一结论。至于 8.8.8.8 怎么选取 .cn 的授权 DNS，这个我没有找到互联网上的公开信息。如果你有更多信息的话也欢迎提供下，咱们一起分析。

MySQL常用指令
type: item
date: 2024-03-24T12:24:03+01:00
description: create，创建数据库CREATE TABLE USER ( id INT PRIMARY KEY, age INT, NAME VARCHAR ( 255 ));schema，等同数据库-- 翻译过来是在MySQL中，schema实际上等同于database。你可以用关键字SCHEMA代替MySQL SQL语法中的DATABASE，例如用CREATE SCHEMA代替CREATE DATABASE。 CREATE SCHEMA Learn; # 相当于创建一个数据库drop，删除表-- 删除一个表，CASCADE：如果有外键一并删除。删除模式：CASCADE（删除模式的同时删除所有的数据库对象） 或者 RESTRICT（该模式有下属对象，例如表视图就拒绝这个删除语句的执行） DROP TABLE USER CASCADE;alter ，修改表ALTER TABLE student ADD S_entrance DATE; ALTER TABLE student CHANGE COLUMN Sage Sage INT; # 修改表中某个字段数据类型 -- >alter table 表名称 change 字段原名称 字段新名称 字段类型 [是否允许非空]; index，索引CREATE UNIQUE INDEX Stusno ON student(Sno); -- unique唯一索引，cluster聚簇索引 ALTER TABLE student RENAME INDEX stusno TO STSno; -- 修改索引名字 ALTER TABLE student DROP INDEX stsno; -- 删除索引select，查询SELECT * FROM course; -- 查询所有的 SELECT Cno,Cpno FROM course; -- 查询部分字段 SELECT Sname 姓名,Sage as 年龄 FROM student -- 别名 SELECT DISTINCT Cname FROM course; -- 结果去重条件查询SELECT * FROM sc WHERE Grade > 20; SELECT * FROM sc WHERE Grade BETWEEN 80 AND 90; SELECT * FROM sc WHERE Grade in (80); -- 查询集合 SELECT * FROM sc WHERE Sno LIKE "2012%1" ; -- 模糊匹配，要查询的字符串本身含有通配符%或者_，这个时候使用\进行转义 SELECT * FROM sc ORDER BY Grade DESC; -- 从大到小排序，去掉desc就是反过来聚集函数count(*) -- 统计元祖个数 count sum avg max min，都可以使用distinct去除列里重复的，all可以统计全部、 SELECT COUNT(Cname) FROM course; SELECT COUNT(DISTINCT Cname) FROM course; SELECT Sno,COUNT(*) FROM sc GROUP BY Sno; SELECT Sno FROM sc GROUP BY Sno HAVING Sno="2%"; having 进行分组连接SELECT t.*,c.* FROM edu_teacher t,edu_course c WHERE t.id=c.teacher_id; -- 非等值连接，以where为关键词 SELECT c1.version,c2.version FROM edu_course c1,edu_course c2 WHERE c1.version=c2.version; -- 自身与自身连接，为本身的这个表起两个别名 SELECT student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade FROM student LEFT [OUTER] JOIN sc ON (student.Sno=sc.Sno); # left join（左连接）会返回左表中的所有行，即使在右表中没有匹配的行。如果右表中没有匹配的行，则相应的列会用空值（null）填充。这种连接方式可以显示左表中的所有信息，即使这些信息在右表中没有对应的记录。 多表查询SELECT c.id ID,c.title 课程名 FROM edu_course c,edu_chapter cp; 嵌套查询SELECT * FROM edu_course c WHERE c.title in (SELECT edu_course.title FROM edu_course WHER…

Docker常用命令
type: item
date: 2023-02-15T18:59:00+01:00
description: 1. 首先需要容器镜像加速，使用阿里云的个人链接sudo vim /etc/docker/daemon.jsonsudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://ayxukj4g.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker apt-get remove docker docker-engine docker.io containerd runc curl -fsSL https://test.docker.com -o test-docker.sh && sh test-docker.sh2.容器操作Docker创建命令-rundocker create docker run Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] -a, --attach=[] 登录容器（以docker run -d启动的容器） -c, --cpu-shares=0 设置容器CPU权重，在CPU共享场景使用 --cap-add=[] 添加权限，权限清单详见：http://linux.die.net/man/7/capabilities --cap-drop=[] 删除权限，权限清单详见：http://linux.die.net/man/7/capabilities --cidfile="" 运行容器后，在指定文件中写入容器PID值，一种典型的监控系统用法 --cpuset="" 设置容器可以使用哪些CPU，此参数可以用来容器独占CPU -d, --detach=false 指定容器运行于前台还是后台 --device=[] 添加主机设备给容器，相当于设备直通 --dns=[] 指定容器的dns服务器 --dns-search=[] 指定容器的dns搜索域名，写入到容器的/etc/resolv.conf文件 -e, --env=[] 指定环境变量，容器中可以使用该环境变量 --entrypoint="" 覆盖image的入口点 --env-file=[] 指定环境变量文件，文件格式为每行一个环境变量 --expose=[] 指定容器暴露的端口，即修改镜像的暴露端口 -h, --hostname="" 指定容器的主机名 -i, --interactive=false 打开STDIN，用于控制台交互 --link=[] 指定容器间的关联，使用其他容器的IP、env等信息 --lxc-conf=[] 指定容器的配置文件，只有在指定--exec-driver=lxc时使用 -m, --memory="" 指定容器的内存上限 --name="" 指定容器名字，后续可以通过名字进行容器管理，links特性需要使用名字 --net="bridge" 容器网络设置，待详述 -P, --publish-all=false 指定容器暴露的端口，待详述 内部端口随机映射到主机的高端口 -p, --publish=[] 指定容器暴露的端口，待详述 内部端口绑定到指定的主机端口 --privileged=false 指定容器是否为特权容器，特权容器拥有所有的capabilities --restart="" 指定容器停止后的重启策略，待详述 --rm=false 指定容器停止后自动删除容器(不支持以docker run -d启动的容器) --sig-proxy=true 设置由代理接受并处理信号，但是SIGCHLD、SIGSTOP和SIGKILL不能被代理 -t, --tty=false 分配tty设备，该可以支持终端登录 -u, --user="" 指定容器的用户 -v, --volume=[] 给容器挂载存储卷，挂载到容器的某个目录 --volumes-from=[] 给容器挂载其他容器上的卷，挂载到容器的某个目录 -w, --workdir="" 指定容器的工作目录Docker容器备份docker commit nginx mynginx # 将容器保存为镜像 docker save -o [tar包真实路径] [镜像名 ]（ID也可以） # 打包镜像为tar docker load -i [tar包真实路径] # 恢复 docker export e950a988d058 > /opt/gitlab-zh.tar # 根据容器导出镜像容器 docker import - 镜像名 < /opt/gitlab-zh.tar # 导入$ doc…

云存储运维
type: item
date: 2021-11-12T12:32:00+01:00
description: 构建内置存储系统磁盘基本操作命令fdiskfdisk 设备 # 须是设备号，不是分区 fdisk /dev/sda Command (m for help): 在这里按 m ，就会输出帮助； Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition 注：这是删除一个分区的动作； l list known partition types 注：l 是列出分区类型，以供我们设置相应分区的类型； m print this menu 注：m 是列出帮助信息； n add a new partition 注：添加一个分区； o create a new empty DOS partition table p print the partition table 注：p 列出分区表； q quit without saving changes 注：不保存退出； s create a new empty Sun disklabel t change a partition's system id # 注：t 改变分区类型； u change display/entry units v verify the partition table w write table to disk and exit 注：把分区表写入硬盘并退出； x extra functionality (experts only) 注：扩展应用，专家功能；添加一个5G硬盘，并查看分区情况mkfs-h查看帮助信息-t <文件系统类型>指定要创建的文件系统类型-v （小写）查看使用方法信息-V （大写）查看版本信息-f强制格式化，类似于rm -f-b size=1024指定block大小（1k、2k、4k），默认block大小为4k实例，格式化/dev/sdb硬盘，再次查看分区情况，刚刚分的区已经没了磁盘组建RAIDRAID-0: 读、写性能提升； 可用空间：N*min(S1,S2,...) 无容错能力 最少磁盘数：2, 2+ RAID-1： 读性能提升、写性能略有下降； 可用空间：1*min(S1,S2,...) 有冗余能力 最少磁盘数：2, 2+ RAID-5： 读、写性能提升 可用空间：(N-1)*min(S1,S2,...) 有容错能力：1块磁盘 最少磁盘数：3, 3+ RAID-10： 读、写性能提升 可用空间：N*min(S1,S2,...)/2 有容错能力：每组镜像最多只能坏一块； 最少磁盘数：4, 4+ 组建RAID0提示：R0一时爽，数据火葬场。最好是使用不同硬盘，因为使用相同硬盘不同分区组建R0最后是使用的同一个硬盘的IO，速度并没有本质上的提升。 RAID0 是一种简单的、无数据校验的数据条带化技术。实际上不是一种真正的 RAID ，因为它并不提供任何形式的冗余策略。 RAID0 将所在磁盘条带化后组成大容量的存储空间（如图 2 所示），将数据分散存储在所有磁盘中，以独立访问方式实现多块磁盘的并读访问。由于可以并发执行 I/O 操作，总线带宽得到充分利用。再加上不需要进行数据校验，RAID0 的性能在所有 RAID 等级中是最高的。理论上讲，一个由 n 块磁盘组成的 RAID0 ，它的读写性能是单个磁盘性能的 n 倍，但由于总线带宽等多种因素的限制，实际的性能提升低于理论值。默认没有安装mdadmRAID管理工具，使用yum install mdadm安装即可-C: 创建模式​ -n{2}: 使用#个块设备来创建此RAID​ -l{0}：指明要创建的RAID的级别​ -a {yes|no}：自动创建目标RAID设备的设备文件​ -c CHUNK_SIZE: 指明块大小,单位k​ -x : 指明空闲盘的个数​ -D：显示raid的详细信息​ mdadm -D /dev/md0​ 管理模式：​ -f: 标记指定磁盘为损坏​ -a: 添加磁盘​ -r: 移除磁盘​ -f: 显示过程​ 观察md的状态：cat /proc/mdstat​ 增加新的成员​ mdadm –G /dev/md0 –n4 -a /dev/sdf1​ 生成配置文件：mdadm –D –s >> /etc/mdadm.conf​ 停止设备：mdadm –S /dev/md0​ 激活设备：mdadm –A –s /dev/md0 激活​ 强制启动：mdadm –R /dev/md0​ 删除raid信息：mdadm --zero-superblock /dev/sdb1先将磁盘分为了五个大小相同的区使用/dev/sdb[1-…

华为交换机&路由器命令
type: item
date: 2021-11-07T04:20:00+01:00
description: 交换机配置VLAN配置交换机LSW8命令undo terminal monitor # 关闭配置提示 system-view # 进入系统视图 vlan batch 2 3 # 创建两个vlan interface GigabitEthernet 0/0/1 # 进入端口1 port link-type access # 设置端口为access模式 port default vlan 2 # 配置默认vlan quit #进入系统视图 interface GigabitEthernet 0/0/2 # 进入接口2，与1同理 # 方式1，通过hybrid interface Ethernet 0/0/3 # 进入接口3 port link-type hybrid # 配置为hybrid port hybrid tagged vlan 2 to 3 # 通过的vlan为2和3 #方式2，通过trunk clear configuration interface GigabitEthernet 0/0/3 #清除端口3的配置 port link-type trunk # 配置端口类型为trunk port trunk allow-pass vlan all # 允许通过所有的vlan基于mac地址进行vlan划分vlan 2 # 进入vlan mac-vlan mac-address xx-xx-xx-xx # 绑定mac与vlan interface GigabitEthernet 0/0/1 # 进入接口1 mac-vlan enable # 打开mac绑定vlanGVRP配置一种通用属性注册协议，包含GVRP和GMRP。GVRP类似于思科的VTP协议。undo terminal monitor # 关闭配置提示 system-view # 进入系统视图 vlan batch 2 3 # 创建两个vlan gvrp # 全局使能GVRP interface GigabitEthernet 0/0/1 gvrp # 配置接口使能GVRP gvrp registration normal # GVRP注册模式为normal display gvrp statistics # 查看GVRP统计信息STP配置根网桥配置 system-view stp mode stp # 运行stp stp root primary # 配置根网桥备份网桥设置 system-view stp root secondary # 配置备份网桥 stp pathcost-standard legacy # 配置路径开销算法边缘 interface GigabitEthernet 0/0/1 stp edged-port enable # 设置为边缘端口 stp bpdu-filter enable # 启用BPDU报文过滤LSW：根网桥 LSW13：备份网桥 LSW11-12：边缘路由器配置DHCP服务器配置system-view dhcp enable # 开启dhcp ip pool pool1 # 创建地址池 network 10.10.10.0 mask 255.255.255.0 # 配置地址池 gateway-list 10.10.10.1 # 设置网关 lease day 0 hour 6 minute 0 3 # 设置租约 interface Ethernet 0/0/1 # 配置接口 dhcp select global # 在接口全局启用dhcp excluded-ip-address 10.10.10.3 # 排除这个地址 static-bind ip-address 10.10.10.2 mac-address xxxxxxxxxx # mac绑定ipDHCP 服务器中继dhcp relay server-ip ip # 配置DHCP中继所连接的DHCP服务器地址静态路由配置ip route-static 目的IP 子网掩码 下一跳 ip route-static 0.0.0.0 0.0.0.0 10.10.10.2 # 默认路由 ip route-static 0.0.0.0 32 10.10.10.2 ip route-static 0.0.0.0 32 s0动态路由路由协议有 RIP、OSPF、BGP、其他RIP在系统视图先rip # 进入rip undo summary # 取消路由聚合功能 network 10.10.10.0 # 宣告直连 version 2 # rip版本 quit bfd # 启用bfd rip 1 # 进入rip1 bfd all-interfaces enable # 全网段使用bfd bfd al…

软考基本知识
type: item
date: 2021-11-05T23:44:00+01:00
description: 压题密卷 在任何时候，一台主机有IP数据报文发送给另一台主机，它都要知道接收方的逻辑（IP）地址。但是IP地址必须封装成帧才能通过物理网络。这就意味着发送方必须有接收方的物理（MAC）地址，因此需要完成逻辑地址到物理地址的映射。而ARP协议可以接收来自IP协议的逻辑地址，将其映射为相应的物理地址，然后把物理地址递交给数据链路层。 任何时候，当主机需要找出这个网络中的另一个主机的物理地址时，它就可以发送一个ARP请求报文，这个报文包好了发送方的MAC地址和IP地址以及接收方的IP地址。因为发送方不知道接收方的物理地址，所以这个查询分组会在网络层中进行广播。（见图1） 局域网中的每一台主机都会接受并处理这个ARP请求报文，然后进行验证，查看接收方的IP地址是不是自己的地址，只有验证成功的主机才会返回一个ARP响应报文，这个响应报文包含接收方的IP地址和物理地址。这个报文利用收到的ARP请求报文中的请求方物理地址以单播的方式直接发送给ARP请求报文的请求方。（见图2） ARP报文的总长度为64字节。 ARP报文直接封装在数据链路帧中，例如，图4中，ARP分组被封装在以太网的帧中。注意，帧中的类型字段指出此帧所携带的数据是ARP报文。ARP请求ARP回复（1） 指令系统：RISC 设计者把主要精力放在那些经常使用的指令上，尽量使它们具有简单高效的特色。对不常用的功能，常通过组合指令来完成。因此，在RISC 机器上实现特殊功能时，效率可能较低。但可以利用流水技术和超标量技术加以改进和弥补。而CISC 计算机的指令系统比较丰富，有专用指令来完成特定的功能。因此，处理特殊任务效率较高。 （2） 存储器操作：RISC 对存储器操作有限制，使控制简单化；而CISC 机器的存储器操作指令多，操作直接。 （3） 程序：RISC 汇编语言程序一般需要较大的内存空间，实现特殊功能时程序复杂，不易设计；而CISC 汇编语言程序编程相对简单，科学计算及复杂操作的程序设计相对容易，效率较高。 （4） 中断：RISC 机器在一条指令执行的适当地方可以响应中断；而CISC 机器是在一条指令执行结束后响应中断。 （5） CPU：RISC CPU 包含有较少的单元电路，因而面积小、功耗低；而CISC CPU 包含有丰富的电路单元，因而功能强、面积大、功耗大。 （6） 设计周期：RISC 微处理器结构简单，布局紧凑，设计周期短，且易于采用最新技术；CISC 微处理器结构复杂，设计周期长。 （7） 用户使用：RISC 微处理器结构简单，指令规整，性能容易把握，易学易用；CISC微处理器结构复杂，功能强大，实现特殊功能容易。 （8） 应用范围：由于RISC 指令系统的确定与特定的应用领域有关，故RISC 机器更适合于专用机；而CISC 机器则更适合于通用机。 # 存在争议IIS（Internet Information Server，互联网信息服务）是一种Web（网页）服务组件，其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器，分别用于网页浏览、文件传输、新闻服务和邮件发送等方面，它使得在网络（包括互联网和局域网）上发布信息成了一件很容易的事。本文将向你讲述Windows 2000高级服务器版中自带的IIS 5.0的配置和管理方法。2019 上2019 下2018上存储技术基础无线基础知识网络规划与设计知识产权计算机硬件软件部分交换机基础VPN配置

Kali安装配置过程中的一些nt操作和坑
type: item
date: 2021-08-31T15:40:00+02:00
description: Kali安装配置过程中的一些nt操作和坑安装过程中最后就选择安装的包，这个时候没有选择默认项自己选的。然后进去换源发现没有任何工具，我觉得kali的工具肯定是有源的。然后全网寻找发现了[em]apt install kali-linux-all[/em]但是当我输入的时候发现没有任何变化，这个时候我输入[hi]apt install kali-linux-[/hi]观察提示发现了[em]kali-linux-default[/em]输入无果又发现了[em]kali-linux-everything[/em]果断输入发现出现了kali的应用。没有驱动。WIFI在apt更新也是没有驱动，网上只有博通网卡的驱动。最后发现了英特尔官网有驱动。在官网驱动，寻找自己网卡的驱动包然后下载。 tar zxvf iwlwifi-9000-pu-b0-jf-b0-34.618819.0.tgz -C ./ #提取到当前目录 sudo cp iwlwifi-9000-pu-b0-jf-b0-34.618819.0/* /lib/firmware/ #复制到指定目录 sudo update-grub #更新grub完成所有的Win和Linux双系统的时间错乱问题那么为什么双系统切换之后系统的时间会错乱呢？ 先了解以下UTC以及GMT。 格林尼治标准时间（GMT，旧译“格林威治平均时间”或“格林威治标准时间”）是指位于伦敦郊区的皇家格林尼治天文台的标准时间，因为本初子午线被定义在通过那里的经线。 协调世界时(UTC) 英文：Coordinated Universal Time ，别称：世界统一时间，世界标准时间国际协调时间， 协调世界时，又称世界统一时间，世界标准时间，国际协调时间，简称UTC。 GMT（Greenwish Mean Time 格林威治平时），这是UTC的民间名称。GMT=UTC。 因为两个系统计算时间的方式是不一样的，Windows直接使用系统硬件的时间作为本地时间，即操作系统中显示的时间是使用的BIOS中的时间。 而Linux/Unix/Mac则是把硬件时间（BIOS中的时间）当作UTC，其操作系统中显示的时间是对硬件时间计算后得到的，比如说北京时间是GMT+8，则系统中显示时间是硬件时间+8。而Windows显示的是硬件时间，所以两个时间会发生错乱。解决办法：​ Win10 新建一个文本文档，例如在桌面上，然后将一下内容粘贴到新建的文本文档文件中，之后保存并重命名为*.bat，双击运行一次即可。@echo off color 0a Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1 echo.​ Linuxtimedatectl set-local-rtc 1 --adjust-system-clock安装deepin-wine，安装QQ的时候报错无法定位软件包：libappindicator3-1_libappindicator3-1软件包安装失败这个时候直接定位安装是错误的，如果直接安装这个包也是存在依赖问题整改时候需要安装两个包libindicator3-7和libappindicator3-1直接[em]dpkg -i 包名[/em]进行安装安装完com.qq.im.deepin后发现无法输入密码和账号。这个时候检测输入法是不是启用的非官方输入法，这个时候手动切换成官方的默认英文输入法就可以。安装NVIDIA显卡驱动，目前我发现无法使用nvidia-prime进行独显和核显的切换，安装完成后只能使用独显.。（目前网上所有的办法这个问题都是没有解决的，在看官方文档看看能不能解决这个问题）sudo apt install -y nvidia-driver nvidia-cuda-toolkit

多个域名指向同一个IP访问文件造成的跨域问题
type: item
date: 2021-08-21T02:26:00+02:00
description: IPv6域名去访问IPv4域名底下的js文件报错贴一个报错代码Access to XMLHttpRequest at 'http://wlsp.icu:81/usr/plugins/Pio/models/pio/model.moc' from origin 'http://bt.wlsp.icu' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. l2d.js:1 GET http://wlsp.icu:81/usr/plugins/Pio/models/pio/model.moc net::ERR_FAILED解决问题分析是由于浏览器发现请求不同域名拒绝服务造成的需要构造请求头来证明资源可以使用（服务器为nginx）server { listen 8999; listen 80; listen [::]:80; listen 9999; listen [::]:9999; listen [::]:8999; server_name 192.168.0.109 wlsp.icu bt.wlsp.icu; index index.php index.html index.htm default.php default.htm default.html; root /www/wwwroot/typecho; # 在nginx服务器中添加下列代码 add_header Access-Control-Allow-Origin *; # 允许访问的域名 add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS'; # 应该是允许访问的方法， add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';} # 解释 Access-Control-Allow-Origin 服务器默认是不被允许跨域的。给Nginx服务器配置`Access-Control-Allow-Origin *`后，表示服务器可以接受所有的请求源（Origin）,即接受所有跨域的请求。 Access-Control-Allow-Headers 是为了防止出现以下错误： Request header field Content-Type is not allowed by Access-Control-Allow-Headers in preflight response. 这个错误表示当前请求Content-Type的值不被支持。其实是我们发起了"application/json"的类型请求导致的。这里涉及到一个概念：预检请求（preflight request）,请看下面"预检请求"的介绍。 Access-Control-Allow-Methods 是为了防止出现以下错误： Content-Type is not allowed by Access-Control-Allow-Headers in preflight response. 给OPTIONS 添加 204的返回，是为了处理在发送POST请求时Nginx依然拒绝访问的错误 发送"预检请求"时，需要用到方法 OPTIONS ,所以服务器需要允许该方法。贴一下大佬博客