解决Proxmox虚拟机安装Windows 10/Server 2016时找不到硬盘问题

Proxmox是一款基于Debian系统开源强大的KVM虚拟化平台,之前在实施虚拟化环境时也分别考虑了VMware ESXi(Free vSphere Hypervisor)、Windows Hyper-V Server 2016,至于为何最终选择了Proxmox的虚拟化环境主要考虑是ESXi免费版本限制太多而且官网下载一直提示维护;Hyper-V Server 2016这款也是少有的微软良心作品,评估期限无限(等于免费),但是我在前期Windows系统自带的Hyper-V组件测试某些Linux桌面环境发行版存在显卡兼容问题,还有一个就是火绒安全软件安装在Hyper-V虚拟环境会蓝屏,鉴于此最终还是选择了Proxmox,相信基于Linux系的低资源占用和稳定性。

Proxmox配置虚拟机的具体步骤我就不多说了,网上有很多类似的教程,选择半虚拟化设置将会获得较好的性能效果,今天主要要说的是在Proxmox虚拟机安装Windows系统遇到的找不到磁盘的问题,本文所实验的系统分别是Windows 10 version 1903和Windows Server 2016版本。

首先我们需要准备对应的磁盘驱动程序安装镜像virtio-win-0.1.171.iso,下载完成后通过Proxmox的Web管理界面上传到local - Content中,如果通过SSH直接上传请选择/var/lib/vz/template/iso路径,完成此项操作后请选择刚刚建立的虚拟机,选择Hardware - Add - CD/DVD Drive挂载此镜像文件,如下图所示:

继续阅读“解决Proxmox虚拟机安装Windows 10/Server 2016时找不到硬盘问题”

BIND9 DNS Challenge自动配置Letsencrypt通配符(Wildcard)HTTPS证书

不得不说Letsencrypt的免费SSL数字证书确实大力促进了加密HTTP(HTTPS)的普及,使用HTTPS的好处自然有很多,比如防止登录凭据等敏感信息被第三方窃取、防止电信运营商的ISP劫持等,Google Chrome和Mozilla Firefox也在逐步将明文HTTP标识为不安全,这也在一定程度上加快了HTTPS的推广。

但是由于一些条件限制,国内的HTTPS推广普及一直不温不火,虽然大部分主流网站已经采用了HTTPS,但是大量的中小型网站、政府门户依然使用的是明文HTTP,给个人信息带来安全隐患,不使用HTTPS的理由总是有千百种,比如虚拟主机限制、CDN限制、老旧浏览器兼容、服务器资源消耗等,但是我们不能因为这些缘故而放弃HTTPS带来的优势,从长远来看HTTPS的全面普及是势不可挡的。

继续阅读“BIND9 DNS Challenge自动配置Letsencrypt通配符(Wildcard)HTTPS证书”

MySQL备份、迁移及开放远程访问3306端口备忘

今天把数据服务器和业务服务器进行了分离,其中涉及对MySQL开放远程访问的,作出记录如下以供备忘:

假设数据服务器IP地址为192.168.1.101,业务服务器IP地址为192.168.2.51

首先在数据服务器192.168.1.101上安装好MySQL实例,然后使用root访问MySQL并建立好所需要的数据库和用户。

$ mysql -uroot -p
Enter Password:
 
> CREATE DATABASE business_db;
> GRANT ALL PRIVILEGES ON `business_db`.* TO 'business'@'192.168.2.51' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
> FLUSH PRIVILEGES;

继续阅读“MySQL备份、迁移及开放远程访问3306端口备忘”

树莓派Raspberry Pi用AirPlay播放实现WiFi连无线音响外放

之前有一篇文章介绍了如何使用蓝牙实现手机连接无线音箱外放,在网上搜索相关资料的过程中,我发现了树莓派另外一个强大的功能,那就是可以实现苹果(Apple)的AirPlay播放技术,简单的介绍一下,AirPlay类似于蓝牙音响播放,但是其是建立在WiFi局域网基础上的,在接入有AirPlay播放技术的局域网上,苹果的设备就会显示支持AirPlay。综合AirPlay的优势,我开始在Raspberry Pi(树莓派)上实现相关功能。

同样的,关于树莓派一些好玩的功能国外资料较为丰富,经过查阅后《Raspberry Pi Airplay Tutorial》(原文超级详细)这一篇文章对我帮助较大,具体步骤如下。

继续阅读“树莓派Raspberry Pi用AirPlay播放实现WiFi连无线音响外放”

树莓派Raspberry Pi用蓝牙(Bluetooth)实现手机连无线音响外放

今天琢磨着如何在树莓派上挖掘出一些新玩意儿,正好上次为了试验iBeacon低功耗蓝牙基站买的一块USB蓝牙接收适配器一直闲在那儿,于是准备依托于蓝牙功能实现一些有意思的功能。

首先想到的是文件共享,蓝牙这货一开始基本功能也是文件共享吧,想到以前智能手机并不普及的年代,我曾经试验过通过拍照蓝牙传输聊天的功能,那时候想如果能通过蓝牙进行文本传输基本上就实现了一个小型聊天室了,好了,扯远了,我手边有部iPhone,据说未越狱的iPhone蓝牙传文件功能一直是短板,不知道为什么苹果要限制其蓝牙功能,折腾了许久文件传输一直未能实现,于是决定转战另外的功能。

我注意到iPhone手机可以任意的连接蓝牙耳机,也就是说可以轻松实现蓝牙的音频传送,同时在Raspberry Pi主板上有个音频输出接口,正好家里有闲置的笔记本USB Mini音箱,于是我决定将树莓派变成蓝牙多媒体播放中心。

继续阅读“树莓派Raspberry Pi用蓝牙(Bluetooth)实现手机连无线音响外放”

使用Ziproxy图像压缩优化功能配合Squid3实现缓存加速

Ziproxy是转发,非缓存,压缩HTTP代理服务器。其可以压缩图像转换到低质量JPEG文件或JPEG 2000和压缩( gzip或) HTML和其他文字样的数据,同时还可以提供 HTML/CSS/JS 的优化,主动的主机名称解析,透明代理等功能。

之前我将Raspberry Pi(树莓派)配置了Squid3缓存代理,然后注意到了Ziproxy这款软件,因为Ziproxy没有缓存功能,所以考虑将Ziproxy和Squid3配合起来实现压缩兼缓存的上网加速功能,首先要考虑将Ziproxy放在Squid3之前还是之后,当然这两种不同的放置方法可能有不同的效果,鉴于部署的便捷性考虑,我将Ziproxy放置在Squid之前,也就是Internet - Ziproxy - Squid3 - Client。假设你已经安装好Squid3并配置好防火墙,接下来我将简单介绍一下Ziproxy的安装部署过程。

继续阅读“使用Ziproxy图像压缩优化功能配合Squid3实现缓存加速”

Debian系统SquidGuard结合Squid3进行上网行为管理(网页过滤)

之前有一篇文章介绍如何在树莓派(Raspberry Pi)上架构基于Squid3的透明代理。在文章后面讲到了如何利用广告黑名单进行广告过滤,但是这个方法比较局限,特别是没有分类要过滤的网页类型。

我今天要讲解的是利用Squid的一个插件(姑且这么称呼吧,因为这个软件是随Squid启动而启动的)SquidGuard,该软件会在Squid3处理请求的时候检查SquidGuard所管理的网站分类数据库,并根据自定义的规则进行转向(Redirect)拦截。

今天我们实验的平台依旧是树莓派(Raspberry Pi)的Raspbian,首先用apt-get先安装:

sudo apt-get install squidguard

继续阅读“Debian系统SquidGuard结合Squid3进行上网行为管理(网页过滤)”

Python利用htpasswd配置mini_httpd的基本认证授权(Authorization Basic)

前面我讲解了如何将树莓派(Raspberry Pi)打造成无线路由,感觉每次通过命令ssh管理显麻烦,于是自己动手编写Web界面,主要是使用Python编写的CGI程序,这里用到了mini_httpd这款轻量的Web服务器,本来想装nginx的,但是想想还是精简一些吧,毕竟资源有限,况且Web管理界面仅我一个人访问。

CGI应用跑起来了,但问题来了,如何实现普通路由的那种打开页面就弹出输入用户名密码的对话框?

这里主要用到HTTP协议的一个知识,那就是HTTP基本认证

继续阅读“Python利用htpasswd配置mini_httpd的基本认证授权(Authorization Basic)”

Debian完全卸载清理并重新安装MySQL服务器

之前服务器上配置测试用的服务环境,我偷懒顺手用网上现成的脚本进行安装,结果MySQL启动不了,于是我只有老老实实的重新安装MySQL Server,原本以为apt-get --purge这类命令可以很好的帮我解决这个问题,于是我通过下面的命令重新安装:

sudo apt-get --purge remove mysql-server
sudo apt-get install mysql-server

然后再一次的启动MySQL,仍然失败报错,搜索网络依旧是提示重新安装MySQL服务程序,看样子是上面卸载命令不能很好的清理安装残余,最后找到这么一篇文章《MySQL Problems – a complete reinstall》。找到了完全清理卸载干净MySQL的办法,记录在这里供备忘。

继续阅读“Debian完全卸载清理并重新安装MySQL服务器”

解决项目依赖库缺少相关源文件导致无法编译的问题

项目在本机测试正常,准备先部署到测试服务器上供内部测试用,结果在部署设置环境时出现了错误。

主要是在easy_install所用到的Python库时编译出错导致的compilation terminated。经过调试找到了相关的解决方案,记录在这里算是个备忘。

在编译bcrypt时出现的错误:

fatal error: ffi.h: No such file or directory

通过下面的命令安装开发源文件解决:

sudo apt-get install libffi-dev

继续阅读“解决项目依赖库缺少相关源文件导致无法编译的问题”