阿里云ECS云服务器 Windows 2012 R2 64位 更新失败 - 错误代码 8024402C - 80244007 - 80072EE2

阿里云ECS云服务器实例,选择了Windows 2012 R2 64位中文版,因为CredSSP相关更新无法使用远程桌面连接登录管理。所以想通过ECS实例控制台登录到Windows,先打上最新的补丁。

过程:

  1. 首次在Windows控制面板进行更新,遇到错误代码 8024402C,检查知没有DNS服务器设置,这可能是因为重置系统盘,而不是通过更换系统盘重装Windows 2012 R2
    windows-update-1.png
  2. 检查时,DNS为手动设置,但留空
    windows-update-2.png
  3. 之后,通过更换系统盘重装Windows 2012 R2,第三次进行Windows更新,遇到错误代码 80072EE2
    windows-update-3.png
  4. 觉得Windows运行性能低,所以重启了系统,再次进行Windows更新,可以获得更新列表了
    windows-updates-4.png
  5. 安装Windows更新
    windows-updates-5.png
  6. 安装好Windows更新后,提示需重启
    windows-updates-6.png
  7. 在“管理终端”看到更新的进度条
    windows-updates-7.png
  8. 查看c:\windows\windowsupdate.log的日志文件内容,看到先是向 windowsupdate.aliyun-inc.com 检查更新,但 telnet 测试是不通的
    windows-updates-8.png
  9. 之后是向 update.cloud.aliyuncs.com 检查更新,是能telnet tcp 80端口通的。这个实例是专有网络VPC的,不知道为什么会先向经典网络的windowsupdate.aliyun-inc.com 检查更新
    windows-updates-9.png

参考:https://help.aliyun.com/knowledge_detail/41053.html

在Mac电脑里的 Windows 10 系统 xampp 启动 mysql 失败

环境:苹果电脑里安装了Windows 10的系统,在Windows 10系统里安装的xampp

问题:通过xampp面板启动mysql失败,面板无出错信息。

过程:

  1. 点击xampp面板里的mysql日志按钮,查看
  2. 关键字 'read' returned OS error 287
  3. Google搜索后,知在my.ini配置文件的相应位置里添加一行 innodb_flush_method=normal
  4. 再次启动mysql,成功了

参考:

在阿里云ECS实例“管理终端”里用“复制命令输入”下载安装Windows独立更新包

在“阿里云技术交流”群里看到的例子,当时群主是为网友通过更改注册表的方法来恢复远程桌面连接。

背景:微软在5月提供了补丁,如果服务端或客户端的 CredSSP 协议 相关的文件不一致,那远程桌面连接时可能会报错。

  1. 出现身份验证错误,要求的函数不支持。这个可能是由于CredSSP加密Oracle修正
    credSSP-1.png
  2. 在ECS实例控制台,用“管理终端”登录到 Windows 2012 R2
    credSSP-2.png
  3. 提示有30天无法检查有无更新了
    credSSP-3.png
  4. 当前的Windows更新状态
    credSSP-4.png
  5. 手动检查更新,代码 80072EE2 失败
    credSSP-5.png
  6. 已安装的Windows更新是在2017年9月14日
    credSSP-6.png
  7. 运行 Internet Explorer 浏览器,鼠标定位到浏览器的地址栏,且切换到输入法为英文
    credSSP-13.png
  8. 通过“管理终端”右上角的“复制命令输入”功能,复制粘贴命令,本例是一个Windows独立更新包的下载地址: https://microsoft-kb.oss-cn-beijing.aliyuncs.com/windows8.1-kb4103725-x64.msu
    credSSP-14.png
  9. 一条长长的网址复制到IE浏览器的地址栏里了
    credSSP-15.png
  10. 如启用了 Internet Explorer 的增强安全配置功能,需手动将网址加到信任网站列表中
    credSSP-16.png
  11. 保存Windows补丁包
    credSSP-17.png
  12. 安装Windows独立补丁包成功
    credSSP-18.png
  13. 重启Windows后,可以正常使用远程桌面连接了
    credSSP-19.png

链接:

在阿里云“专有网络”中配置 IIS FTP 访问

环境:Windows 2012 64位系统,IIS FTP

过程:

  1. 用 FileZilla Client 连接 IIS FTP,能成功连接,但“读取目录列表失败”
    iis-ftp-1.png
  2. 在 IIS 管理器里,点击计算机名称,本例是 iZdp5...,再点击“FTP防火墙支持”
    iis-ftp-4.png
  3. 填写数据通道端口范围和外部IP地址,本例是填写了5000-6000的端口范围,外部地址为ECS实例公网IP
    iis-ftp-5.png
  4. 如果ECS实例安全组没有允许外网访问上边设置的端口范围,需要添加
    iis-ftp-6.png
  5. 在安全组规则中,需要允许TCP 21端口和数据通道端口范围(TCP 5000-6000)
    iis-ftp-7.png
  6. 在 FileZilla Client 的站点管理里,使用“传输设置”里的“主动”
    iis-ftp-8.png
  7. 再次在FTP客户端里连接测试,成功了
    iis-ftp-9.png

参考:

通过javamail,用免费阿里云邮箱账号发邮件

环境:Debian9, OpenJDK-8,tomcat-8.5,javamail-1.16.1

过程:

  1. apt update && apt upgrade && apt autoremove # 更新软件
  2. apt install openjdk-8-jdk # 安装 openjdk-8
    javamail-2.png
  3. apt install libservlet3.1-java # 安装 Java Servlet 和 JSP 库
  4. mkdir -p /var/lib/tomcat8/webapps/ROOT/WEB-INF/lib # 创建测试lib目录
  5. cd /var/lib/tomcat8/webapps/ROOT/WEB-INF/lib && wget https://github.com/javaee/javamail/releases/download/JAVAMAIL-1_6_1/javax.mail.jar # 下载javamail-1.6.1到lib目录中
  6. vi /var/lib/tomcat8/webapps/ROOT/javamail.jsp # 创建测试发邮件表单 javamail.jsp,内容如下,此例是通过连接smtp.aliyun.com 的 465端口,账户名是 anqunhe@aliyun.com

    <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
    <%
    //homepage:  http://cn.waterlin.org/
    request.setCharacterEncoding("utf-8");
    response.setCharacterEncoding("utf-8");
    response.setContentType("text/html; charset=utf-8");
    %>
    <%@ page import="javax.mail.*"%>
    <%@ page import="javax.mail.internet.*"%>
    <%@ page import="javax.activation.*"%>
    <%@ page import="java.util.*,java.io.*"%>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>JavaMail 电子邮件发送系统</title>
    </head>
    
    <body>
    
    <form action="" method="post" OnSubmit="">
    收件人Email:<br /> <input type="text" name="recipients"><br />
    发件人Mail:<br /> <input name="frommail" type="text" size="30" /><br />
    邮件标题 <br /> <input name="subject" type="text" size="50" /><br />
    内容:<br /> <textarea name="contents" cols="50" rows="10"></textarea> 
     <br /> <input type="submit" name="Submit" value="发送邮件" />
    <form>
    
    <%!
    //相应的服务器信息
    String host = "smtp.aliyun.com";
    String user = "anqunhe@aliyun.com";
    String password = "密码";
    String contentType="text/html; charset=utf-8";
    
    private class Authenticator extends javax.mail.Authenticator
    {
     public PasswordAuthentication getPasswordAuthentication()
     {
         String un = user;
         String pw = password;
         return new PasswordAuthentication(un, pw);
     }
    }
    %>
    <%
    String touser = request.getParameter("recipients")!=null ? request.getParameter("recipients") : "";
    
    
    String fromuser = request.getParameter("frommail")!=null ? request.getParameter("frommail") : "";
    
    
    String subject = request.getParameter("subject")!=null ? request.getParameter("subject") : "";
    
    
    String contents = request.getParameter("contents")!=null ? request.getParameter("contents") : "";
    
    
    
    
    try {
     Properties props = new Properties();
     props.put("mail.smtp.auth","true"); //是否验证
     props.put("mail.smtp.host", host);
     props.put("mail.smtp.user", user);
     props.put("mail.smtp.password",password);
     props.put("mail.smtp.ssl.enable","true");
     props.put("mail.smtp.ssl.enable", "true");
     props.put("mail.smtp.port","465");//Gmail 的端口号
     
     //根据邮件服务器是否需要 ttl 验证选用
     //props.put("mail.smtp.starttls.enable","true");
     
    
     boolean sessionDebug = false;
     Authenticator auth = new Authenticator();
     //Session mailSession = Session.getDefaultInstance(props, auth); //有时可能被拒绝
     Session mailSession = Session.getInstance(props,auth); //用户验证;
     //Session mailSession = Session.getInstance(props);
     //mailSession.setDebug(sessionDebug);
    
    
     Message msg = new MimeMessage(mailSession);
     msg.setFrom(new InternetAddress( fromuser ));
     msg.setRecipient(Message.RecipientType.TO, new InternetAddress( touser ));
     msg.setSubject( "邮件标题:" +subject);
     //((MimeMessage)msg).setSubject(subject, "GBK"); //设置中文标题
     msg.setSentDate(new Date());
    
     String text =  contents + "<hr>javamail.jsp 发送认证邮件<b>测试</b>。";
    
     msg.setContent(text, contentType);
    
     Transport transport = mailSession.getTransport("smtp");
     transport.connect(host,user,password);
    
     transport.send( msg );
    %>
    
    <p>你的邮件已发送,<a href="./javamail.jsp">请返回。</></p>
    
    <%
    }
    catch (Exception m) { 
         
    }
    %>
    
    </body>
    </html>

    javamail-7.png

  7. 填写好表单,测试发邮件。成功(在垃圾箱中)。
    javamail-8.png

参考: