Windows Server 2016 Core安装SQL Server Express并开放1433端口

前面一篇文章提到了Windows Server 2016 Core的配置,今天要介绍的是如何正确安装SQL Server Express并且开放1433端口远程访问。由于本文的配置环境是Server Core系列,那么很遗憾所有图形操作将会变得困难,所以网上大部分配置文章不再适用,这里还是主要以介绍命令行配置为主。

至于为什么选择SQL Server Express,首先足够轻量,占用资源小而且足够应付绝大多数场景,也免去正式版的花销,这几年部署的SQL Server Express 2005和2008版本一直稳定运行,所以对于一些信息系统或者Web网站,轻量级Express版本的SQL Server才是佳选,好下面进入正文。

首先需要下载SQL Server Express,本文下载的是SQL Server 2017 Express Edition,下载完成后通过远端或者复制在Server Core系统里执行,由于Server Core仍然支持图形显示,那么执行安装包后你将看到下面的安装界面,切记不要急着安装,我们先选择Download Media

继续阅读“Windows Server 2016 Core安装SQL Server Express并开放1433端口”

Windows Server 2016 Core服务器基本配置

在服务器界Windows操作系统一直被吐槽不够稳定、不够安全和占用资源,微软也是痛定思痛决定一改往日,遂推出了Server Core系列的服务器版本,顾名思义——Core表示核心,也就是说这个系列的服务器版本将仅保留必要的核心,去除一切不必要的组件。大家对于服务器版本的Linux可能会有印象,那种黑乎乎的命令行界面,没有图形系统,这次微软的Core系列也习得此精髓不再提供交互桌面系统,系统的启动和管理等都通过命令提示符操作,不过与Linux不同的是,Windows Server Core不是纯粹的字符式操作环境,而保留了基本的图形系统,毕竟从NT时代Windows图形子系统就成为内核的一部分了,贸然去除必然会带来不必要的麻烦,因为基本图形系统的存在,一些图形界面的程序实际上也是可以运行的,比如系统自带的记事本(notepad)、注册表编辑器(regedit)等等。

最近折腾了ProxmoxVM虚拟化环境,顺带也尝试了Windows Server 2016 Core版本,本文下面将简单介绍一下Server Core的配置,首先对于Windows Server 2016 Core的安装我就不多介绍了,这部分和大多数Windows安装类似,其中我们使用的镜像来自微软官方的评估版本

继续阅读“Windows Server 2016 Core服务器基本配置”

解决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时找不到硬盘问题”

MikroTik RouterOS利用DNS配合防火墙拦截广告

近期入手了Mikrotik的路由器,这个牌子的路由器比较小众,搭载了RouterOS系统,但是可配置性相当高,这几天摸索下来略有小成,一些配置技巧特分享在博客,以作备忘。

一些关于PPPoE拨号配置等基础操作网上教程较多,后期如有时间我会考虑一起记录下来,今天介绍的主要是如何利用DNS静态列表配合防火墙拦截特定广告或者跟踪器URL。

配置前的准备工作,比如winbox的下载和连接我这里不详述,建议将RouterOS更新到最新,当然升级也比较方便可以直接在线升级。

1、配置静态DNS (WinBox > IP > DNS > Static)

首先打开DNS Settings,根据个人喜好配置Servers为上游递归DNS服务器,为取得最佳CDN查询效果,建议使用运营商提供的DNS服务器,取ping值最小的为佳,当然如果运营商的DNS存在劫持的话也可以选择公共DNS服务器,填写完毕后点击Apply使配置生效,如下图所示:

继续阅读“MikroTik RouterOS利用DNS配合防火墙拦截广告”

代理SMTPS 465端口完成邮件sendmail配置备忘

之前一直使用AWS SES (Simple Email Service)作为邮件发送后端,按照官方说明配置,测试下来能收到就以为配置没有问题了。直到最近某短信邮件联动端只提示收到短信而没有邮件,这才发现SES存在丢件情况,我是配置的QQ邮箱作为接收端,通过QQ邮箱的自助查询,找到了收件丢失的原因:对于AWS来说邮件是正常投递成功(这一点后台统计也有说明),关键在于QQ邮箱,其拒收了来自AWS的邮件,理由是:

Action: failed
Final-Recipient: rfc822;
Diagnostic-Code: smtp; 550 Ip frequency limited [******** = Blocked IP 54.240.7.20]. http://service.mail.qq.com/cgi-bin/help?subtype=1&id=20022&no=1000725
Status: 5.3.0

字面上看是因为该发信IP频率过高因此被屏蔽,可能是因为AWS SES和他人共享了发信IP导致的,当然,通过链接查询到的原因证实了猜想。

继续阅读“代理SMTPS 465端口完成邮件sendmail配置备忘”

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证书”

Lubuntu去掉开机显卡启动画面(NVIDIA Splash Screen Logo)

近日将一台老的笔记本换上SSD,考虑到性能问题,选择安装Lubuntu,安装完成后顿时感觉笔记本还能再战5年,当然虚拟机神马的是不敢再玩了,用来写写PHP和上上网还是绰绰有余的,比如说这篇博文就是在这台电脑上打出来的。

当然每次配置Linux系列系统都要折腾一番,这也注定了在很长一段时间内,Linux只适合服务器领域,虽然随着Android的发力,Linux也逐步扩展到移动领域,而且在移动端是吊打微软的节奏。实际上从简单办公和编程来说Windows上一些比较优秀的软件不能移植确实很遗憾,不过好在有wine的加成,至少我现在已经成功安装了Office 2003(这个版本的顺手够用)、Fireworks 8和知网CAJViewer,对于我来说Linux有这三个原本运行在Windows下软件就足矣。其他一些软件比如PhpStorm就得益于Java可以方便的移植到Linux环境下了。

继续阅读“Lubuntu去掉开机显卡启动画面(NVIDIA Splash Screen Logo)”

VBScript 检测网络连接是否正常

某次维护测试需要配置脚本检测网络是否连通,正常手动检测网络是否连通有两个最为常见的办法:一是ping一个主机;二是打开某知名网站。所以脚本检测也顺着这两个思路进行。

关于ping的VBScript实现有如下代码可供参考:

Function Ping(strTarget)
  Dim objShell, objExec, strPingResults
  Set objShell = CreateObject("WScript.Shell")
  Set objExec = objShell.Exec("ping -n 2 -w 1000 " & strTarget)
  strPingResults = LCase(objExec.StdOut.ReadAll)
  If InStr(strPingResults, "reply from") Then 
    'WScript.Echo VbCrLf & strTarget & " responded to ping."
    Ping = True
  Else
    'WScript.Echo VbCrLf & strTarget & " did not respond to ping."
    Ping = False
  End If
  Set objExec = Nothing
  Set objShell = Nothing
End Function

继续阅读“VBScript 检测网络连接是否正常”

解决Windows 资源保护找到了损坏文件但无法修复问题

今天Windows 8.1系统的电脑突然卡住并且自动重启,通过事件查看器得到的资料有限,初步怀疑是系统文件受损导致,于是通过经典的sfc /scannow验证系统并修复受损文件,但是得到以下提示:

开始系统扫描。此过程将需要一些时间。

开始系统扫描的验证阶段。
验证 100% 已完成。

Windows 资源保护找到了损坏文件但无法修复
其中某些文件。CBS.Log windir\Logs\CBS\CBS.log 中有详细信息。
例如 C:\Windows\Logs\CBS\CBS.log。请注意,在脱机服务方案中,
当前不支持日志记录。

继续阅读“解决Windows 资源保护找到了损坏文件但无法修复问题”

100.64.0.1运营商级(Carrier-grade)NAT保留IP地址

在一次跟踪路由的网络操作时发现自己路由器下一跳路由节点的IP地址比较奇怪,是100.64.0.1。好奇促使我查询了这个IP地址的归属,结果是保留地址,到这里觉得比较奇怪了,按照常理以IPv4为例保留的IP地址一般为以下几种,常用于内网通讯或者特殊用途:

地址块起始结束备注
10.0.0.0/810.0.0.010.255.255.255局域网分配
172.16.0.0/12172.16.0.0172.31.255.255局域网分配
192.0.0.0/24192.168.0.0192.168.255.255局域网分配
169.254.0.0/16169.254.0.0169.254.255.255两台主机对等连接,当Windows获取不到IP地址的时候会自动分配此类地址
127.0.0.0/8127.0.0.0127.255.255.255回环(loopback)地址,表示本机
255.255.255.255/32255.255.255.255255.255.255.255广播地址

继续阅读“100.64.0.1运营商级(Carrier-grade)NAT保留IP地址”