普通视图

发现新文章,点击刷新页面。
昨天以前首页

续费成功

作者 老王
2024年9月2日 10:42
告别美好的假期,背起可爱的书包,整理无限的向往,朝着久违的校园进发。站在教室门口放眼望去,满满的都是教育的仪式感。一帧帧画面彰显着学子们入学的喜悦,一幅幅场景传递出老师对未来的期望。小王子新学期续费成功,自此开启新征程,新的学期继续加油吧!

14年的独立blog

作者 xrspook
2024年8月29日 08:45

当年今日

blog在WordPress上,不知不觉已经14个年头。如果没记错的话,是在2010年开始的,因为那个时候BlogBus崩掉了。这14年,我都是跟着同一个团长。那个团长是在豆瓣上认识的,估计现在那个团里面就只剩下我和他了,其他人可能都已经渐渐退掉。实际上,对blog有需求的人,可能只剩下我一个,只有我一个积极用户。团长本身就只是做那个事而已,我不知道他有没有在服务器上折腾些什么。以前可能他是有折腾的,但折腾这种事,对普通人来说不可能一直都折腾。因为写blog本身不算太折腾,每天都耗费基本上相似的时间,习惯下来就好。

我有想过有一天团长不干了,我该怎么办。我自己独立一个门户吗?那个时候,如果遇到一些技术上的故障,我该怎么办呢?现在实际上,我们也的确遇到了技术上的故障。因为团长换电脑了,所以那个服务器的账号密码不见了。理论上联系服务商,只要你提供足够的资料,对方是可以帮你找回密码或者帮你重置密码的,但关键是邮件发过去,对方完全不理你,还真一点办法都没有。当然,如果服务商是大型的,估计不会发生这种事,但如果那只是一个小众的服务商,那么发生这种事,绝对是有可能的,中途跑路也是有可能的。这么多年下来一直都相安无事,我觉得都已经是个奇迹了。中途我们有没有搬过家呢?我没什么印象,因为不是我操作的,我顶多是一段时间开不了网页,但实际上,无论我开得了还是开不了网页,我的blog都会继续,都会在记事本上写下来。重新能开网页的时候,我就把之前囤下的那些东西发布上去,仅此而已。

如果有一天团长不干了,我还会继续每天写,但那个时候估计就不能称之为blog,要称之为日记了,blog和日记对我来说,最大的区别在于一个自己存着,另外一个放在网上,谁都可以看到。

服务商这种东西,即便是最大型的,也说不准靠谱不靠谱,因为大型的服务商也非常有可能有倒闭的那一天,某一天,他们不再开展这个业务了,转而开展别的,把这个业务关闭了,你一点办法都没有。一直以来我们的数据都是放在外国的服务器的。以现在的局势看来,继续放在外国好像有点风险。倒不是因为我的数据有什么问题,涉及了什么方面的东西,而是如果一旦某些事情发生,互联网中断,即便我的东西还存在着,但我再也接触不到了。

我从2004年开始写自己的blog,到昨天为止,我备份了一下全站的内容,媒体资料有400多MB,数据库有70多MB,其它的都是一些很小的脚本。文字内容的东西基本上都在数据库的SQL文件里,附件类图片音频之类的东西其实这么多年下来也不是很大,最主要的原因是可能一开始我会用得比较多,尤其是在我刻橡皮章的时候,后来越来越少了,尤其是近几年,我基本上没有了什么兴趣爱好之后。

还记得一开始在BlogBus上开我自己的blog的时候,我的誓言是一辈子都写,每天不间断,但现在看来,写不写下去靠的是我个人,但能不能让其成为blog,外部干扰因素很大。如果是短时间内,外部因素干扰可以忽略,但如果把时间延长到十年甚至几十年,外部干扰因素影响非常大。

停止 SSH 服务器监听 IPv6 地址

作者 Armstrong
2024年8月28日 15:07

为啥要停止 SSH 服务器监听 IPv6 地址?

  许多同学家里都有软路由或者小型服务器,用来跑一些个人的小程序,或者跑 TeamTalk 等。现在 IPv6 已经基本普及,好处是每个设备甚至每个容器都能分配到一个公网 IP 地址,坏处也显而易见,那就是,之前靠路由器来充当防火墙的搞法已经不奏效了。为啥捏?因为之前基本都是在路由器上做端口映射,可以有选择地开放端口到互联网上,现在则是整个系统暴露到了互联网。

  看到这里,聪明的同学应该都已经知道俺想表达的意思啦。没错,咱们都是通过 SSH 来控制服务器的,一旦它被入侵,后果是很严重滴!删库跑路还不是最大的问题,最大的问题是骇客潜伏在服务器里,三天两头搞些事情,如果你有很多的虚拟机,仅凭一己之力,是很难彻底跟踪入侵踪迹的。

怎么停止 SSH 服务器监听 IPv6 地址?

  首先,通过终端/SSH 之类的方法登录你的服务器,并进入 /etc/ssh 目录,用 cp 命令备份一下 sshd_config 文件,具体命令俺就不多费口水了。备份好之后,用你习惯的编辑器打开 sshd_config 文件,比如俺喜欢用 nano 编辑器,命令是 nano sshd_config

  找到 #AddressFamily any 这一行,把前面的“#(警号)”删除,改成 AddressFamily inet。往下找到 #ListenAddress 0.0.0.0,再把前面的“#”删除。最后,保存 sshd_config 文件。

  这还没完!要想让修改生效,必须重启 SSH 服务端软件,在 CentOS/Debian/Ubuntu 系统上,命令是 systemctl restart sshd,在 Alpine Linux 系统上,命令是 service sshd restart

  切记!先别断开 SSH 连接,一定要看刚才执行命令后是否有报错信息,如果有,赶紧恢复之前的备份,然后重新修改配置文件并再次尝试重启。

检查 SSH 服务器是否停止监听 IPv6 地址

  当修改完成后,一定要有复查的习惯。咋复查捏?在有 IPv6 连接的内网电脑上,通过 SSH 连接服务器的 IPv6 地址,如果连接不上就表示修改成功了。为了避免误判,俺建议通过 ping 以及连接这台服务器的其他端口(例如 Web 端口)来再次确认。

获得最新Apache服务器访问记录的脚本


apache 服务器将访问请求记录在 /var/log/apache2 中,因此我们可以分析这个日志文件来找出最后的几个请求。

下面解析 apache2 服务器日志,并逐行打印请求。它基于 BASH 命令:tail 和 awk

#!/bin/bash 

NUMBER_OF_REQUESTS=50
LOG_FILES_PREFIX=/var/log/apache2/access

tail -n $NUMBER_OF_REQUESTS $LOG_FILES_PREFIX* | awk -F'"' '
    # 确保 IP 地址、请求和用户代理字段存在
    $1 ~ /^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/ && $2 ~ /^(GET|POST|HEAD|PUT|DELETE|OPTIONS|PATCH)/ && $6 != "" {
        split($1, part1, " ")
        ip = part1[1]
        split($2, request, " ")
        method = request[1]
        path = request[2]
        user_agent = $6
        print ip, path, user_agent
    }
'

示例输出(每行包含 IP 地址、URI/URL 和用户代理字符串):

last-few-access-apache2-logs 获得最新Apache服务器访问记录的脚本 BASH LINUX 程序设计 运维

通过 IP、URL 和用户代理向 Apache2 发送的最后几个请求

有了它,我们可以集成到 BASH 脚本中,当 CPU 平均负载较高时发送电子邮件通知,以帮助我们了解导致峰值的原因。

英文:How to Get the Last Requests to Apache2 Server?

本文一共 198 个汉字, 你数一下对不对.
获得最新Apache服务器访问记录的脚本. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c 获得最新Apache服务器访问记录的脚本 BASH LINUX 程序设计 运维
The post 获得最新Apache服务器访问记录的脚本 first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  2. 在币圈第一次被骗1355 USDT(1000英镑)的惨痛经历(Wirex) 今天回家,在帮媳妇干活的时候,收到一邮件,手机上打开,以为是来自Wirex的,要我验证手机号,我想也没想,就打开验证了,然后不到2分钟,里面的钱就被转走了。 手机上打开没细看,电脑上打开该邮件 其实很容易发现是诈骗邮件的。因为邮件不是来自于官方,而且我的姓名前是加了一些乱码。一眼假。只不过当时在干活,也没多想,才被骗。 损失1355 USDT(1000多英镑),因为在Wirex上有X-Account,我锁定了XX个大饼,还好锁定了(30天才能解锁),后怕啊,不然全被搞走了,真得上天台了。 X-Account帐号锁定解锁需要30天,骗子马上启动解锁了。但钱还在,我立马联系客服,客服回得也挺快(以前不太重要的邮件就得好几天才回),客服立马把我的帐号锁定了,然后进行调查。 庆幸当初为了高1%的利息锁定币30天,要不然今天估计就全丢了。 Wirex通过手机短信就可以把钱搞走,而且登陆/更改资料都需要SMS验证码,实在是不合理,我要改回我手机号,则需要向骗子手机要验证码。虽然我开通了更为安全2FA二维码验证,但是貌似一个手机SMS验证码就可以关闭。 这个假期本来很完美,结果因这事搞得很不愉快。惨痛的教训,就当学费了。骗子不得好死。 Wirex客服这次回得挺快: I am truly sorry you...
  3. 智能手机 HTC One M9 使用测评 虽然我对手机要求不高, 远远没有像追求VPS服务器一样, 但是怎么算来两年内换了四个手机, 先是三星 S4 用了一年多, 然后 Nokia Lumia 635 Windows Phone, 后来又是 BLU, 半年多前换了...
  4. HPZ800服务器主板太老不支持超过2TB的大硬盘 我家里一直用的是HPZ800服务器, 很吵, 很老, 虽然这台服务器已经有十年之久(我在EBAY上买来用了五年多了), 但是即使放到今天, 这服务器速度依旧很快, 很稳定. 由于服务器用的是ECC较验内存, 所以基本上不重启关机. HPZ800主机有两个硬核CPU – 因特志强 X5650 – 每个CPU是12核....
  5. 英国博士毕业答辩是怎样一个过程? 坛子发了篇 “欧洲博士毕业答辩是怎样一个过程?” 但是英国不太一样, 请听我细细道来. 我是2006年9月开始博士课程的, 当时很不容易 争取到免学费, 第二第三年学费免不免得看研究进度. 确定导师 如果你是中规中矩的进去 一般院里会给你安排个一导, 也可能是你跟着导师, 导师有钱, 这时候有钱给你生活费的就是一导, 一般至少需要2个导师,...
  6. WordPress 最简单的过滤垃圾评论的方法 WordPress 很多垃圾评论都是由程序直接调用访问 wp_comments.php 造成的. 所以我们可以在 functions.php 文件里加入以下代码 新增一个过滤 简单的检查是否是直接调用. 1 2 3 4 5 6...
  7. 穷举算法的应用 – 去除EXCEL文件中的保护 EXCEL 是可以用密码来保护的. 比如 这个EXCEL 就用了密码保护. 打开EXCEL文件 你会注意到 无法编辑 无法查看宏(VBA)的代码. 去除保护很简单 第一步先编辑宏 VBA 把下面的VBA代码拷贝到VBA编辑器里 并按下F5运行 1...
  8. 在LINUX下循环备份的方法 备份是我们常需要做的事, 你可以在服务器上有一个文件夹专门用于存放备份.然后定期删除(可以是一个脚本定期执行),这样就比较麻烦,因为如果你想每次删除比较旧的备份, 你就得对备份进行时间倒序. 其实可以完全利用LINUX下的 date命令来生成想要的文件名用于备份.比如你想保留过去的 24 小时备份,那么,你可以用: 1 2 H=`date +"%H"` ls > backup_$H  #...

老张博客搬入软云_RuanCloud,暨谈个人博客服务器的选择!

作者 老张
2024年3月17日 18:09

于个人博客来说,“用户体验”这个词大家都不陌生,老张前段时间在《如何经营好个人独立博客》也有大体的说过如何优化用户体验,在上篇文章里老张就说过为给用户最大的好的体验就是网站的速度要快,如果一个页面打开要两三秒钟的话,我想很多人在页面没有加载出来的情况下就关闭走人了。”。前段时间老张的服务器用的是CC的,对于CC家的服务器,我的评论就是说快也不快,讲慢吧也不是太慢,网站打开速度真的不是太快,但是速度还是在可以接受的范围内。虽然是可以接受,但是速度还是不为理想,为了能给大家更好的用户体检,老张思考再三之后还是决定把博客搬到软云_RuanCloudf去。

软云_RuanCloudf介绍

软云_RuanCloudf,我在去年11月份就买过他家的特价活动机,这台特价VPS一直做为我的备用机,折腾各种东西待稳定之后再上正式服务器。这台备用机,虽然是他家的特价活动机,但是使用起来却是非常的稳定。所以趁着他家这次活动,搞了一台香港GIA专线、4H8G30G系统盘40G数据盘这么一个配置机子,宽带是7M。这样的配置对于我们这样个人博客来说真的是大牛拉小车了。为什么选配置高点呢,主要是为了能想把几个Docker项目到一起,把所有的网站、Docker都搬到一台服务器上便于管理。如果你没有过多的Docker项目或是网站三五个的话,选择2H4G[GIA专线]这款真的是足够用了,每月25元,年付按十个月算更便宜点。

以上是我对软云_RuanCloudf的介绍,也算是我的推广,广告做的再好,还是得要看网站速度。不是有句俗话嘛“不看广告看疗效”,他的香港GIA线路速度怎么样,就看我的网站速度就行。重点来了,哪位兄弟要买,不要忘了走我的AFF呀!老张的AFF:https://ruan.cloud/activity.html?laozhang,如果买了,提老张,给你打骨折!哈哈!

个人博客,老张推荐他家香港GIA专线的几款机型,性价比非常的高。

CPU 内存 硬盘(SSD) 流量 带宽 价格 购买地址
2核 2G 30G 不限 3M ¥19.9/月 点击购买
2核 4G 40G 不限 4M ¥25/月 点击购买
4核 4G 50G 不限 5M ¥35/月 点击购买
8核 8G 30G+40G 不限 7M ¥50/月 点击购买

五一活动爆款

CPU 内存 硬盘(SSD) 流量 带宽 价格 购买地址
2核 2G 30G 不限 3M ¥99/年(3年送1年) 点击购买
2核 4G 40G 不限 4M ¥150/年(3年送1年) 点击购买
4核 4G 50G 不限 5M ¥199/年(2年送半年) 点击购买
4核 8G 30G+40G 不限 7M ¥249/年(2年送半年) 点击购买
8核 8G 30G+60G 不限 7M ¥350/年(2年送1年) 点击购买

如果选择适合自己的服务器

博客域名已备案,那毫无疑问,选择国内的服务器。很多大厂的活动机很值得拥有,我说的是活动机。比如去年双十一阿里搞的活动机,2C2G3M的,才99一年,真香。但是非活动机那也不是一般的贵。

如果域名没有备案,那别无选择,那用海外的服务器吧!海外服务器,服务器在海外呀,线路非常重要自不必多说。但是一些大厂的海外服务器线路好的话价格不是我们可以接受的。那我们可以选择小厂的。选择小厂的,必须要做到好好甄别,千万不能因为贪图便宜选一些会跑路的。上次在某论坛上看到一个小厂出的特价机,香港CN线路的8C16G10M的,一年才二百多块钱。不用多想,这么高的配置价格这么低一定是超售机,说不准某时还会跑路。所以,服务器商的选择非常的重要。

最后的忠告

不管你选择的是大厂的服务器或是小厂的服务器,更甚者是私人的服务器。数据备份很重要,能做到数据库每天一备份,网站文件至少能做到三五天一备份,这样,即使服务器商删库跑路了,自己网站的数据还在自己手里,把损失减到最小呀!

 

Linux下C语言判断samba服务器是否mount成功

作者 大致
2024年1月13日 16:31

最新的项目需要向网络共享服务器定时上传资料。但是客户的网络环境不知道咋配的,mount的执行总是有延时,并且还经常掉线。所以在上传文件之前我必须判断mount的目录是否是一个samba共享目录。
在我的环境下,这个共享文件夹是/mnt/smb/。这个文件夹有如下特性:
1:如果mount成功,它就是共享服务器的根文件夹,否则只是一个普通的Linux文件夹。
2:如果启动时网络有问题,那么fstab的自动mount(cifs方式)会执行失败。
3:fstab不归我管,也就是我没有改变mount时机的权力。
4:如果启动时网络没有问题,而后来断网,那么这个文件夹的仍旧处于挂载状态。所以使用mount命令是走不通的。
查找资料以后,我决定采用ping+判断文件夹文件系统的方法,来判断文件夹是否已经被mount。

用ping命令结合popen函数判断网络情况

断网是mount失败的充分非必要条件。之所以要先判断网络联通情况,是因为如果网络是中途切断的,cifs有一个180秒的漫长等待时间。此期间去调用(网络文件夹)的文件系统,也会等到cifs判断网络切断的时间点,才返回一个“网络临时切断”的errno(具体值忘了)。而这个cifs的等待时间以后,再去取网络文件夹的文件系统,就会立即返回Host挂了的errno(具体值也忘了)了。
为了节省这个最多达到180秒的时间,我ping一下不就行了。当然,如果服务器把ICMP给封了,当我没说。

static int ping_server(const char* ip_addr)
{
    int ret = 0;
    if (!ip_addr)
    {
        return ret;
    }
    char buffer[1024] = {0};
    char str_cmd[MAX_PATH] = {0};
    sprintf(str_cmd, "ping -c 1 -W 2 %s", ip_addr);
    FILE* pipe = popen(str_cmd, "r");
    if (!pipe)
    {
        printf("exec ping popen failed. ERROR:%d:%s", errno, strerror(errno));
        return ret;
    }
    sleep(1);
    int rd = fread(buffer, 1, 1024, pipe);
    if (rd <=0)
    {
        printf("exec ping timeout.");
    }
    else if( NULL != strstr( buffer, "ttl=" ) )
    {
        ret = 1;
    }
    pclose(pipe);
    return ret;
}

popen函数是个挺有趣的函数,它在stdio.h里就有。作用是起一个process来执行shell命令。跟system相比,它的等待过程更灵活,获取命令在屏幕上的输出内容也更方便。
这里的fread有点魔性。因为我写的ping命令配合参数,意思是ping一次,等待2秒。而我在fread之前只等了1秒。这样,如果断网,我在等待1秒后读取的屏幕内容为空,便可以立刻返回,而不必等待整个ping命令结束。判断接通就很简单了,看输出的内容里有没有“ttl=”的文字,常规操作。

用statfs函数判断文件夹文件系统属性

这个函数用起来就有点麻烦了。
首先要引一个系统头文件“sys/vfs.h”。然后里面那些相貌清奇的文件系统的宏定义被一层一层引用,很难找。于是我索性自己重新定义了一下,好孩子千万不要学。
文档在这里

#include <sys/vfs.h>
#ifndef SMB2_MAGIC_NUMBER
#define SMB2_MAGIC_NUMBER     0xfe534d42
#endif
static int is_smb_fs(void)
{
    struct statfs fs;
    int ret = statfs("/mnt/smb", &fs);

    if (0 == ret && (SMB2_MAGIC_NUMBER == fs.f_type))
    {
        printf(   "check smb dir [mnt/smb] ret = %d status = %llx", ret, fs.f_type);
        return 1;
    }
    return 0;
}

将上面两个函数封装成进一个函数

static int is_smb_folder_connected(const char* ip_addr)
{
    if (ping_server(ip_addr))
    {
        return is_smb_fs();
    }
    return 0;
}

main函数略。
收工。


  • (1):本来还有个汤球球,但他把机器和卡一起卖给了我。
  • (2):真正的谜底是“贵妃红”,有人听说过这种花么?

忍不住又在服务器上花钱了

作者 Aicsuk
2022年7月6日 21:50

&emsp;&emsp;最近这个月沉迷服务器无法自拔,先买了华为云的云服务器,然后又买了天翼云的云服务器,博客也从之前的腾讯云香港搬到了华为云。
&emsp;&emsp;本来现在天翼云的服务器还在备案,想着等备案下来之后再把博客搬到天翼云的,结果现在又变卦了,买了台镇江的物理服务器,过几天应该会把博客搬到镇江的服务器上。
&emsp;&emsp;这个月买服务器都花了接近2000块钱了。
&emsp;&emsp;这台镇江的独服配置是我有史以来用过的配置最高的服务器,16核处理器、32G内存、512G硬盘、50M宽带,是我以前最开始接触建站时想都不敢想的配置 。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
-------------------- A Bench.sh Script By Teddysun -------------------
Version : v2022-06-01
Usage : wget -qO- bench.sh | bash
----------------------------------------------------------------------
CPU Model : Intel(R) Xeon(R) CPU E5-2689 0 @ 2.60GHz
CPU Cores : 32 @ 2300.325 MHz
CPU Cache : 20480 KB
AES-NI : Enabled
VM-x/AMD-V : Enabled
Total Disk : 467.5 GB (5.4 GB Used)
Total Mem : 31.3 GB (1.4 GB Used)
Total Swap : 976.0 MB (0 Used)
System uptime : 0 days, 21 hour 22 min
Load average : 0.00, 0.00, 0.00
OS : Debian GNU/Linux 11
Arch : x86_64 (64 Bit)
Kernel : 5.10.0-8-amd64
TCP CC :
Virtualization : Dedicated
Organization : AS56046 China Mobile communications corporation
Location : Zhenjiang / CN
Region : Jiangsu
----------------------------------------------------------------------
I/O Speed(1st run) : 843 MB/s
I/O Speed(2nd run) : 886 MB/s
I/O Speed(3rd run) : 888 MB/s
I/O Speed(average) : 872.3 MB/s
----------------------------------------------------------------------
Node Name Upload Speed Download Speed Latency
Speedtest.net 47.48 Mbps 97.68 Mbps 2.46 ms
Los Angeles, US 15.84 Mbps 1.51 Mbps 175.46 ms
Montreal, CA 15.57 Mbps 1.13 Mbps 205.37 ms
Paris, FR 18.21 Mbps 1.54 Mbps 224.56 ms
Amsterdam, NL 11.68 Mbps 1.45 Mbps 226.40 ms
Shanghai, CN 44.57 Mbps 98.55 Mbps 11.79 ms
Singapore, SG 4.43 Mbps 12.94 Mbps 428.94 ms
----------------------------------------------------------------------
Finished in : 7 min 46 sec
Timestamp : 2022-07-06 21:40:17 CST
----------------------------------------------------------------------

&emsp;&emsp;我从最开始建站时用别人的免费主机,再到收费主机,后来到VPS、云服务器,到现在的物理服务器,一步步升级上来都花了8年时间。估计要是以后在升级的话,那就应该是托管服务器了。

给第一次接触服务器系统的视障同学

作者 Armstrong
2023年3月14日 17:40

  相比于十几二十年之前,现在的服务器已经变得非常便宜了,人手一台根本不是啥稀奇事。买服务器是不难,但是买完之后呢?也许会遇到各种坑,甚至会被坏人搞得团团转。不信?请您接着看哈。

  想想看,买服务器的用途是什么?还不是为了运行网站吗?哦对了,QQ 语音的音质贼差,所以,嗯,想要另开炉灶,自己搭建一个语音聊天室,还别说不行哈。啥,要模仿大佬,搞一个酷酷的虚拟局域网,把朋友们都邀请到局域网当中,私下里玩儿一些黑科技?这当然也行,我就是这么干的。所以,服务器真的可以做许多事情。但是,可别高兴太早。刚买到服务器,他就会给您来个下马威。哦对了,为了省力起见,如果您连电脑的基本操作都不会,不懂神马是远程桌面,更不知 SSH 为何物,更重要的,您也不想了解这些破东西到底是何物,那就请您轻点“关闭标签页”按钮吧,以免待会越看越糊涂,一冲动把搂机或者电脑砸了,哈哈哈。

  好了,很高兴您能和我一起踏上这段惊险的旅程。说惊险真不是唬人,弄不好您还真的会把服务器搞垮,但是,俗话说得好啊,失败是成功他妈,所以,只要把成功他妈搞定了,那,嘿嘿。另外我想告诉您,接下来,我们不仅仅会接触 Windows 系统,还会接触 Linux 系统,而且是世界上最前沿的版本哦。

远程桌面咋不声不响的

  如果您买的是 Windows 系统的服务器,这年头最低版本也是 2012 了吧,2008?这是啥上古时代的玩意儿,即使能买到也不建议您买,2008 已经停服两三年了,漏洞早就堆积成山了,而且它还有更坑的问题——音质贼差,还免费附赠水声音效。

  默认情况下,Windows Server 是不会开启音频服务的,解决方法是手动打开。怎么个开法呢?请把分隔线当中的内容复制到一个空白的记事本窗口,然后保存成 .bat 文件(Windows 批处理文件):

————— 我是华丽的分隔线 —————

@echo off
sc config audiosrv start=auto
sc start audiosrv
%systemroot%\system32\narrator.exe

————— 我是华丽的分隔线 —————

  将这个 bat 文件复制到服务器。咋复制呢?
1. 通过远程桌面连接到您的服务器并使用 Ctrl + Alt + Break 键将远程桌面变成窗口模式。
2. 复制刚才保存的 bat 文件。
3. 切换到远程桌面窗口,并使用 Ctrl + Alt + Break 键将窗口变成最大化。
4. 按 Win+R 组合键调出运行对话框,然后按 Esc 键退出运行对话框。
5. 这时,键盘焦点应该停留在桌面上,使用 Ctrl+V 粘贴复制的文件到桌面上。
6. 按该文件的第一个字符,例如文件名是 1.bat,就按一下 1,然后重命名该文件,看看能不能复制文件名。如果能复制,就按 Esc 退出重命名,然后用本地的读屏听一下,正确的话,按回车键,稍等片刻,就能听到讲述人的语音啦。

在 Windows Server 服务器上安装读屏

  在服务器上用讲述人可以完成许多简单操作,当然了,讲述人也有其独到之处,至于是什么?请允许我保留一点神秘色彩。不过,您也许习惯使用 NVDA 或者其他读屏,这时就需要下载安装。那位说了,下载安装这个谁不会啊?我想说,还真不一定。

把读屏软件的安装包复制到服务器

  这个相信您看完上面的章节自然都会,所以也就不必多提了。但是要提醒您一句:从本机复制读屏到服务器需要花费很长时间,在这个过程中不能断开远程桌面会话,否则就要重新复制了。另外,也请您注意查毒,不然服务器感染病毒就热闹喽。

下载读屏软件

在 Windows Server 2019 及之前版本的系统上关闭 IE-ES

  IE-ES 是什么东东呢?IE-ES 是 IE 增强的安全配置。微软自己也知道 IE 跟系统的集成太紧密了,而且这个破东西漏洞还特别多,多如牛毛,还真不是我诋毁的,微软自己都放弃 IE 了。这么多漏洞,在服务器上怎么行?用这破东西上网岂不是分分钟让服务器被入侵啊?所以微软想出了个昏招——限制 IE 的各种功能,这就叫做 IE 增强的安全配置。它限制了什么呢?首先,下载东西您就甭想了,还有 Javascript 也根本无法执行。既然如此,那下载读屏也就成了无稽之谈。

  关闭 IE-ES 的方法是酱紫滴:打开“服务器管理器”,然后按 Tab 找到并打开“配置此本地服务器”。按 Tab 找到“IE 增强的安全配置,设置为 启用”,回车。然后把两个“启用”单选按钮设置成“关闭”,点击“确定”就行了。

常用读屏软件的官方网站

  您也许知道,通过某些搜索引擎寻找软件并不可靠,很可能会被诱导安装许多不需要的软件。我给您常用的读屏软件的官方网站,您进去就知道怎么下载了。

NVDA:https://nvaccess.org/
这是世界上广泛使用的开源读屏软件,名叫“无视觉桌面访问”。国内有爱好者创建了中文社区网站,名叫 NVDA 中文站,网址是:https://www.nvdacn.com/

争渡读屏:https://www.zdsr.com/
这是国内视障者使用最广泛的读屏软件,提供免费的公益版可在服务器上使用。

安装读屏软件的建议

  1. 如果您要安装争渡读屏软件,建议您不要使用快速安装方式,然后在安装向导中,取消“朗读 Windows 登录窗口及安全界面”复选框。如果您已经使用了快速安装选项,也可以在争渡读屏的“欢迎使用 争渡读屏”对话框中取消相应的复选框。一方面它的确没什么作用,还会浪费系统资源,另一方面它可能会大量写入音频设备无法工作的日志到事件日志中。
  2. 如果您安装 NVDA,不建议您“应用以保存的配置到欢迎界面和其他安全界面”,因为插件可能会存在安全问题,导致服务器被入侵。

更改服务器的登录密码

  密码的作用,想必大家都知道。没错,它就和钥匙一样重要,知道服务器管理员密码的人就和拥有了您家的钥匙一样。所以,服务器的管理员密码一定要保护好啦,被别人试出来,您的服务器也就被别人控制啦。避免密码泄露的方法是不定期修改它。要设置什么样的密码呢?生日能不能用作密码呢?我觉得可以。要把生日作为密码,可以在数字之间加上字母符号等。对于试图破解密码的人来说,这串密码没什么规律,但是对于您而言它是有规可循的。

在 Windows 上

  以 Windows Server 2022 为例。在服务器远程桌面连接中,按下 Ctrl+Alt+End(如果是直接在服务器跟前操作,则是 Ctrl+Alt+Del。在出现的“Windows 安全”窗口中,点击“更改密码”。好了,后面的步骤我不说,同学们也都懂了。

在 Linux 上

  在 Linux 上更改密码,只需要使用 passwd 命令。执行完该命令以后,系统就会要求输入 New password(新密码),Retype New Password(再次输入新密码),最后,系统会提示“passwd: password updated successfully)已成功更新密码)”或者“passwd: all authentication tokens updated successfully.(已更新所有身份验证令牌)”。

熟悉服务器的防火墙

  您知道门卫这个角色吗?没错,门卫就是在大楼或者小区的入口处,管理进入大楼或者小区的人。门卫看到居住在小区的人进入小区时,会放行,而不属于小区的人进入时,门卫就会询问,或者拒绝进入。服务器上的防火墙也是干这个的,当然,一些对安全性要求较高的服务器,防火墙会管理从服务器出去的连接。

  云服务器厂商通常会在机房处设置防火墙,您也可以使用系统的防火墙。机房的防火墙就好像小区门的门卫,只管理进出小区的人,而不管小区里面串门的人。而系统防火墙就像您家门的监控系统一样,作用是管理进出您的服务器的连接。毕竟谁也不敢保证小区里的居民都是良民对吧哈哈。当然了,现在的云服务器厂商也提供针对服务器本身的防火墙了,能实现的功能和系统的防火墙差不多。

  防火墙在服务器上的作用,说一个场景您也许就明白了。您买了一台服务器,用来跑您的个人网站,这个网站需要数据库。网站程序可以连接数据库,那其他人照样也可以。对于您来说,您希望其他人可以浏览您的网站,而并不希望他们可以直接连接到数据库,一方面确实也没必要,另一方面会有安全问题。这样,您就可以通过防火墙来阻止其他人访问您的数据库,只允许他们访问您的网站。

  话又说回来,怎么区分网站和数据库呢?告诉您哈,有个东东叫做端口。不用怀疑,每一个网络程序,都会打开端口,否则它根本不能通过网络接收和发送数据。端口是用数字来表示的,常用的端口都被写入了网络相关的标准中,否则就会各自为政,互联网的运转也就无从谈起。网站服务器通常使用 80 和 443 端口,数据库服务器通常使用 3306 端口,而远程管理服务器的 SSH 协议用的是 22 端口,Windows 远程桌面用的是 3389 端口。哦,明白了,是不是只要用防火墙阻止别人连接 3306 端口,就能达到阻止连接数据库的目的呢?是的!就是这样。

云服务商提供的防火墙

  大型的云服务器厂商都会在机房处设置防火墙,也会提供基本的服务器防火墙,咱们可以先不管机房的防火墙。有的厂商将其称之为安全组,有的厂商将其称之为防火墙,或者 Firewall 等。这些基本的防火墙,都能达到上面所说的,屏蔽访问数据库端口的目的。每个厂商的防火墙的设置方法不尽相同,这篇文章只做抛砖引玉,所以也就不展开了哈。

系统自带的防火墙

  不是所有云服务商都会提供防火墙,或者云服务商的防火墙不方便视障同学操作,这时就需要用到系统自带的防火墙了。不同的系统,自带的防火墙也不一样,但都能满足上面提到的,防止访问数据库端口的需要。例如 Windows 系统下的防火墙叫做 Windows Defender 防火墙;Linux 下的防火墙叫做 iptables 或者 nftables,为了方便使用,人们又在 iptables 和 nftables 的基础上,开发出了命令行接口,例如 firewalld 和 ufw 等。

设置防火墙规则的习惯

  设置防火墙时,对于进入服务器的连接,我们通常采用白名单模式,对于从服务器出去的连接,我们通常采用黑名单模式。当然了,对安全性要求很高的服务器,从服务器出去的连接也会采用白名单模式。专业地说,进入服务器的连接称之为入栈连接,从服务器出去的连接称之为出栈连接。反过来设置可以吗?你真调皮,从技术上讲肯定是可以的,但是从日常使用的角度来说,这样做是不是有点另类了?

Windows Defender 防火墙放行或取消放行端口的方法

第一步、打开“服务器管理器”,然后打开“工具”菜单(Alt + T),并点击“高级安全 Windows Defender 防火墙”。
第二步、找到树视图的“入站规则”,打开菜单,点击“新建规则”。
第三步、在“新建入站规则向导”,可以选择按程序、端口、预定义规则来创建允许入栈的规则,也可以选择“自定义”,进行更细致的配置。要选择“自定义”,需要用上光标,或者快捷键 Alt+C。假如我们要开放网站服务器,可以选择“预定义”,然后在下拉列表中选择“万维网服务 (HTTP)”,并点击“下一步”。
第四步、在“规则”列表中,选中所有的规则,然后点击“下一步”。
第五步、选择是“允许连接”、“允许安全连接”或者“阻止连接”。默认是“允许连接”,这或许也是您创建这条规则的用意吧?选择好之后,点击“完成”。

  如果要取消放行某个端口,回到“高级安全 Windows Defender 防火墙”,然后点击“入站规则”。在右侧列表中,找到想要停用的规则,例如“万维网服务(HTTP 流量入站)”,打开它的菜单。点击“禁用规则”。假如将来再也不需要这条规则了,只需要找到这条规则,然后按 Delete 键,即可删除该规则。

注意:Windows Defender 防火墙是个非常复杂的防火墙系统,仅仅删除规则,并不一定导致防火墙阻止该端口。要彻底阻止某个端口,可以创建一条拒绝规则。

Linux 系统防火墙放行或取消放行端口的方法

firewalld 防火墙

  firewalld 防火墙也可以按照服务或者端口号来放行端口,要放行某个服务对应的端口,使用

firewall-cmd –add-service=http

firewall-cmd –permanent –add-service=http

  也许您会觉得奇怪,为什么放行 http 服务需要使用两条命令呢?第一条命令是修改运行时的防火墙状态,第二条命令是修改防火墙配置文件,让设置永久有效。

  要取消放行某个服务,使用

firewall-cmd –remove-service=http

firewall-cmd –permanent –remove-service=http

  要放行或者取消某个端口,使用

firewall-cmd –add-port=443/tcp

firewall-cmd –permanent –add-port=443/tcp

您发现了吗?放行端口和放行服务,命令是如此的相似。而后面的 tcp 表示 tcp 协议,相对应的还有 udp 协议。

ufw 防火墙

  ufw 防火墙相比于 firewalld 防火墙而言更轻量,命令也更人性化。当然,每个防火墙都有其独到之处,并没有绝对的优劣之分哈,别吵起来了哦。

  要放行某个端口或者服务,只需要按照下面的格式填写即可:

ufw allow 80

或者

ufw allow http

如果是要取消呢?只要在 allow 之前加上 delete 即可,表示“取消允许”,就像这样:

ufw delete allow http

或者

ufw delete allow 80

安装防火墙

  不是所有的云服务商都会为服务器安装防火墙,这时,就需要手动安装防火墙了。由于安装 firewalld 可能会导致 SSH 端口被意外关闭,这里只跟大家介绍如何安装 ufw 防火墙,别说我抠门啊啊啊。

  如果使用的是 Red Hat Enterprise Linux、CentOS、Rocky Linux、Alma Linux,可以使用 dnf install ufw 来安装 ufw 防火墙。

  如果使用的是 Debian、Ubuntu 或者 Kali Linux 系统,可以使用 apt install ufw 来安装 ufw 防火墙。

  ufw 防火墙安装后,需要先将 SSH 端口加入防火墙的允许列表当中,然后才可以启动防火墙,否则,嘿嘿,把自己锁在外面的感觉是不是很美好?命令是:ufw allow ssh 或者 ufw allow 22。最后,使用 ufw enable 启用防火墙。

我一登录系统就看到有数千次登录失败的记录,很烦

  您看到这种现象,就表示有许多人在疯狂猜测您的服务器密码。这些攻击者是通过默认的远程管理端口猜测密码的。啥叫远程管理端口呀?这么说吧,您登录 Windows 服务器都会用“远程桌面”对吧,再比如,您登录 Linux,都会用到 SSH 对吗?这两个东东开放的端口,统称为“管理端口”。前面咱们说过了哈,常见的端口,都被写入到了互联网相关的标准当中,比如远程桌面是 3389,SSH 是 22 等。网上的攻击者经常使用一些端口扫描工具来扫描互联网上开放远程管理端口的主机,如果又碰到没好好设置密码的服务器,呱唧,一只肉鸡就这样诞生啦!呱唧,又一只肉鸡被抓啦!啥叫抓肉鸡?简单说就是被攻击者非法控制的电脑,这种电脑会听从攻击者的指挥,就好像砧板上的肉鸡一样任人宰割。

  不过您也不用担心,只要改掉端口,就能避免许多撒网式的攻击,咋改呢?

对于 Windows 远程桌面

  按 Win+X 打开小开始菜单,打开“Windows Powershell (管理员)”,然后复制下面的文本,到 Windows Powershell 执行。这里的 17134 是目标端口号,您可以修改成 1024 到 65534 之间的任意端口,但最好在 10000 以上,以避免冲突:

————— 我是华丽的分隔线 —————

$portvalue = 17134

Set-ItemProperty -Path ‘HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp’ -name “PortNumber” -Value $portvalue

New-NetFirewallRule -DisplayName ‘RDPPORTLatest-TCP-In’ -Profile ‘Public’,’Private’,’Domain’ -Direction Inbound -Action Allow -Protocol TCP -LocalPort $portvalue

New-NetFirewallRule -DisplayName ‘RDPPORTLatest-UDP-In’ -Profile ‘Public’,’Private’,’Domain’ -Direction Inbound -Action Allow -Protocol UDP -LocalPort $portvalue

————— 我是华丽的分隔线 —————

小提示:上面的指令,把远程桌面的侦听端口号修改为 17134,并在 Windows 防火墙中放行修改后的端口。但是,如果云服务商为服务器提供了防火墙,也需要在云服务商的防火墙上放行修改后的端口,要放行 Tcp 和 Udp 协议,否则,您依然会被锁在外面。

  为了万无一失,咱们最好去高级安全 Windows Defender 防火墙查看一下端口是否已被放行。别看都不看直接告诉我已经放行了,被锁在外面别哭着闹着找妈妈,妈妈来了也救不了你,只会打你的小屁屁哦嘿嘿嘿。打开“高级安全 Windows Defender 防火墙”,然后找到“入栈”,看看里面是否有 RDPPORTLatest-TCP-InRDPPORTLatest-UDP-In 这两条规则,并且端口号和操作都是正确的。

  为了让修改生效,需要重新启动 Windows 服务器。

对于 Linux 的 SSH

  Linux 相比于 Windows 更灵活一些,比如 SSH 服务器可以同时监听不止一个端口,这样可以减少被妈妈打屁股的可能,但如果你粗手粗脚,妈妈还是会打屁股的哦嘿嘿嘿。对了,啥叫“监听”呢?是不是服务器上总是有东西在监听隐私信息呢?不是的哦,所谓的监听,指的是某个程序在等候连接,就好像有人坐在那里,您进了他的门,他就会热情地跟你打招呼,为您提供服务。远程桌面的 3389、网站服务器的 443 都属于“监听”端口,开放在那里等待客户端连接。那 ssh 和 sshd 是啥关系呀?在 Linux 世界里,凡是后面带有“d”的,都表示守护程序。您可以把守护程序理解成服务,它静静的守候在那里,等待人们使用。ssh 是客户端,而 sshd 是服务端。

  要修改 SSH 的监听端口,需要编辑 /etc/ssh/sshd_config 文件。打开 sshd_config 文件后,我们来寻找 Port 22 这一条配置。注意了哈,某一行开头的“#)警号)”表示注释,也就是说,带有“#”的那一行会被系统忽略。看到了吗?Port 22 前面有一个警号,那么 SSH 为什么还会监听 22 端口呢?这是因为,SSH 在没有配置的情况下,默认是监听 22 端口的,还要问为什么,我只能回答,这是 SSH 与生俱来的特性哈哈。

能不能直接改成我们想要的端口呢?可以,但不建议小萌新这样做,因为小萌新可能会犯一些低级错误,导致 SSH 彻底罢工。硬要直接修改,别出问题哈,出了问题被妈妈打屁股了可就别怪我枚提醒了哦。刚才提到,SSH 默认监听 22 端口,如果我们在配置文件指定了监听端口,它就不会监听默认端口了。所以,我们把 Port 前面的注释去掉,也就是删除“#”,让 SSH 继续监听 22 端口。

复制 Port 22,另开一行,然后粘贴,并将数值修改成想要的端口号,比如 17134。修改后,保存 sshd_config 文件。

我们来在防火墙增加一条规则,放行修改后的 ssh 端口。还记得命令吗?我就知道你们很健忘哈哈哈:

对于 firewalld 防火墙,命令是:

firewall-cmd –add-port=17134/tcp

firewall-cmd –permanent –add-port=17134/tcp

对于 ufw 防火墙,命令是:

ufw allow 17134

ufw reload

对了,17134 是我使用的端口号,您可以自由发挥,1024 到 65534 之间的端口任您选,最好选择大于 10000 的端口号,这样可以降低冲突的概率。放行端口后,使用 systemctl restart sshd 命令重新启动 sshd 服务,这样就能让修改生效了,是不是比 Windows 修改远程桌面端口简单多啦!

如果云服务商为服务器提供了防火墙,也要在云服务商的防火墙那里,放行修改后的端口,否则您将无法连接到修改后的端口。

修改完后,尝试连接新的端口号,如果成功,就可以关闭 22 端口了。方法是:重新给 sshd_config 中的 Port 22 加上注释,然后保存 sshd_config,最后重启 sshd 服务。当然了,您也可以取消防火墙里的规则,让防火墙不放行 22 端口,以免啥时候升级了系统,不小心在 sshd_config 配置文件里把 22 端口打开了。

  那如果修改不成功呢?排除了自己的原因,无外乎就是 selinux 的问题了,这个问题有点复杂,加之也比较少见,这里就不展开说了,别打我!

SSH 的密码太难记了,有什么好办法吗

  您登录 Linux 服务器时,都是通过 SSH 协议,以及用户名和密码。不得不说,密码真是一种糟糕的东西,要安全那就别想太短,要好输入就别想不会被攻击者猜中。有没有办法解决这种问题呢?聪明的电脑专家早已解决了问题,那就是密钥认证。简单说,就是把密码换成密钥,而密钥是存放在文件里面的。

  用来作为身份验证的密钥是成对的,由客户端上的私钥和服务器上的公钥组成,两把钥匙对上了,就能通过身份验证,至于其中的工作原理就不展开了哈。为了保护私钥,可以给私钥设置密码,但如果您觉得自己的电脑很安全,也可以不设置。如何创建密钥呢?

在 Windows 10 上生成密钥

第一步、确认系统版本,只有 Windows 10 Build 1809 和 Windows Server 2019 及更高版本才内置 ssh 客户端。
第二步、打开 cmd,然后执行:ssh-keygen
第三步、系统提示“Generating public/private rsa key pair.”,下一行是“Enter file in which to save the key”,这是保存 ssh 密钥的路径,默认保存在 %userprofile%.ssh 文件夹,名为 id_rsa,如果不需要修改就按回车键。
第四步、提示“Enter passphrase (empty for no passphrase)”,这里是设置 ssh 私钥的密码,如果不需要设置,请直接按回车键。
第五步、“Enter same passphrase again”,这里是要重新输入刚才输入的密码,输入完成后,按回车键。
第六步、系统会显示生成密钥的结果,密钥保存的文件名,以及密钥的指纹。确认无误,关掉 cmd 窗口。

注意:请把密钥保存在安全的地方,一旦丢失,就无法登录服务器了。

将公钥上传到服务器

  刚才,我们生成了一对密钥,现在来把公钥上传到服务器。别弄错了,是公钥,不是私钥哈。用习惯的方法,登录到 Linux 服务器,然后打开用户的主目录。如果是以 root 账号登录的,就打开 /root 目录,否则就请打开 /home/用户名目录。

  创建一个名为“.ssh”的目录,然后将生成的 id_rsa.pub 上传到该目录,改名为“authorized_keys”。这还没完,还需要设置 .ssh 目录的权限。使用下面两条命令来设置 .ssh 目录及 authorized_keys 文件的权限:

chmod 0700 ~/.ssh

chmod 0600 ~/.ssh/authorized_keys

那位问了,如果不设置权限会怎样呢?一些 sshd 服务器可能会直接拒绝该公钥文件,这样就没法用密钥登录服务器啦。

  公钥文件放好了,权限也设好了,下一步咱们需要确认一下 sshd_config 中的几个设置,为了让公钥登录正常工作,下面的参数和值要完全匹配,而且还不能加了注释哦,但是,多个空格不影响,但不能没有空格哈哈:

PubkeyAuthentication yes

如果修改了配置文件,请使用 systemctl restart sshd 重新启动 sshd 服务。现在就可以在客户端上使用私钥登录了。

使用生成的密钥登录 ssh 服务器

  服务器上的公钥被搞定了,我们就可以在客户端上,使用密钥登录服务器啦。如果习惯于 WinSCP,请使用 PuTTYGen 程序来把 OpenSSH 密钥转换成 PuTTY 使用的密钥。方法是,用 PuTTY Key Generator 打开 id_rsa 文件,然后点击“Save private key”按钮。在 WinSCP 的站点列表选择服务器,然后点击“编辑”,点击“高级”。切换到 SSH 下的“身份验证”标签页,然后点击“私钥文件”下面的“…(三个点)”按钮,浏览到保存的 ppk 文件。

如果习惯使用 ssh 命令,请使用 -i 参数来指定私钥文件的路径。例如:ssh -i D:/ssh_privkey/contoso.key -p 17134 root@contoso.com

如果没有为私钥设置密码,输入上面的命令,就会直接登录到服务器。第一次登录会看到是否信任服务器的提示,输入 yes 并按回车后,今后除非服务器的身份发生变化,否则都不会看到该提示了。如果您为私钥设置了密码,就在提示输入密码时,输入私钥的密码。如果登录没有成功,就尝试输入服务器账号的密码。

注意:如果只能使用账号的密码登录服务器,而不能用密钥登录服务器,就请仔细检查前面的操作步骤是否有问题。请您不要在无法使用密钥登录的情况下关掉密码登录,那时候就登陆不了了。

至于 WinSCP 的操作,您这么聪明的相信一看到提示就会,也就不需要我多说了哈。

完全禁用密码登录 SSH 服务器

  顺利通过密钥登录服务器后,就可以放心的禁止通过密码登录 SSH 了。禁用密码登录之前,请您再次确认已经备份好 ssh 私钥文件,一旦弄丢,您就登陆不了服务器了。

  打开 sshd_config 文件,将 PermitRootLogin 设为 prohibit-password,一定要记得取消注释哦。然后再将 PasswordAuthentication 改成 no,还是要取消注释。修改完成,保存文件,重启 sshd 服务使之生效。

  重启 ssh 服务后,请尝试通过密码登录服务器,而非密钥。如果登录失败,就表示修改成功。现在,您的服务器变得更安全了!

我操作 SSH 时经常会莫名其妙断开,还会丢失操作进度

  不知道您有没有体验过,通过 SSH 操作服务器时,连接突然坏掉,之前的工作前功尽弃,在升级系统的时候如果遇到这种情况,那系统可能就坏掉了。要改善网络连接的可靠性几乎是不可能的,毕竟变数太多了,那有什么办法让程序在连接断开后不被打断吗?有的,请使用 screen。

  screen 是一种保持会话的好东东,在 screen 中运行的程序,无论是 SSH 连接中断,还是执行了 logout 命令,运行在 screen 中的程序都不会中断。把服务器关机了,或者干脆把它的插头拔了,会断吗?嘿嘿,你真调皮。

在 Red Hat Enterprise Linux、CentOS、Rocky Linux 及 Alma Linux 系统上安装 screen

  这类系统的软件仓库默认不带 screen,而是由 epel 软件仓库提供。啥是仓库呢?如果您用过“应用商店”或者“Microsoft Store”,就不难理解了,其实您也可以把软件仓库理解成 Linux 系统的应用商店。

使用下面的命令安装 epel 仓库和 screen:

dnf install -y epel

dnf -y install screen

在 Debian、Ubuntu 和 Kali Linux 系统上安装 screen

  在 Debian 系统上安装 screen 只需要如下两条命令:

apt update

apt -y install screen

使用 screen

  本质上,screen 是命令行程序,因此它有许多的命令行参数。要用来防止程序被网络问题打断,只需要如下几个命令行参数即可:

screen -s bash -R my
连接到已经断开的会话,如果没有该会话,就创建一个。

screen -d my
强制断开会话。有时,网络中断后,screen 的会话还是连接状态。如果您使用 screen -s bash -R my 不能连接到意外断开的会话,就请先用这个命令强行断开,然后再尝试使用 screen -s bash -R my。但如果提示 There is no screen to be detached matching my. 就表示的确没有会话,可能是服务器重启了。

想要退出 screen 会话,只需要使用 exit 命令即可。

让系统保持最新

  您成长的过程中会学习到许多新知识,或者学会更多保护自己的方法。操作系统也不例外,在操作系统的生命周期里,它的开发单位会定期推出更新,带来新功能或者修复漏洞。您需要让操作系统保持最新来获得最新功能,并抵御针对系统漏洞的攻击。

对于 Windows 系统

  要为 Windows Server 系统检查更新,请打开“开始”,点击“设置”,然后点击“更新和安全”,点击“Windows 更新”。点击“检查更新”按钮,系统就会自动从微软的服务器检查可用的更新,然后下载到服务器上。检查到更新后,点击“立即安装”来安装到服务器上。有些更新会要求重新启动系统,您需要听从系统的建议,重新启动您的服务器。

对于 Red Hat Enterprise Linux、CentOS、AlmaLinux 或 Rocky Linux 系统

  为了防止网络中断导致安装更新出现问题,在检查更新之前,启动 screen 会话。执行 dnf update 命令来检查更新。当检查到更新后,系统会询问您是否需要安装,请输入 y,然后按回车键。

  安装更新后,有时需要重新启动系统,如果您给 Windows 安装过更新就不难理解了,其实 Linux 也是一样的。怎么判断要不要重启系统呢?请执行 needs-restarting -r。如果需要重启系统,它会提示“Reboot is required”。如果确定不需要重新启动系统,请执行 needs-restarting -s 检查需要重启哪些服务,然后通过 systemctl restart service1 service2 … 命令重启列出的服务即可。

对于 Debian、Ubuntu 及 Kali Linux 系统

  为了防止网络中断导致安装更新出现问题,在检查更新之前,启动 screen 会话。执行 apt update 命令来检查更新。当检查到更新后,命令行的最后一行是“数字 packages can be upgraded.”就表示有软件包可以更新,而如果是“All packages are up to date.”就表示所有软件包都是最新的。

  要更新软件包,执行 apt upgrade,系统会列出需要更新的软件包,同意请输入 y,然后按回车键,耐心等待系统更新。

  更新完成后,来检查要不要重启系统才能让更新生效,怎么检查呢?执行 needrestart 命令。如果没有这个命令,就用 apt -y install needrestart 命令安装它。

  执行 needrestart 后,如果提示“Newer kernel available”,就需要重新启动系统,按回车键确认。按回车键后,如果提示“Which services should be restarted?”就表示有服务需要重新启动,再按一次回车键就会重新启动服务。执行完 needrestart 后,最后一条输出是“No user sessions are running outdated binaries.”就表示不需要做任何事情。

Windows Server 的远程桌面为什么会吱吱响

  Windows 远程桌面的音频比特率会动态调整,这非常有利于节约带宽,但是也会带来爆音的问题,如果您经常通过远程桌面工作,这种爆音时间长了可能会影响您的听力。

在服务器上

  在 Windows Server 服务器上,打开组策略,定位到计算机配置\管理模板\Windows 组件\远程桌面服务\远程桌面会话主机\设备和资源重定向,打开“限制音频播放质量”。

将策略改为“已启用”,然后将“音频质量”组合框设为“高”。点击“确定”,然后关闭组策略编辑器,按 Alt+F4,选择“注销”并点击“确定”。

在客户端上

  用“记事本”打开您的远程桌面连接文件(RDP 格式),如果您是通过远程桌面客户端,输入服务器的 IP 地址或者域名来连接到服务器,就请先断开所有远程桌面连接,然后用记事本打开“文档”下的 default.rdp 文件。

在文件末尾,增加:

audioqualitymode:i:2

保存该文件,重新连接到服务器。

温馨提示:将 audioqualitymode:i:2 改成 audioqualitymode:i:1 可以节约带宽,但是声音会变成单声道。

断开远程桌面后让 NVDA 远程插件保持可用

  也许您想断开远程桌面,但是又要通过 NVDA 远程控制您的服务器,如何做呢?先提醒一句,这种做法有一定的风险,任何可以操作服务器控制台会话的人都能操作您的服务器。这么说吧,这就有点类似您的电脑没有锁定屏幕。如果您愿意承担这种风险,就请继续:

您可以把下面的文本复制到一个 .bat 文件中,运行即可。

tscon %sessionname% /dest:console

启动 NVDA,连接远程,然后运行您保存的批处理文件。远程桌面客户端会提示您“有其他用户连接到会话”,这就表示您的会话已经被推到控制台,您可以继续通过 NVDA 远程来操作您的服务器。

但是,推到控制台后,服务器的分辨率会发生变化,通常会变成 1024 X 768,这会影响窗口的布局等。

总结

  感谢您陪我走完了这段旅程,在经过启用声音服务、设置密码、更改管理端口、更新系统到最新以及改善远程桌面音质后,您的服务器现在更安全,更好用了。尽情享受吧!

复活一台直播导播机

作者 夜枫's
2023年3月17日 23:38

我又开始折腾设备了。

部门一台直播用的导播机一体机,离奇损坏,打算放弃治疗的时候,找到结症,购买更换配件后再次复活。

修复好的导播机,可以正常使用了

这是台2017年采购的直播导播一体机,在今年元月份测试设备时,正常使用,突然断电关机了,我以为同事不小心碰到插排,没当一回事儿,过了一会儿我准备从导播机拷贝一些资料时,发现再也无法开机了。随后更换线缆,开膛破肚子,发现主板上的氛围灯亮着,不知是什么组件损坏,自此宣告设备已罢工。

导播机的主板 ,败家之眼的 Z270  + i7 7700k  + 32G DDR4

过了许久许久,有天中午闲来无事,又把导播机搬出来研究研究,螺丝刀开膛破肚,拆出主板研究研究,看看值不值得挽救它。从机房犄角旮旯里找出一块ITX电源,插主板上,短接主板开机针脚,离奇居然风扇开始转了,自此,结症锁定在电源之上,经过更换部件测试,电源宣告报废。

工控机、防火墙、AC专用的1U电源,功率为500w,全汉的电源工控机里比较常见

因为这导播机机箱属于特种机箱,里面采用的电源是1U的加大版FLEX电源,尺寸220×100×40,也算是属于特种电源。淘宝找了找居然真有,同款同型号,遂下单买之。

安装好主板、电源,这个机箱安装真的麻烦,螺丝超级多,空间超级小

等了差不多三四天就收到货,找了不闲不忙的中午,又把设备搬出来拆散,安装新电源测试测试。

在安装显卡的时候又遇到新问题了,电源提供的12V是4P+4P的,二显卡是6P,这时候需要改造电源线。

两个电源线极性刚好是反着的,问题是居然可以插进显卡电源口,离谱!

离谱的事情出现了,我以为只要电源能插进去显卡,就是可以用的,我把4P+4P的电源线,去掉其中4P中的2P,那么和另外一个4P可以组合成6P,遂行动,小刀慢慢操作,多于的线电工胶带保护起来……

正在我得意洋洋的通电测试的时候……插电开机,嗯?没反应??怎么回事???研究了老半天,拔掉显卡,嗯?可以正常开机?难道显卡有问题,就在我前思后想的时候,我找到旧电源的6P短线,对比来对比去,发现两个电源头是反着的,也就是说,我刚才自己组合6P线的正负极是反的,显卡的+12V接到GND上了,这直接大短路啊!突然感觉后脑勺微微凉,这下算是凉凉了,显卡基本被干报废了。

到了最后,不肯放弃,死马权当活马医,直接按照6P短线的颜色接法,黄色接黄色,黑色接黑色,上焊接大法!剥皮上锡分分钟钟一套下来就焊好了,电工胶带一缠,完活!

焊接好电源线,准备插电开机……

心存侥幸,继续插上显卡,显卡插上焊接好的电源线,插电!开机!一套操作行云流水。显示器出画面了,我差点激动到流涕。原来,电源是有保护功能的,一旦检测到短路,就自动停止输出,保护起来了。

电源安装反了,导致侧盖安装不上去……emo了

至此,插好直播专用的采集卡,安装好硬盘,整理下线路,盒盖,合侧盖,嗯??完蛋电源装反了,但来不及了,电源安装特费劲,又得把所有的拆下来,才能取电源,算了,改日再说,现在不影响使用。

对了,直播机是2017年配的,CPU为i7-7700k,显卡原本为1080Ti,被我替换到我的工作站上了继续服役了,导播机换成了我工作站的NVIDIA Quadro K4200图形卡了,内存为32G DDR4,就这配置在2017年算是超强顶配吧!

导播软件用的Vmix,真心好用,屡用屡爽,安全稳定。OBS相对与Vmix来说功能和易用性差的不是一星半点的。

将博客减法进行到底!

作者 老张
2023年12月2日 01:41
将博客减法进行到底! - 第1张图片

将博客减法进行到底

今天在设置主题的时候,再次看了博客的第一篇文章,还是2009年10月9日,其实博客最早应该还在2007年,只不过因为那个时候对“数据”的重要性认识不到位,丢了就丢了吧,感觉到无所谓。满打满算,搞博客也十六年了,十六年,也没有做成点成绩来。

我相信每个人都是这样,才接触一件全新的事物时都会对它做加法。当热度过后或是时间久了,就会对该事物进行做减法。那这十六年的时间里,我也是开始对博客大量的做加法,现在也要不断的做减法。

域名做减少

2007年才开始做博客的时候,没有“服务器”、“VPS”,基本上都是“空间”,最简单的就是你付款之后,空间商给你一个FTP账号,而绑定域名之类的操作都是空间商操作。慢慢的发展到有“空间管理面板”,可以自己绑定域名、建数据库了。那个时候你能做的加法也就只有域名了。我在《细数我所拥有过的域名》对我曾经拥有过的域名进行过“完美的回忆”。这些域名不是用来炒的,是真正的做站的。到目前手里的域名还有三个,前面时间到期一个没有续费,而其他即将到期也不准备续费了,只想保留目前使用的laozhang.org。

VPS服务器做减少

其实对博客做减法对于我来说,也是个老生常谈的事了,在2021年12月6号的时候,就在《VPS、域名,该丢的就得要丢了!》说过将对VPS、域名做减少。这两年,VPS的持有算是稳定,基本上是一个主力做网站,另外一个配置同样的环境搞折腾,当折腾某样东西稳定之后,再搬到主力VPS上。两台VPS,每年的消费三百元左右。想想有次买了990一年的VPS,真的是太作了。也就是那年,配了1330一年的域名,光一台VPS加一个域名一年就是2200,真的是败家。

网站做减少

域名的的减法做了、服务器的减少做了,那不需要费钱而需要费神的网站减法也得要做一做。搞博客的人是不是都有着“人有我有、人无我有”的想法呀!当初是为了体验Typecho,用zhangsir.com建了个随笔;当初看非人类论坛程序不错,也用修罗程序搭了个iboge.com论坛,结果买了商业主题,钱是花了,一点流量也没有;当初看小胡同学的博客导航不错,买了商业主题一为导航做了wboge.com,做好之后自己都懒得上;当初,太多的当初了。每有一个“当初”,就会花大量的时间和精神去折腾,到头来只能做减法给减掉。

主题做减法

最后来给主题也做一个减法吧!博客期初,每位Blogger都想给自己的博客找一个高端、大气、上档次的主题,找到主题之后再进行各种各样的美化。美化之后感觉还不过瘾,再对原主题进行各种各样的“魔改”。最为常见会博客加上音乐的、评论输入框搞个下雪特效、鼠标点击冒泡效果、页面底部有个小美女在跳舞的,等等等等。殊不知你做的这些所谓的美化、魔改,大大降低了用户体验。适当美化增加用户体验,而过渡美化会得不偿失!就拿背景音乐来说,如果是轻音乐可能还能接受,不少人搞一些流行歌曲做背景音乐。这首歌你是喜欢,你能保证其他人都喜欢嘛。

知更鸟主题已经过了好多年了,这次网站搬到低配版的CC上之后,不知道是主题原因还是我的网站环境配置原因,只要使用知更鸟的主题服务器负载就过高。不过也借着这个机会,再次对主题做个减法。小胡同学在用的主题清爽简洁,便直接找他要了过来。虽然目前的主题没有知更鸟主题“漂亮”,但是换过之后大家都说这款主题更像个人博客主题了。

博客主题,不是给你一个人看的,一定要考虑到博友们的“用户体验”。你说好不算好,大家说好才算真的好。

文章分类做减法

建博客初,我的文章大分类就有十来种,而每个大分类下面又会有十几个小分类。比如WordPress这个大的文章分类下面,会设置有主题、插件、美化、技巧、优化等等等。经过长时间的观察发现,分类越细的博客,博客里面的文章原创的非常的少,基本上都是转载他人的。试想一下也知道,有哪位神人可以涉及到那面全面的领域呢。对于个人博客,两三个分类基本足够了!

最后告诫大家:博客的减法还是需要做的,否则,你懂的,费钱伤神!

❌
❌