乱码三千 – 分享实用IT技术

乱码三千 – 码出一个新世界


  • 首页

  • 归档

  • 搜索

Vim文本编辑器快速上手操作指南

发表于 2021-09-18

前言

做开发的小伙伴对vim编辑器肯定不陌生, 无论你是使用Linux终端, 还是使用Git操作仓库的时候都经常会碰的上

image-20210918161103435

刚开始接触的时候肯定是感觉非常费劲, 毕竟我们已经习惯了用鼠标定位操作的编辑器

而VIM编辑器, 可以说是纯靠键盘定位和编辑, 你想快速编辑某一处的内容, 鼠标根本帮不了你, 只能依靠键盘

如此反人类的操作, 对于开发者的你来说, 却不得不学

既然如此, 一些常用的操作指令 我们需要掌握

操作指令

  1. 用vim编辑器打开文本文件

    1
    vim 文件名

    打开文件后进入默认模式, 该模式下文本可以查看但不能编辑

    1
    shift+冒号
  2. 进入文本编辑模式

    1
    敲键盘上的字母 i 或者 a
  3. 进入命令输入模式

    1
    敲键盘上的 :
  4. 进入全局可视化模式

    1
    敲键盘上的字母 v
  5. 恢复到默认模式

    1
    敲键盘上的 ESC
  6. 保存文本内容

    命令模式下输入以下字母并且回车:

    1
    2
    3
    w 保存内容
    w <文件路径> 另存为
    saveas 文件路径 另存为
  1. 退出编辑器

    命令模式下输入以下字母并且回车:

    1
    2
    3
    4
    5
    q  退出编辑器
    q! 强制退出编辑器
    wq 保存文本内容 并退出编辑器
    wq! 保存文本内容 并强制退出编辑器
    x 保存文本内容 并退出编辑器
在默认模式下可以进行的操作

默认模式下可以使用键盘上的上下左右键移动光标查看文本内容, 除此之外, 还可以:

  1. 删除内容

    命令 说明
    x 删除游标所在的字符
    X 删除游标所在前一个字符
    Delete 同x
    dd 删除整行
    dj 删除当前行和下一行
    dk 删除当前行和上一行
    dh 删除光标左边的一个字符
    dl 删除光标右边的一个字符
    dw 删除一个单词(不适用中文)
    d$或D 删除至行尾
    d^ 删除至行首
    dG 删除到文档结尾处
    d1G 删至文档首部
    ndd 一次性向下删除n行
  2. 光标移动

    除了使用上下左右键之外还可用字母:

    方向键或者h,j,k,l键可以移动游标。

    按键 说明
    h 左
    l 右(小写L)
    j 下
    k 上
    w 移动到下一个单词
    b 移动到上一个单词
    gg 移动到文本头部
    G 移动到文本末尾
  3. 不同位置插入内容

    命令 说明
    i 在当前光标处进行编辑
    I 在行首插入
    A 在行末插入
    a 在光标后插入编辑
    o 在当前行后插入一个新行
    O 在当前行前插入一个新行
    cw 替换从光标所在位置后到一个单词结尾的字符
  4. 复制当前行

    1
    y
  5. 粘贴到下一行

    1
    p
  6. 撤销操作

    1
    u
  7. 回滚操作

    1
    ctrl+r
  8. 退出编辑器

    1
    shirt+zz
在可视化模式下可以进行的操作

可视化模式下可以快速对内容进行选中, 选中的内容会高亮显示

  1. 选中全部内容

    1
    2
    3
    1. 普通模式下敲gg(把关标定位到最上面)
    2. 普通模式下敲v(进入VISUAL模式)
    3. 然后敲 shift+g(选中整篇文本)
  2. 复制文本全部内容

    选中全部内容后输入以下字符:

    1
    2
    y 复制到vim编辑器中
    +y 复制到系统剪贴板中
  3. 对内容进行格式化

    选中全部内容后输入以下字符:

    1
    =

本文为作者原创 转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

使用docker部署Django项目

发表于 2021-09-18

部署Django项目

  1. 搜索python镜像

    1
    docker search python
  2. 拉取python镜像

    1
    docker pull python
  3. 创建并运行容器

    1
    2
    3
    4
    5
    6
    docker run -id \
    --name=c_django \
    -p 8000:8000 \
    -v /root/app:/root/app
    -h c_django \
    python:latest
  4. 将源程序上传至服务器

    可以使用FTP工具或者scp指令上传 其他也可

  5. 进入程序目录 安装依赖包

    1
    pip install -r requirements.txt
  6. 启动程序

    1
    python manage.py runserver 0.0.0.0:8000
  7. 网站访问

    1
    http://服务器ip:8000

本文为作者原创 转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

记录一次504 Gateway Time-out的解决

发表于 2021-09-18

起因

今早起来, 突然发现网站挂了, 直接报504 Gateway Time-out

image-20210918111428739

经过

我立马联想是否是docker挂了或者数据库容器出了问题

进入终端 使用docker ps 所有容器都在正常运行 没问题, 然后docker logs --tail=10 mysql数据库也没报错

我怀疑是不是docker内部哪里卡住了, 于是systemctl restart docker立马重启docker, 然后重新访问网站 还是不行

有点懵了, 到底哪里出了问题呢? 网上说是Nginx配置问题, 可是我nginx配置一直都没动过, 而且查看nginx容器日志也是正常, 难道是docker容器间通信不正常?

紧接着我又进入nginx容器, 使用nc -zv wordpress 80指令进行容器间通信测试, 也是正常打通的

这问题到底是出在哪了?

难道真的只是超时? 我给的时间太短了不成? 于是乎 我干脆将nginx反向代理超时时间调大, 死马当活马医, 不试试怎么知道呢

我将以下三行配置加入到代理块中:

1
2
3
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;

具体配置如下:

1
2
3
4
5
6
7
8
9
10
11
location /foo {
proxy_pass http://xxx.xxx.xxx.xxx:8080/foo;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
break;
}

然后重启nginx, 这时访问网站 次数504 Gateway Time-out消失了, 换成了Error establishing a database connection

image-20210918111216604

我靠, 原来还是数据库的问题

结果

我开始回忆, 前段时间刚进行docker跨服务器迁移, 昨天旧服务器刚好到期停机, 今天就突然访问不上了, 难道我的程序此时访问的还是原来旧服务器的数据库

对了 我的源码目录是直接从旧服务器拷贝过来的, 虽然docker容器是新建的, 但是因为存在旧目录 所以docker run配置的数据库参数全部无法重写, 也就是说程序配置文件中的数据库连接参数没有被重写

恍然大悟, 立马进入源程序目录找到配置文件打开查看, 果真如此, 然后将其修改为新的

此时重新访问, 网站正常显示

本文为作者原创 转载时请注明出处 谢谢

B站入口

打赏通道

微信公众号二维码如下:

img

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

推荐一个谷歌浏览器下的护眼小插件

发表于 2021-09-16

前言

作为IT工作者, 长时间对着电脑屏幕, 眼睛实在是疲惫不堪, 即便我将电脑屏幕亮度调至非常低 也无济于事

唯独 夜间模式能稍加缓解, 但是浏览器依旧是白花花一片 太过扎眼, 于是乎找了个暗黑小插件, 就此拯救了我的双眼

话不多说 如下:

DARK READER

名为DARK READER的插件, 配置如下:

效果如下:

image-20210917123155838

插件下载

谷歌官方商店下载

考虑到大部分国内用户无法访问谷歌网站, 这里给大家推荐两个国内下载站点:

  1. 极简插件

    image-20210917141518519

    image-20210917141441356

  2. CRX搜搜

    不仅支持名称搜索, 还支持扩展地址搜索

    比如插件官方扩展地址:https://chrome.google.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo

    img

    image-20240418185205986

    根据名称关键字搜索下载:

    img

    image-20240418185348662

本文为作者原创 转载时请注明出处 谢谢

B站入口

打赏通道

微信公众号二维码如下:

img

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

docker容器相互通信的实现

发表于 2021-09-16

前言

docker容器处在宿主内部的局域网络之中, 一般来说, 我们直接使用局域网ip即可访问, 但考虑到容器重启后ip可能会发生变化, 所以这种直接使用容器的ip的方案并不稳妥

那如果使用公网ip, 映射访问的话, 似乎稳定一些, 但是也存在问题, 比如docker跨服迁移, 那么ip还得手动修改, 同时公网访问速度上肯定不如内网

所以还得另寻他法

事实上 Docker官方已经给我们提供了解决办法, 那就是使用Bridge桥接网络, 这样 我们可以直接使用容器名充当局域网ip进行容器间相互访问

img

操作步骤

  1. 创建bridge网络

    1
    docker network create -d bridge 自定义网络名称
  2. 创建容器时指定bridge网络

    1
    2
    3
    docker run -id --name=first --network 网络名 ubuntu:latest

    docker run -id --name=second --network 网络名 ubuntu:latest

    这样两个容器就处在了同一个桥接网络下, 容器间自动link, 彼此可以相互访问

  3. 访问测试

    1
    2
    3
    4
    # 进入第一个容器
    docker exec -it first bash
    # 使用容器名ping
    ping second

其他操作

  1. 如果要查看当前已经存在的桥接网络列表

    1
    docker network ls

优势

除了方便容器间通信外, 结合Nginx还可以减少服务器端口开放数量, 消除不必要的安全隐患

比如不使用桥接网络时, Nginx反向代理配置是这样的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
http{
upstream wordpress_sex{
server 服务器公网IP:7778;
}
server{
listen 80;
server_name sex.newban.cn;
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://wordpress_sex;
break;
}
}

}

使用桥接网络后:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
http{
upstream wordpress_sex{
server 容器名:80;
}
server{
listen 80;
server_name sex.newban.cn;
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://wordpress_sex;
break;
}
}

}

无论是移植性和安全性都得到了大大的提升

但是有一点需要注意, nginx配置文件在nginx启动成功之前会检测server节点下的host地址是否可通, 如果存在无法接通的host, 则nginx无法启动,

也就是说我们使用server 容器名:80这种配置 当我们的docker容器挂了或者停止运行时, 如果此时重启nginx则会启动失败, 这一点我们需要提前知晓, 避免到时重启时出了问题摸不着头脑

本文为作者原创 转载时请注明出处 谢谢

B站入口

打赏通道

微信公众号二维码如下:

img

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

Linux中系统管理我们可能会使用到的指令

发表于 2021-09-14

1. systemctl

systemctl是 Systemd的主命令,用于管理系统。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 重启系统
$ sudo systemctl reboot

# 关闭系统,切断电源
$ sudo systemctl poweroff

# CPU停止工作
$ sudo systemctl halt

# 暂停系统
$ sudo systemctl suspend

# 让系统进入冬眠状态
$ sudo systemctl hibernate

# 让系统进入交互式休眠状态
$ sudo systemctl hybrid-sleep

# 启动进入救援状态(单用户状态)
$ sudo systemctl rescue

2. systemd-analyze

systemd-analyze命令用于查看启动耗时。

1
2
3
4
5
6
7
8
9
10
11
# 查看启动耗时
$ systemd-analyze

# 查看每个服务的启动耗时
$ systemd-analyze blame

# 显示瀑布状的启动过程流
$ systemd-analyze critical-chain

# 显示指定服务的启动流
$ systemd-analyze critical-chain atd.service

image-20210914154541109

3. hostnamectl

hostnamectl命令用于查看当前主机的信息。

1
2
3
4
5
# 显示当前主机的信息
$ hostnamectl

# 设置主机名。
$ sudo hostnamectl set-hostname rhel7

4. localectl

localectl命令用于查看本地化设置。

1
2
3
4
5
6
# 查看本地化设置
$ localectl

# 设置本地化参数。
$ sudo localectl set-locale LANG=en_GB.utf8
$ sudo localectl set-keymap en_GB

image-20210914154511109

5. timedatectl

timedatectl命令用于查看当前时区设置。

1
2
3
4
5
6
7
8
9
10
# 查看当前时区设置
$ timedatectl

# 显示所有可用的时区
$ timedatectl list-timezones

# 设置当前时区
$ sudo timedatectl set-timezone America/New_York
$ sudo timedatectl set-time YYYY-MM-DD
$ sudo timedatectl set-time HH:MM:SS

image-20210914154411820

6. loginctl

loginctl命令用于查看当前登录的用户。

1
2
3
4
5
6
7
8
# 列出当前session
$ loginctl list-sessions

# 列出当前登录用户
$ loginctl list-users

# 列出显示指定用户的信息
$ loginctl show-user

本文为作者原创 转载时请注明出处 谢谢

B站入口

打赏通道

微信公众号二维码如下:

img

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

Linux中关于前台任务和后台任务的相关操作

发表于 2021-09-14

概念

以下概念以终端操作为前提

  • 前台任务: 在前台执行的任务, 任务一旦执行则占用终端窗口, 同一窗口内 无法进行其他操作
  • 后台任务: 在后台执行的任务, 任务执行不占用终端窗口, 同一窗口内 可一边执行任务 一边进行其他操作

无论是前台任务还是后台任务, 终端一旦被关闭, 任务会立即终止

前台任务

  1. 终止前台任务

    1
    Ctrl+C
  2. 暂停前台任务

    1
    Ctrl+Z
  3. 查看当前暂停的任务和所有后台任务信息

    1
    jobs -l
  4. 将前台任务切换成后台任务

    1
    2
    3
    1.输入ctrl + z 暂停任务
    2.输入jobs查看任务号
    3.使用 bg %任务号 将该任务号放入后台
  5. 终端关闭 保持前台任务继续运行

    1
    nohup xxxx

    nohup: 表示忽略hup信号, 终端关闭任务进程也不销毁

后台任务

  1. 以后台方式启动任务, 命令末尾加&即可

    1
    watch  -n 10 sh  test.sh  &  #每10s在后台执行一次test.sh脚本
  2. 终止后台任务

    方式一:

    1
    2
    1.输入jobs查看任务号
    2.kill %任务编号

    方式二:

    1
    2
    1.使用ps指令查看任务进程pid
    2.kill pid
  3. 将后台任务切换成前台任务

    1
    2
    1.输入jobs查看任务号
    2.fg %任务编号
  4. 终端关闭 保持后台任务继续运行

    如果后台任务还未启动, 指令前面加nohup:

    1
    nohup watch  -n 10 sh  test.sh  &

    如果后台任务已经启动:

    1
    2
    1.输入jobs查看任务号
    2.使用 disown -h %任务号

    disown指令用于对jobs任务的移除移出操作, 常见参数有:

    1
    2
    3
    disown -a //删除全部作业
    disown -r //删除正在运行的作业
    disown -h %任务号 //移出(非删除)指定作业, 同时忽略hup信号

实现后台任务的另一种方式

除了使用nuhup+&的方式使得任务在后台运行且不受终端关闭影响外, 还有一种方式那就是使用systemd

创建systemd服务步骤如下:

  1. 创建服务配置文件

    1
    vim xxx.service

    将以下内容填入配置文件中:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    [Unit]
    Description=Foo

    [Service]
    ExecStart=/usr/sbin/foo-daemon
    Restart=always

    [Install]
    WantedBy=multi-user.target
    • Description: 表示服务描述
    • ExecStart: 表示需要执行的程序指令, 需要填入程序的完整路径
    • Restart: 表示是否自动重启, 可选参数有no、always、on-success、on-failure、on-abnormal、on-abort、on-watchdog等
    • WantedBy: 表示用户权限

    更多配置, 可参考官方文档 或者博客介绍

  2. 将服务配置文件拷贝至/lib/systemd/system/目录下

    1
    sudo cp xxx.service /lib/systemd/system/
  3. 启动服务

    1
    sudo systemctl start xxx
关于服务的其他操作指令
  1. 停止服务

    1
    sudo systemctl stop xxx
  2. 查看服务运行状态

    1
    sudo systemctl status xxx
  3. 设置服务开机自启动

    1
    sudo systemctl enable xxx
  4. 禁止服务开启自启动

    1
    sudo systemctl disable xxx
  5. 服务重启

    1
    sudo systemctl restart xxx
  6. 查看systemd的版本

    1
    sudo systemctl --version
  7. 查看配置文件

    1
    systemctl cat xxx.service

systemd和nohup+&之间的对比

systemd可以满足以下需求:

  • 方便分析问题的服务运行日志记录
  • 服务管理的日志
  • 异常退出时可以根据需要重新启动

而nohup 只能记录服务运行时的输出和出错日志, 根据我们实际的需求进行选择即可

本文为作者原创 转载时请注明出处 谢谢

B站入口

打赏通道

微信公众号二维码如下:

img

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

免费稳定的PHP虚拟主机

发表于 2021-09-10

前言

想验证网站项目是否可盈利, 如果购买服务器的话太贵, 怎么办, 那就用免费的吧

国内基本上已经没有免费的虚拟主机可用了, 即便有也是套路你

只好把目标转向国外服务器供应商, 先是找到一家日本的厂商XREA, 主页长这样:

决定试试申请一个, xrea需要注册两个账户, 一个是xrea账户, 另一个是value-admin账户

image-20210910150342841

首先注册value-admin账户:

image-20210910150514615

这一步 国内的邮箱无法注册, 谷歌邮箱可以 但是居然一直收不到验证码, 最后只好作罢

Awardspace

介绍

随后有找了一家欧美的厂商Awardspace, 经过尝试, 发现可行, 主页长这样:

image-20210910163000949

我直接使用第三方谷歌登录, 国内的小伙伴有可能需要搭个大爬梯才能访问哦

登录成功后进入到控制台界面:

image-20210910163254548

该有的功能全都有, 这个免费虚拟主机给我们提供了:

  • 1G的储存空间
  • 每月5G的流量
  • 1个Mysql数据库
  • 可绑定一个顶级域名和三个子域名
  • 一个邮箱账户

image-20210910163214377

安装或者上传应用

各种博客程序一键安装:

image-20210910163756104

或者上传已有的程序文件, 可以网站直接上传或者使用FTP上传, 如果使用FTP会提示你设置FTP密码:

image-20210910164648342

我这里为了演示 直接一键安装的JOOMLA博客程序

域名绑定

如果你已经有自己的域名了, 可以直接绑定:

image-20210910163953692

image-20210910164215330

然后在你的域名服务上, 进行域名解析, 可以直接使用A记录解析到185.176.43.108这个IP, 或者更改DNS记录为ns5.awardspace.com,ns6.awardspace.com

我这里直接用的是IP解析

访问主页

最后浏览器输入绑定的域名进行测试, 我这边正常访问, 而且速度还不错:

image-20210910164940227

freehostia

这个网站也提供免费的虚拟主机, 时长一年, 可以选择预制的PHP程序:

image-20210910165958993

点击进入官网

freehostia给我们提供了:

  • 250MB存储空间
  • 每月6G流量
  • 1个10MBMySQL
  • 3个邮箱账户

蓝队云

提供免费的PHP虚拟主机

image-20220707153444030

点击进入官网

蓝队云给我们提供了:

  • 1Gb存储空间
  • 不限流量
  • 1个300MBMySQL

灰狼云

免费PHP虚拟空间 一月一续期

image-20220707154001659

该空间可以用于CDN反代, 具体可参见: 《无成本反向代理Jsdelivr》

本文为作者原创 转载时请注明出处 谢谢

B站入口

打赏通道

微信公众号二维码如下:

img

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

VPS虚拟化架构OpenVZ、KVM、Xen、Hyper-V的区别

发表于 2021-09-10

1、OpenVZ

OpenVZ(简称OVZ)采用SWsoft的Virutozzo虚拟化服务器软件产品的内核,是基于Linux平台的操作系统级服务器虚拟化架构。这个架构直接调用宿主机(俗称:母机)中的内核,模拟生成出子服务器(俗称:VPS,小机),所以,它经过虚拟化后相对于母服务器,性能损失大概只有的1-3%。 当然OpenVZ可以超售,意思味着一台服务器总共16G内存,他可以开出配置为1G内存×17台或以上的子服务器。因为他的虚拟架构关系属于:不是你分配给客户多少资源,就扣除宿主机多少资源;而是客户用多少资源,就扣除宿主机多少资源,所以OpenVZ架构的VPS较为便宜。但由于存在超售因素,如果服务商毫无休止的超售会导致服务器的性能急剧下降。 OpenVZ另一个特点是,它是直接调用宿主机的内核,所以会导致部分软件无法使用,以及部分内核文件是无法修改。

2、KVM

KVM是Linux下的全功能虚拟化架构,基于KVM架构的VPS,默认是没有系统的,可自己上传ISO或调用服务商自带的ISO手动安装系统或使用服务商提供的官方的KVM模板。这个非常适合热爱DIY自己VPS的客户。 由于KVM架构全功能虚拟化架构,甚至拥有独立的BIOS控制,所以对宿主机性能影响较大,所以基于KVM的VPS较贵,但KVM VPS相对其它架构的VPS较为自由。

3.Xen

Xen 由剑桥大学开发,它是基于硬件的完全分割,物理上有多少的资源就只能分配多少资源,因此很难超售。可分为Xen-PV(半虚拟化),和Xen-HVM(全虚拟化)。 Xen是不能超售的,当宿主机只有16G内存以及100G硬盘时,当开Xen架构(任意一个虚拟化)的1G内存、25G硬盘的子机时,会直接占用宿主机1G内存,以及25G硬盘,所以Xen的性能,相比OpenVZ在超售的情况下要好。 Xen-PV:半虚拟化,所以它仅仅适用于linux系列VPS,但它的性能损失比较少,大概相对于宿主机的4%-8%左右。 Xen-HVM:全虚拟化,可以安装Windows或自由挂载ISO文件安装任意系统,由于是全虚拟化,所以性能损失较大,大概相对于宿主机性能损失8%-20%左右。

4.Hyper-V

Hyper-V是微软的一款虚拟化产品,大部分国内的VPS服务商使用这个架构(包括标准互联?),主要是因为其转为Windows定制,管理起来较为方便。目前的Hyper-V也支持Linux,只不过性能损失比较严重。 Hyper-V完美支持Windows系统,包括32位和64位。如果大家选购Hyper-V架构的VPS,强烈建议使用Windows。 Hyper-V目前不能超售内存,但可超售硬盘,硬盘是根据客户使用情况扣除。一般来说,宿主机的硬盘不会100%用完,这点不用担心。

总结:

总的来说,Xen和Hyper-V见的比较少,对于OpenVZ、KVM推荐选择KVM虚拟化。

本文为转载自:https://www.cnblogs.com/ydwzhang/p/10080380.html

B站入口

打赏通道

微信公众号二维码如下:

img

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

几款主流的虚拟机软件对比

发表于 2021-09-10

前言

说到虚拟机或者虚拟技术 容器技术, 大家可能会联想到一大堆软件, 诸如VMware、VirtualBox、Parallels 、Hyper-V、OpenVZ、Xen、KVM、Mutilpass、Docker等等

今天我们选取几款比较大众化的虚拟机软件对比分析一下:

虚拟软件 优势 劣势
VMware 跨平台 功能强大 易用性好 收费 仅限 Intel 处理器
Parallels Desktop 功能丰富 和Mac融合性强, 无需重启即时切换 收费 只支持Mac平台
VirtualBox 跨平台 开源免费 资源占用相对较大
Hyper-V 硬虚拟化技术 性能强 稳定性好 部署简单 只支持Windows平台, 不支持USB外设

virtualbox下载

点击下载 (访问密码: 312306)

附加

《VPS虚拟化架构OpenVZ、KVM、Xen、Hyper-V的区别》

本文为作者原创 转载时请注明出处 谢谢

B站入口

打赏通道

微信公众号二维码如下:

img

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

1…222324…51

乱码三千

android程序员一枚,擅长java,kotlin,python,金融投资,欢迎交流~

505 日志
145 标签
RSS
© 2026 乱码三千
本站总访问量次
由 Hexo 强力驱动
|
主题 — NexT.Muse v5.1.4
0%