作者: 027导航

  • Win10无法访问局域网Win10共享局域网无法访问

    方法/步骤:

    1、按 Win + R 组合键,打开运行,并输入:regedit 命令,确定或回车,可以快速打开注册表编辑器;

    2、注册表编辑器窗口中,依次展开到:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters

    随后在右侧新建DWORD值(32位)

    3、直接将新建DWORD值(32位),命名为“AllowInsecureGuestAuth”,然后双击打开(如果存在该数据则无需新建),随后将数值数据改为“1”并点击“确定”保存设置;

    4、右键点击任务栏右下角的网络图标,在打开的项中,选择打开网络和Internet设置,打开的新窗口中,依次点击:更改适配器选项 - 网络和Internet - 网络和共享中心,点击左侧的更改高级共享设置;

    5、路径:控制面板 - 所有控制面板项 - 网络和共享中心 - 高级共享设置,点击网络发现下的启用网络发现和文件和打印机共享下的启用文件和打印机共享,最后点击保存更改即可;

    6、按 Win + R 组合键,打开运行,并输入:services.msc 命令,确定或回车,可以快速打开服务,然后在服务窗口中,找到并双击打开Server选项,将启动类型设置为自动并启动该服务,最后点击确定;

  • ServerCat-iOS 的服务器状态、Docker 管理和 SSH 客户端

    ServerCat 是一款 iPhone应用,用来监控 Linux 状态和 Docker 状态,Premium 版本可以作为一个 SSH 终端使用,以及用来创建和管理 Docker

    QA问答

    ServerCat 是如何工作的,您是否在服务器上安装了任何程序?

    ServerCat 使用 SSH 读取 Linux/proc文件系统以获取系统状态。它不会在您的服务器上安装任何程序,也不依赖任何第三方工具。

    为什么我看不到 macOS/FreeBSD/*** 的状态?

    ServerCat 的/proc大部分数据依赖于 Linux 内核的子系统,暂时无法在其他平台上显示所有指标

    ServerCat 需要 root 权限吗?

    不,普通用户可以工作。如果您想要 docker 工作,则用户需要是docker组中的一员。

    状态页面上的图表

    • Load 三个环分别代表最近1分钟、5分钟、15分钟的CPU计算和等待IO的平均负载。
    • Memory 表示使用的内存和页面缓存
    • Disk 磁盘读写速度/字节

    详细信息页面上的数据

    CPU数据

    • system 在内核上花费的 CPU 时间
    • User 非内核程序的 CPU 时间
    • IO wait CPU 等待磁盘或网络 IO 所花费的时间。
    • Load 表示最近1分钟、5分钟、15分钟的CPU计算和等待IO的平均负载。

    内存数据

    • Used 使用的内存大小
    • Page cache 内核使用空闲内存缓存最近的文件读写来加速磁盘
    • Idle 内存减去已用和页面缓存的大小。

    网络数据

    • Retransmission Rate TCP报文重传率,可以反映网络的丢包率或时延。

    网络流量统计基于系统的启动。

  • 如何使用远程桌面进行远程登录?

    如何使用mstsc进行远程登录?

    步骤一:点击【开始】->【运行】,输入mstsc,如下图所示:

    步骤二:输入连接PC的IP地址,如下图所示:

    如果有远程桌面端口号请加上端口号,例如远程桌面端口号为3456那么IP写为 192.168.58.100:3456

    步骤三:输入用户名和密码,然后就能远程登录电脑,如果登录失败,常由于帐户名和密码错误导致。

     

     

    步骤四:如想在本机和远程电脑之间共享硬盘,拷贝粘贴等,可以远程登录时选择共享硬盘。具体为步骤二时“选项”-“本地资源”-“详细信息”。

     

     

    文件复制需要点击【详细信息】,勾选【驱动器】选项,如下图所示

     

     

    ---  转载客户机无法通过mstsc连接到远程主机的解决方法 ---

    症状: 当通过mstsc命令进行连接时,系统提示:

    客户端无法连接远程计算机;
    连接可能没有启用,或者计算机太忙,无法接受新连接。也可能网络问题使您无法连接。
    请以后再试。如果问题继续出现,请跟系统管理员联系。

     
    说明:
    1)两台电脑是在同一个局域网内的;
    2)网络是通的,并且可以进行文件及打印共享;
     
    可能存在的问题:
    1、3389端口没有开通
    [开始]菜单——设置——控制面板——系统——远程属性——勾起:允许用户远程连接到此计算机
     
    2、服务没有启用
    [开始]菜单——设置——控制面板——管理工具——服务——找到:Terminal Services服务:更改成“启动”状态

    3、防火墙
    如果端口和服务都开通了,还是不能连接,那么就有可能是被防火墙禁止了;关闭防火墙 或者 添加3389端口并允许
        下面是WindowsXP自带的防火墙:
        [开始]菜单——设置——控制面板——Windows防火墙——例外:勾选“远程桌面

  • 宝塔面板PMA安全风险事件经过

    起因:

    为解决用户服务器被通过phpmyadmin提权导致的安全问题,
    我们在Linux面板7.4.2/Windows面板6.8.0 版本中加入了phpmyadmin安全访问模块,
    原理是通过面板进行访问phpmyadmin,而不是nginx/apache,
    但因在目录存放时存在一个致命逻辑漏洞,导致nginx/apache也可以访问到专门给面板使用的phpmyadmin目录,
    我们在做安全审计时将重心放在面板程序中,忽略了除面板外被访问的可能,从而导致了此事件的发生.

    受影响的机器:
    需同时满足以下所有条件
    1、软件版本为Linux面板7.4.2 或者Windows面板6.8.0
    2、开放888且未配置http认证,
    3、安装了phpmyadmin,mysql数据库

    不受影响的机器:
    只需满足一条则不受影响
    1、未开放888端口,
    2、针对888端口做了严格的安全认证,
    3、未安装phpmyadmin,
    4、未安装mysql数据库
    5、面板版本不为Linux面板7.4.2/Windows面板6.8.0

    安全更新时间及内容:
    时间:2020-8-23 16:50左右
    1、移除phpmyadmin安全模块
    2、删除phpmyadmin遗留文件
    3、移除fastcgi客户端模块中的目录解释功能

    当前最新的安全版本为:
    Linux面板7.4.3 / Windows面板6.9.0

    除使用紧急修复补丁以外的其它措施:
    1、第一时间通过 短信、公众号、官网、QQ群等渠道通知用户升级
    2、在云端软件安装脚本中加入漏洞检测功能,在用户通过云端安装软件时,检测发现漏洞后尝试修复
    3、通过漏洞本身,尝试破坏利用链(尝试通过phpmyadmin自身漏洞删除config.inc.php, 仅部分Windows有效/Linux版本尝试失败) 2020-8-23 22:00 ~ 2020-8-24 4:00
    4、通过漏洞本身,尝试破坏利用链(强制修改数据库root密码),此方法部分服务器有效,受phpmyadmin版本和用户配置影响 执行时间:2020-8-24 8:00 ~ 2020-8-24 9:40
    5、阿里云,腾讯云等很多IDC厂商已紧急发布更新预警并采取限制端口的措施来防止漏洞被利用

    下一步:
    在漏洞发现第一时间已安排人员加班更新修复,增加服务器带宽,利用所有能利用上的宣传渠道进行更新提醒,同时安排运维及客服人员在线解答所有事项,对于受影响的用户协助他们解决问题,对于人手不足问题已临时调用开发来协助用户,当前所有精力都努力将此安全风险影响最小化,等处理完这步再来更新内部整改处理事项。

  • 如何在 Linux 上录制你的终端操作

    录制一个终端操作可能是一个帮助他人学习 Linux 、展示一系列正确命令行操作的和分享知识的通俗易懂方法。不管是出于什么目的,从终端复制粘贴文本需要重复很多次,而录制视频的过程也是相当麻烦,有时候还不能录制。

    在这次的文章中,我们将简单的了解一下以 gif 格式记录和分享终端会话的方法。

    预先要求

    如果你只是希望能记录你的终端会话,并且能在终端进行回放或者和他人分享,那么你只需要一个叫做:ttyrec 的软件。Ubuntu 用户可以通过运行这行代码进行安装:

    sudo apt-get install ttyrec

    如果你想将生成的视频转换成一个 gif 文件,这样能够和那些不使用终端的人分享,就可以发布到网站上去,或者你只是想做一个 gif 方便使用而不想写命令。那么你需要安装额外的两个软件包。第一个就是 imagemagick , 你可以通过以下的命令安装:

    sudo apt-get install imagemagick

    第二个软件包就是:tty2gif.py,访问其项目网站下载。这个软件包需要安装如下依赖:

    sudo apt-get install python-opster
    录制

    开始录制终端操作,你需要的仅仅是键入ttyprec,然后回车。这个命令将会在后台运行一个实时的记录工具。我们可以通过键入exit或者ctrl+d来停止。ttyrec 默认会在主目录下创建一个ttyrecord的文件。

    回放

    回放这个文件非常简单。你只需要打开终端并且使用 ttyplay命令打开ttyrecord文件即可。(在这个例子里,我们使用 ttyrecord 作为文件名,当然,你也可以改成你用的文件名)

    然后就可以开始播放这个文件。这个视频记录了所有的操作,包括你的删除,修改。这看起来像一个拥有自我意识的终端,但是这个命令执行的过程并不是只是为了给系统看,而是为了更好的展现给人。

    注意一点,播放这个记录是完全可控的,你可以通过点击 +或者-进行加速减速,或者0和1暂停和恢复播放。

    导出成 GIF

    为了方便,我们通常会将视频记录转换为 gif 格式,并且,这个非常容易做到。以下是方法:

    将之前下载的 tty2gif.py 这个文件拷贝到 ttyprecord 文件(或者你命名的那个视频文件)相同的目录,然后在这个目录下打开终端,输入命令:

    python tty2gif.py typing ttyrecord

    如果出现了错误,检查一下你是否有安装 python-opster 包。如果还是有错误,使用如下命令进行排除。

    sudo apt-get install xdotool
    export WINDOWID=$(xdotool getwindowfocus)

    然后重复这个命令python tty2gif.py并且你将会看到在 ttyrecord 目录下多了一些 gif 文件。

    接下来的一步就是整合所有的 gif 文件,将他打包成一个 gif 文件。我们通过使用 imagemagick 工具。输入下列命令:

    convert -delay 25 -loop 0 *.gif example.gif

    你可以使用任意的文件名,我用的是 example.gif。 并且,你可以改变这个延时和循环时间。

  • Python爬虫工程师方方面面的知识

     

    课程介绍:

    本套课程为完整版的网络爬虫课程,可以通过该课程学习网络爬虫的相关知识,以便学习网络爬虫方方面面的知识,学完后胜任网络爬虫相关工作。

    相关文件下载地址
    下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!

  • TypeScript获取二叉树的镜像实例详解

    给定一颗二叉树,如何获取它的镜像?本文将跟大家分享这个问题的解决方案,欢迎各位感兴趣的开发者阅读本文。

    思路分析

    当我们把一张写有文字的纸放在镜子前面,你看到的内容正好与你写的内容是相反的。那么我们就可以依据照镜子的经验画出它的镜像了,如下所示:

    • 镜像前后的两棵树根节点相同
    • 镜像后的树与镜像前相比:它们的左、右子节点交换了位置

    通过观察后,我们就得出了一颗树的镜像过程:先序遍历这棵树的每个节点,如果遍历到的节点有子节点,就交换它的两个子节点。当交换完所有非叶节点的左、右子节点之后,就得到了树的镜像。

    对树的遍历不了解的开发者,请移步我的另一篇文章:先序遍历

    实现代码

    想清楚思路后,我们就可以很顺利的写出代码了,如下所示:

    export function MirrorImageOfTree(node: BinaryTreeNode | null): void {
      if (node == null) return;
      if (node.left == null && node.right == null) return;
      // 交换左右子节点
      const temp = node.left;
      node.left = node.right;
      node.right = temp;
      if (node.left) {
        MirrorImageOfTree(node.left);
      }
      if (node.right) {
        MirrorImageOfTree(node.right);
      }
    }

    完整代码请移步:MirrorImageOfTree.ts

    我们将文章开头所讲的例子代入上述代码来测试下,如下所示:

    const tree: BinaryTreeNode = {
      key: 8,
      left: {
        key: 5,
        left: { key: 3 },
        right: { key: 7 }
      },
      right: { key: 18, left: { key: 13 }, right: { key: 22 } }
    };
    MirrorImageOfTree(null);
    console.log("镜像后的树", tree);

    完整代码请移步:mirrorImage-test.ts

  • 虚拟机中设置共享文件夹

    前提:在vmware中设置共享文件夹,会共享在 /mnt/hgfs里。本文针对找不到 /mnt/hgfs的情况。

    • 物理机系统:win10
    • 虚拟机系统:deepin 15
    • VMware:15,已安装VMware Tools

    在vmware设置共享文件夹

    检查共享是否设置好

    sudo vmware-hgfsclient
    shell

    能出现共享的文件夹名称说明之前都设置好了。

    安装一些必要的软件包

    sudo apt-get install open-vm-tools
    shell

    下面两个二选一,因为可能会遇到找不到软件包的情况。

    sudo apt-get install open-vm-dkms
    sudo apt-get install open-vm-tools-dkms
    shell

    设置挂载目录

    可能有自动生成了可能没有,本文的前提是没有,于是设置一个。自动生成的叫/hgfs,换成别的名字也行

    sudo mkdir /mnt/hgfs
    shell

    挂载操作

    会根据之前安装的软件包名称的不同而不同。

    安装open-vm-dkms,则

    sudo mount -t vmhgfs .host:/ /mnt/hgfs
    shell

    安装open-vm-tools-dkms,则

    vmhgfs-fuse .host:/ /mnt/hgfs
    shell

    此时共享文件夹已经能在/hgfs里看到了。

    有可能会遇到共享文件夹普通权限打不开

    建议重启虚拟机,重新进行挂载操作,改用命令(仅针对安装open-vm-tools-dkms,另一种没遇到不知道):

    sudo vmhgfs-fuse .host:/ /mnt/hgfs -o subtype=vmhgfs-fuse,allow_other
    shell

    或者也可以选择root进去查看。

    每次重启需要重新挂载,到底怎么开机自动挂载,还不知道呢

  • Nginx强制http,HTTP 301重定向到HTTPS

    全站启用https让您的网站更安全,但是在过程中总会遇到一些麻烦,分享这篇文章希望对需要的童鞋有帮助,我们不需要去过多的修改程序设置,直接在WEB服务器(Nginx)中配置一下,将80端口(HTTP)全部301重定向到HTTPS,目前就是使用的这个方法。

    一、前提条件

    此方法仅适用于Nginx WEB服务,推荐安装军哥LNMPOneinStack,自己编译安装的Nginx也是可以的。

    二、修改主机配置文件

    军哥LNMP或OneinStack的配置文件在/usr/local/nginx/conf/vhost/youdomain.com.conf,将下面的配置添加到文件中。

    server
    {
            listen 80;
            server_name pzo.cc www.pzo.cc;
            rewrite ^(.*) https://www.pzo.cc$1 permanent;
    }

    上面的配置含义是当我们去使用HTTP请求pzo.cc或www.pzo.cc的时候全部301重定向到https://www.pzo.cc,下面是完整的配置文件供参考:

    server {
    listen 443;
    ssl on;
    ssl_certificate /data/ssl/pzo.cc.crt;
    ssl_certificate_key /data/ssl/pzo.cc.key;
    server_name pzo.cc www.pzo.cc;
    index index.html index.htm index.php;
    ...
    ...
    }
    
    server
    {
            listen 80;
            server_name pzo.cc www.pzo.cc;
            rewrite ^(.*) https://www.pzo.cc$1 permanent;
    }

    配置修改后别忘记重载一下Nginx:service nginx reload

    三、CURL测试

    最后我们可以测试下访问HTTP是否会301重定向到HTTPS,可以使用CURL测试一下:curl -I www.pzo.cc,Nginx配置SSL的教程可以参考:Nginx怎样部署SSL证书

  • 哪吒监控:赏心悦目的服务器监控面板、轻量运维系统!

    最近用信用卡撸到了四台免费的服务器,打算挂个探针监控一下这几台免费服务器看看能撑多久。有幸在 Github 找到一个开源的监控面板 —— 哪吒监控 一站式轻监控轻运维系统。

     

    哪吒监控支持系统状态、HTTP (SSL 证书变更、即将到期、到期)、TCP、Ping 监控报警,命令批量执行和计划任务。面板自带三套主题都非常不错,可以说既做到了满足监控运维的需求又得到赏心悦目的审美体验。-> 项目地址

    界面预览

     

     

     

     

    一些准备

    1、服务器数量不少于两台。
    2、准备两个域名可以是子域名,例如 a.vvso.cn(用于面板访问)  b.vvso.cn(用于Agent对接Dashboard
    3、防护墙放行端口:80085555
    Plain text

    创建 OAuth2 授权服务

    打开 https://github.com/settings/developers 注册一个 OAuth ap­pli­ca­tion,所填信息及要求如下:

    Application name : (随意取名)
    Homepage URL http://ip:8008 (默认端口8008)
    Application description:(可选项可不填)
    Authorization callback URLhttp://ip:8008/oauth2/callback (默认端口8008)
    Plain text

    记录 Client ID 及对应的 Client Secret 安装面板的时候会用到。

     

     

    如果看不到 Client Secret 可以点击 Generate a new client secret 再生成一个。

    服务端面板安装

    运行安装脚本:

    curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh  -o nezha.sh && chmod +x nezha.sh
    sudo ./nezha.sh
    Plain text

    输入 1 回车,安装面板端

     

     

    按要求正确输入

    1.请输入 OAuth2 提供商(gitee/github,默认 github):
    (默认,回车)
    2.请输入 Oauth2 应用的 Client ID 
    (输入之前创建的Client ID
    3.请输入 Oauth2 应用的 Client Secret:
    (输入之前创建的Client Secret
    4.请输入 GitHub/Gitee 登录名作为管理员,多个以逗号隔开:
    (填写github的用户名)
    5.请输入站点标题:
    (填写后,回车)
    6.请输入站点访问端口: (8008)
    (回车)
    7.请输入用于 Agent 接入的 RPC 端口: (5555)
    (回车)
    Plain text

    以上,完成面板安装。

    添加监控服务器

    浏览器输入 http://ip:8008/login,点击登录会自动跳转到 Github,若 Github 是已登录的状态则会成功跳转回来。

     

     

    点击管理后台 - 添加服务器 - 输入名称确定,添加一个监控机器,并记录下对应的密钥。

     

     

    监控的机器进入 SSH 终端运行安装脚本:

    curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh  -o nezha.sh && chmod +x nezha.sh
    sudo ./nezha.sh
    Plain text

    输入 8 回车,安装监控 Agent。

     

     

    按要求填写下列信息(这里的 b.vvso.cn 用于 Agent 对接 Dash­board 所准备的域名,请替换为自己的):

    1.请输入一个解析到面板所在IP的域名(不可套CDN):
    b.vvso.cn,回车)
    2.请输入面板RPC端口: (5555)
    (回车)
    3.请输入Agent 密钥:
    (填写后台新增监控服务器对应的密钥)
    Plain text

    以上,完成监控端部署,部分设备例如 MT7621 系列路由器暂时需要手动安装 nezha-agent。

    反向代理

    觉得使用 http://ip:8008 访问控制面板太麻烦,可以使用 Ng­inx 反向代理来绑定域名以及使用 https。-> 免费申请 SSL 证书

    server{
        listen 80;
        server_name  a.vvso.cn;
        rewrite ^/(.*)$  https://a.vvso.cn/$1 permanent;
    }
    
    server {
        listen 443 ssl http2;
        server_name  a.vvso.cn;
        ssl_certificate /etc/nginx/ssl/fullchain.cer;
        ssl_certificate_key  /etc/nginx/ssl/vvso.cn.key;
        ssl_stapling on;
        ssl_stapling_verify on;
        ssl_trusted_certificate /etc/nginx/ssl/fullchain.cer;
        resolver 8.8.8.8 8.8.4.4 223.5.5.5 valid=3600s;
        resolver_timeout 2s;
        ssl_session_cache shared:SSL:10m;
        ssl_session_timeout 10m;
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS;
        ssl_prefer_server_ciphers on;
        add_header Strict-Transport-Security "max-age=31536000";
        # 反代配置
        location /
        {
            proxy_pass http://127.0.0.1:8008;
            proxy_set_header Host $host;
        }
        location /ws
        {
            proxy_pass http://127.0.0.1:8008;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "Upgrade";
            proxy_set_header Host $host;
        }
    }
    Plain text

    然后打开 https://github.com/settings/developers 修改之前创建的 OAuth ap­pli­ca­tion 信息:

    Homepage URL https://a.vvso.cn (替换为面板准备的域名)
    Authorization callback URLhttps://a.vvso.cn/oauth2/callback (替换为面板准备的域名)
    Plain text

    此时可以使用域名直接访问,若后台登录返回 github 的 404 页面,请重启一下面板即可。