Giter Club home page Giter Club logo

colinx-blog's Introduction

colinx-blog's People

Contributors

colin-xkl avatar colinsheppard10 avatar dependabot[bot] avatar github-actions[bot] avatar

Stargazers

 avatar  avatar

colinx-blog's Issues

一次成功的网络优化 & 吐槽国内糟糕的网络环境 :: Colinx Blog — Colin的个人博客

https://blog.colinx.one/posts/%E4%B8%80%E6%AC%A1%E6%88%90%E5%8A%9F%E7%9A%84%E7%BD%91%E7%BB%9C%E4%BC%98%E5%8C%96-%E5%90%90%E6%A7%BD%E5%9B%BD%E5%86%85%E7%B3%9F%E7%B3%95%E7%9A%84%E7%BD%91%E7%BB%9C%E7%8E%AF%E5%A2%83/

在内网的树莓派上部署了 AdGuardHome,做 DNS 服务器的同时,也可以为内网所有设备过滤广告。本来嘛拦截了广告理应网络加载会更快,然而实际体验却很糟糕。网页加载要比之前慢得多。AdGuardHome 的面板显示的平均反应时间一度达到了 1000ms。1s 的延时还是会非常影响网络体验的。用 dig 命令看了下 DNS 查询的情况。不看不知道一看吓一跳,随便查询一个域名竟然废了四秒多!这怎么能忍受!
看网上其他人的评价,并没有我这种龟速的情况。况且我的上游 DNS 已经更换为了国内几个大厂的 DNS 比如阿里的腾讯的,测试查询一般反应时间也才 50ms。本地这个结果肯定是不能接受的。最开始还想过要根据常用域名手动制作 hosts 直接重定向。但是 dnspython 这个库不好直接指定 dns 查询,adguardhome 的 query 日志又经过特殊加密,这条路困难重重。决定将其作为备用方案。接下来进入漫长的排雷环节。
首先考虑上游 DNS 中设置了谷歌等国外的 DNS,某些情况下会比国内的 DNS 慢。但是即便只留了一个阿里的 DNS,反应速度还是在秒级。
接下来定位过滤器,开了五六个过滤器,按理说查询 DNS 前会先读取本地的过滤器以寻找匹配项,过滤规则一多自然会反应迟钝。禁用了一个默认的 30k 条规则的配置,速度有那么一点提升,但还是在 1s 以上,完全不能接收。这跟平时用阿里 DNS 差了几个数量级啊。
后来发现了这货:
原来,他会把每次查询的域名先交给他服务器做安全性检查,这在国内的互联网环境中完全是鸡肋,而且因为每次都要连接境外服务器,其延迟可想而知。果然禁用了这一项,速度嗖嗖的就起来了:
即便是冷门的实验室官网的域名,也在 100ms 内解决了,对于常见的热门网站由于多设备频繁访问,会直接查询本地缓存。虽然基本只有可怜的差不多 60s 的缓存时间,但是一旦命中,就可以在 < 10ms 的时间响应。如果是过滤器中的域名,更是可以达到 < 5ms。终于,这个 AdGuard Home DNS 可以正式投入使用了。

JAMStack初体验 - 基于 Pocket 和 Gatsby 构建你的「网络日志」 :: Colinx Blog — Colin的个人博客

https://blog.colinx.one/posts/jamstack%E5%88%9D%E4%BD%93%E9%AA%8C-%E5%9F%BA%E4%BA%8Epocket-%E5%92%8C-gatsby-%E6%9E%84%E5%BB%BA%E4%BD%A0%E7%9A%84%E7%BD%91%E7%BB%9C%E6%97%A5%E5%BF%97/

JAMStack初体验 - 基于Pocket 和 Gatsby 构建你的「网络日志」 折腾了自己的专属RSS信息流,每天都能从那些高质量的信息源中获得不少干货知识,一般就会顺手收藏一下。有一天突然想起自己收藏的那些文章,本身不就是经过二次筛选的高质量文章吗?于是便在构想能不能通过某种方式将这个信息源也公开出来,一方面是记录,另一方面也是间接地展示自己。恰逢遇见JAMStack,最近在国外非常火,国内的阿里和腾讯也在跟进,搞静态托管那一套。经多方物色,最终确定基于Pocket API+Gatsby来构建这样一个自己的「网络日志」。
You are what you read.
简谈JAMStack JAMStack 即基于客户端 JavaScript,可重用 API 和预先构建 Markup 的现代 Web 开发架构。当我们谈论 “堆栈” 时,我们不再谈论操作系统,特定 Web JAMStack 与特定技术无关。这是一种构建网站和应用程序的新方法,可提供更好的性能,更高的安全性,更低的扩展成本以及更好的开发人员体验。
JAMStack是一种新颖的网站架构,与传统的服务端渲染和近些年国内流行的前后端分离等架构不同的是,他的网页是静态的,可以托管在CDN上,内容是动态的,可以方便地进行修改。
JAMStack几个显著的优势:
页面为静态,TTFT(TimeToFirstByte)的时间可以降到非常低 页面为静态,服务器遭受的安全风险要低得多 不同于客户端渲染,JAMStack对SEO会非常友好 不同于传统纯静态网站,内容可以方便地动态更新 为什么选择Gatsby 作为一个网站生成器Site Generator,Gastby的入门门槛其实是较高的,相对于Hexo、Hugo那种简简单单配置下就是一个站点,Gatsby的难度要更高,因为其灵活度更大,所有的配置、页面都是Javascript来配置的,当然你也可以使用Typescript。其基于React,生态丰富且灵活度高,天生GarphQL是选择它的主要原因。
网站架构及效果 流程:
我在其他地方看到不错的文章,将其收藏到Pocket 定时任务,从Pocket API获取文章数据,交给Gatsby生成站点 自动部署,将生成的静态文件部署到CDN reading.colinx.one站点主页就会出现我收藏的文章啦 这其中,Gastby充当的是Site Generator的角色,而数据来源为我的Pocket API,也就是我把Pocket作为Headless CMS来管理我的数据,可以方便地进行更新和管理。
总结 项目已经开源,地址在https://github.com/Colin-XKL/Colinx-Reading.git。你也可以去申请自己的Pocket API然后部署你自己的站点。
初始尝试JAMStack,感觉对于博客、文档这类的站点会非常友好,国外比较火的像Shopify这种的无头电商也不错,国内的碍于国情应该不大可能了。
链接 Welcome to the Gatsby Way of Building | Gatsby https://www.

Flutter 拖动排序列表与跨平台优化实践 :: Colinx Blog — Colin的个人博客

https://blog.colinx.one/posts/flutter-%E6%8B%96%E5%8A%A8%E6%8E%92%E5%BA%8F%E5%88%97%E8%A1%A8%E4%B8%8E%E8%B7%A8%E5%B9%B3%E5%8F%B0%E4%BC%98%E5%8C%96%E5%AE%9E%E8%B7%B5/

Flutter 拖动排序列表与跨平台优化实践 Flutter中实现拖动排序的列表非常简单,使用官方的ReorderableListView替代原本的ListView即可,ListView.builder同理。
return ReorderableListView( // padding: const EdgeInsets.symmetric(horizontal: 40), children: <Widget>[ for (int index = 0; index < _items.length; index++) ListTile( key: Key('$index'), tileColor: _items[index].isOdd ? oddItemColor : evenItemColor, title: Text('Item ${_items[index]}'), ), ], onReorder: (int oldIndex, int newIndex) { setState(() { if (oldIndex < newIndex) { newIndex -= 1; } final int item = _items.removeAt(oldIndex); _items.insert(newIndex, item); }); }, ); } 上面是官方给的demo,简洁明了。官方介绍视频下面的评论里,人家直呼比原生Android写的过瘾的多。阅读文档后我给我的App的界面也加上了可拖动排序的功能。效果如下图
虽然可以实现拖动了,但是右边有一个按钮很碍眼。不过这个是用来控制拖动的,鼠标移上去才能触发拖动。
翻了翻文档发现,这个地方ReorderableListView在移动端和桌面端的处理是不一样的,上图(桌面macos)右边会出现一个dragHandler,而移动端则是靠长按列表项触发拖动。
要把这个碍眼的图标去掉,有两个方案:
找到定义这个图标的地方,更换一个合适的图标,并在外面包裹一层,仅在鼠标hover时将图标显示以进行拖动,其他情况下隐藏 将拖动的实现定义为和移动端相同,即都通过长按列表项触发拖动 针对方案一,以ReorderableListView 和Icon为关键词搜索,很遗憾的是并没有这方面的资料,又翻了翻源码,并没有找到可以自定义右边这个拖拽按钮的实现。

安全不是特权 - 雷池 WAF 使用体验及部署安装教程 :: Colinx Blog — Colin的个人博客

https://blog.colinx.one/posts/%E5%AE%89%E5%85%A8%E4%B8%8D%E6%98%AF%E7%89%B9%E6%9D%83-%E9%9B%B7%E6%B1%A0waf%E4%BD%BF%E7%94%A8%E4%BD%93%E9%AA%8C%E5%8F%8A%E9%83%A8%E7%BD%B2%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/

自从开始倒腾服务器,部署各种各样服务以来,网站安全一直是那个令我焦虑的一个话题。暴露了那么多服务在公网,总免不了有无聊的人或者别有用心的人在

坑爹的阿里云 & Swap 的重要性 :: Colinx Blog — Colin的个人博客

https://blog.colinx.one/posts/%E5%9D%91%E7%88%B9%E7%9A%84%E9%98%BF%E9%87%8C%E4%BA%91-swap-%E7%9A%84%E9%87%8D%E8%A6%81%E6%80%A7/

在一次编译 VSCode 的项目中,跨越千山万水,解决重重依赖后,终于来到了编译环节。然而才开始没多久,就出现了一个匪夷所思的报错。
谷歌一番,又到 /var/log/message 里查看了一番系统日志,竟然说是内存爆满,进程被 kill 了。想来我阿里云的那台服务器内存的统计曲线基本就没超过一半,今儿个怎么会出现内存爆掉的情况。又是一顿折腾发现这台阿里云的机子 Swap 大小竟然为 0??Swap 为物理内存达到一定临界值之后,系统将磁盘的一部分空间作内存使用,一般在 Windows 系统上都是由系统自动管控,新安装的 Linux 桌面发行版也会在安装时提醒用户设置,这坑爹的阿里云在安装的时候没给我分配 Swap 分区?
吐槽归吐槽,问题还是要自己解决。网上各种 swap 分区的设置教程大部分都比较模糊,代码的参数及命令都没有解释清楚,给人一种看不懂的感觉~对于操作磁盘这种敏感操作,还是要尽量避免在半懂不懂的情况下进行这种高危操作,毕竟数据无价嘛。最后找到了一篇靠谱的教程,并在服务器端和树莓派端进行实践。
参考:https://linux.cn/article-9238-1.html
使用 fallocate 创建交换空间,我们首先在 / 目录下创建一个名为 swap_space 的文件。然后分配 4GB 到 swap_space 文件:
fallocate -l 4G /swap_space 我们运行下面命令来验证文件大小:
ls -lh /swap_space 然后更改文件权限,让 /swap_space 更安全:
chmod 600 /swap_space 这样只有 root 可以读写该文件了。我们再来格式化交换分区(LCTT 译注:虽然这个 swap_space 是个文件,但是我们把它当成是分区来挂载):
mkswap /swap_space 然后启用交换空间:
swapon -s 每次重启后都要重新挂载磁盘分区。因此为了使之持久化,就像上面一样,我们编辑 /etc/fstab 并输入下面行:
/swap_space swap swap defaults 0 0 保存并退出文件。现在我们的交换分区会一直被挂载了。我们重启后可以在终端运行 free -m来检查交换分区是否生效。

从一次异常断网谈防火墙配置 :: Colinx Blog — Colin的个人博客

https://blog.colinx.one/posts/%E4%BB%8E%E4%B8%80%E6%AC%A1%E5%BC%82%E5%B8%B8%E6%96%AD%E7%BD%91%E8%B0%88%E9%98%B2%E7%81%AB%E5%A2%99%E9%85%8D%E7%BD%AE/

序 十分钟前,突然发现手边的电脑上的 QQ 突然变灰,多次重新登陆均失败。而当前打开几个百度的网页均未出现异常。但点击几个搜索结果均显示打不开网页。一分钟后,iPad 播放的音乐也突然停止。尝试 Ping 局域网的网关和树莓派均失败。而路由器仍然显示网络连接正常,手机端仍可以正常上网,断网前半个小时内我是没有对路由器和承载着众多服务的树莓派进行任何改动的。初步查看,发现电脑网卡的 ip 变为169.254开头的 IP,而内网 IP 之前一直用的是192.168.1.*。现在电脑和路由器192.168.1.1以及绑定了这个网段静态 IP 的树莓派都不在同一个网段内,自然是无法访问的。那么为什么会分配到这样的 IP 地址呢?
简单查询得知,这样的 IP 属于保留的 IP 地址段,用于在无法 DHCP 获取 IP 时自己给自己分配一个 IP。这样分配得来的 IP 自然是不能正常使用的。而此前局域网的 DHCP 被我的树莓派承包了,那么首要任务是查看树莓派的 DHCP 服务是否正常运行。
排错三步走 虽然树莓派之前绑定的 IP 地址无法 ping 通,但庆幸的是,通过主机名依然可以访问到局域网内树莓派,不过此时链接的是 IPv6。IPv6 作为 IPv4 的升级版,在很多方面都有所不同,局域网 IP 地址的分配和 IPv4 的 DHCP 走的并不是同一个路子。之前为了将树莓派的 DNS 用于家庭局域网,而家里的移动光猫上并不能修改 IPv4 DHCP 的 DNS 信息,无奈只能禁用路由器的 IPv4 DHCP 转而使用 AdGuardHome 内置的 DHCP 服务器。而 IPv6 的 DHCP 分为两个部分:
内网的,分配的 IPv6 地址一般以fe80开头,这种地址仅用于内网访问。 公网的,IPv6 的地址容量之大足以为地球上的每一粒沙子分配一个独一无二的 IPv6 地址,而这对于现今地址池即将枯竭的 IPv4 是根本无法想象的。 由于要分配的公网 IPv6 地址是要由路由器从公网获取一个前缀然后再为局域网的每个支持 IPv6 的设备分配地址,这一项任务不能由内网的树莓派代劳,所以当时就没有改动,没想到现在竟然成了救命稻草。

RSSManX - 一套RSS综合解决方案 :: Colinx Blog — Colin的个人博客

https://blog.colinx.one/posts/rssmanx/

中文说明 | English
RSSman X is a project that composed several useful services to help you build an excellent RSS experience.
RSSman X 基于 docker-compsoe 提供容器化 TTRSS 与 RSSHUB 等组件的一键部署,整合实用组件为你带来最佳 RSS 体验
Feature: 简单一键部署,常用组件支持,自动更新支持,服务健康自检支持,海外站点 RSS 解锁
快速开始 (若已安装 docker 和 docker-compose)
mkdir RSSmanX && cd $_ && wget https://cdn.jsdelivr.net/gh/Colin-XKL/RSSmanX/docker-compose.yml && sudo docker-compose up -d 说明 本项目旨在为 RSS 的同好提供一个方便地搭建自己的 RSS 服务的捷径。毕竟不是所有 RSS 爱好者都懂代码 😂。如果你想快速地搭建自己的 RSS 服务,能够有 RSS 订阅管理、RSS 在线阅读界面,进阶功能包括服务健康自检、海外站点 RSS 解锁等。希望订阅国内外的各大网站的 RSS 信息源又不想跟着网上漫天飞的教程瞎折腾的话,那么你可以使用本仓库的脚本快速完成安装部署。

Colin's实验室 - 2021春 :: Colinx Blog — Colin的个人博客

https://blog.colinx.one/posts/colins-%E5%AE%9E%E9%AA%8C%E5%AE%A4-2021%E6%98%A5/

Colin’s实验室 - 2021春 小玩具及他们的demo
英语文本智能查词(Project Sweeper) 自动分割给定的英文文本,提取词元后在数据库中搜索,根据给定的词汇量和难度等级进行筛选,只能提取阅读障碍词汇并高亮当前备考项目(如四级)的重点单词
知乎爬虫及JS逆向 日常用RSS订阅知乎的一些高质量专栏。但由于知乎本事并不支持RSS,内容大多通过RSShub来的,其本质是个爬虫,经常会受到前端页面结构变更的影响。为了应对这个变化,RSShub中对于知乎相关页面的爬取规则必须得重写。
分析了一通知乎的页面,发现有个接口可以直接请求,但是会检验header。header里面有几项特殊的自定义参数,x-zse-83 和 x-zse-86等。为了搞清楚这里面的数值怎么来的,就必须对知乎前端页面资源中的一个js文件进行逆向分析。
逆向折腾了大半天,就快要成功提取核心加密函数的时候,发现知乎的前端页面为了SEO有加入一页的文章列表数据,可以直接用上。考虑到逆向的工作量和潜在的法律问题,遂放弃原本的方案。
新的方案完成后,已向RSShub提交PR并已被合并。
MC服务器搭建与极限优化 1核2G学生机,从2人联机频频崩溃到8人挖矿毫无压力,学习了JVM GC种种,对服务端程序的一些参数也渐渐熟悉。优化效果喜人,总有还能压榨的性能,就像资本家看手下的骡子一样hhh
洞洞板/冰箱贴/CVPRO/(…没想好名字) 一款跨平台的灵感素材收集与简易管理App,基于Flutter构建,跨平台,颜值在线。
持续开发中,附roadmap
version 1.0
[x] Text support
[x] Key shortcut support
[x] About Page
[ ] Content editing
[x] List item dismiss [x] List Sorting
Future - Key functions
[ ] Data Storage
[ ] Pic support
[ ] Trashbin

Colin's Blog 1.0 构建心得 :: Colinx Blog — Colin的个人博客

https://blog.colinx.one/posts/colins-blog-1.0-%E6%9E%84%E5%BB%BA%E5%BF%83%E5%BE%97/

经过两三天的折腾,从 Linux 结构及指令,到 LNMP 框架搭建,再到数据库的配置,最后端口转发 + 内网穿透,博客终于成功上线!在此将部署过程及踩过的坑记录下来,一方面是纪念,另一方面希望能够后来人提供一点帮助。
从想法到实现 第一代博客采用树莓派 3B + 构建。当初作为寒假的练手项目,入手了树莓派 3B + 以及智能小车所需的配件。由于时间没有规划好,最后在寒假前匆匆完成了小车硬件的组装,智能控制部分(wifi 遥控、红外循迹等)没能够完成。开学只带了树莓派的板子。闲置良久,想利用起来,刚好又有搭建大学生竞赛信息服务网站及公众号的想法,就开始着手构建基于树莓派的服务器,先从 Wordpress 搭建博客开始。
LNMP+Wordpress 框架搭建 L=Linux
N=Nginx
M=MySQL
P=PHP
LNMP 架构是广泛使用的服务器架构。与此类似的还有 LAMP,A=Apache。Nginx 与 Apache 作为目前市场上高度流行的两种服务器程序,网络上已经有非常多的相关的文档和教程。
关于 Nginx 与 Apache 的选择,这里只简单做个介绍:
Nginx:资源占用低,性能好,配置简洁,功能有限。
Apache:相对 Nginx 占用资源要多一点,不过插件和文档更丰富,设置某些功能的时候会方便一点。
具体两者的区别和测试可自行百度。刚开始考虑到树莓派的配置以及访问量,我选择使用 Nginx。具体部署过程此处不再赘述。
设置好 Nginx,开始配置 MySQL 和 PHP。安装 php 的时候开始遇到了一些小波折:网络上大部分教程都是基于 php5.0,安装包的时候都是类似于
sudo apt-get install php5-fpm 这样的,但在实际安装过程中会报错,说找不到这个名字的包。这个还算好解决,又搜索了几个教程,发现最新的版本为 php7.0,根据新版本 php 的教程按部就班做就基本 OK 了。
WordPress 部署比较简单,但是对于新手而言,需要熟悉 Linux 基本指令:cd 目录切换,wget 文件下载,tar\zip 解压等。但是相对于有很多依赖项的或者配置繁琐的程序,Wordpress 安装其实已经算很简单了。

我的RSS方案与心得 :: Colinx Blog — Colin的个人博客

https://blog.colinx.one/posts/%E6%88%91%E7%9A%84rss%E6%96%B9%E6%A1%88%E4%B8%8E%E5%BF%83%E5%BE%97/

我的 RSS 方案与心得 使用 RSS 已经一年有余,这种对信息的主动掌握让我获取信息的质量和密度都上升了一个台阶。最早是使用 TTRSS 做服务端,安卓手机使用 FeedMe 订阅,主要订阅的是有源的商业内容站点、个人博客以及其他人分享的使用 Feed43 或 Feedburner 压制的源。随着我逐渐加大 RSS 阅读在我闲暇、琐碎时间内的比重,我对 RSS 有了更高的期望和要求,便开始了对如何构建更高效、更易用的 RSS 方案的探索。
借助 RSSHub 订阅各种热门冷门网站 RSSHub 是个很赞的项目,它聚集了众多 RSS 爱好者来为现代的网站构建 RSS 订阅源。众所周知,网站提供 RSS 并不能为他的站点带来更高的收入,反而会减少主站的访客数。借助 RSSHub 可以方便地通过 RSS 订阅知乎、豆瓣、Facebook 等现代媒体社交平台。
获取 Feed 文章全文 部分 RSS 源并不会在 xml 文件内提供文章全文,说白了是想让你点进他们的网站去浏览,这样网页上的广告才有可能被你点击。解决的方案有很多,方便起见我使用了 TTRSS 的插件 Readability 和 Mercury。两者都不能完美适配所有站点,同时启用这两者以实现互补。
无障碍阅读繁体中文 Feed 发现了几个质量不错的繁体中文信息源,主要是**的站点,如泛科学。由于文字和部分两岸文化差异,直接阅读繁体中文的文章有些困难。我的解决方案是使用 OpenCC 简繁转换服务,它能够对可映射的简繁汉字以及同一事物的两岸不同的表述进行翻译,输出的简体中文版文章基本可以无障碍阅读。Awesome-TTRSS 内有集成相应的插件和服务程序。
不过原作者是使用 node.js 编写的服务端,翻译数据库得不到及时更新,如翻译后还是写的是义大利而不是意大利。而且 docker image 体积 100+M,内存占用也较大。我在考虑用 Go 语言重写 OpenCC 的服务端并兼容 TTRSS 的 OpenCC 插件,并加入 CI 自动从上游同步翻译数据库。

坑爹的阿里云 & Swap 的重要性 :: Colinx Blog — Colin的个人博客

https://blog.colinx.one/posts/%E6%A0%91%E8%8E%93%E6%B4%BE-apache2-%E8%AE%BE%E7%BD%AE%E7%89%B9%E5%AE%9A%E5%9F%9F%E5%90%8D%E8%BD%AC%E5%8F%91%E5%88%B0%E7%89%B9%E5%AE%9A%E7%AB%AF%E5%8F%A3/

随着树莓派上部署的项目越来越多,每次使用 IP + 端口访问也越来越不方便。考虑使用 Apache 来特定子域名跳转到不同端口对应的不同应用。
树莓派 3B+ Raspbian 系统 Apache2 自己的域名 在 Apache2 的配置文件(路径 /etc/Apache2/Apache2.conf ) 文件末尾加上以下配置:
<VirtualHost *:80> ServerName YOUR_DOMAIN.COM #此处为本条规则绑定的域名,下同 ServerAlias YOUR_DOMAIN.COM ProxyPreserveHost On ProxyRequests Off ProxyPass / http://localhost:8080/ #修改此处的端口号为实际所需,下同 ProxyPassReverse / http://localhost:8080/ </VirtualHost> 之后开启 Apache2 的相关模块
a2enmod rewrite a2enmod proxy a2enmod proxy_http 最后重启 Apache2 即可 sudo systemctl restart Apache2

打造沉浸式互联网体验 「广告篇 - 上」 :: Colinx Blog — Colin的个人博客

https://blog.colinx.one/posts/%E6%89%93%E9%80%A0%E6%B2%89%E6%B5%B8%E5%BC%8F%E4%BA%92%E8%81%94%E7%BD%91%E4%BD%93%E9%AA%8C%E5%B9%BF%E5%91%8A%E7%AF%87-%E4%B8%8A/

序 继机械化、电气化、自动化的三次工业革命后,人类正迎来以互联网为载体的智能化时代。互联网与我们的生活结合得越来越紧密。除了装修房子,购置服装,优化家庭互联网体验也是提升生活质量的一个良好途径。本篇中我们将聚焦网页浏览来优化我们的互联网体验。
前言 “上网冲浪” 这样的词已经淡出公众的视野,身边的 10 后甚至 00 后都鲜有人熟悉这个词了。也许我们现在与互联网的交互并不局限于网页交互了,但我想,你也肯定不希望被自己偶然上某度查资料的时候被漫天的广告破坏了一天的心情。
本系列将从以下几点从易到难,逐步优化日常的网页体验。无需任何代码基础,使用文中推荐的工具,小白亦可轻松上手!
广告篇 浏览器插件去除特定元素广告 油猴脚本屏蔽搜索结果广告 善用阅读工具 通过 Hosts 屏蔽广告联盟 * 借助 AdGuardHome 打造局域网统一去广告方案 ** 网络篇 这样的广告呢,虽然他的**性或许比以往更小了,不过还是有点碍眼。而且在某种程度上,依然可能会误导家里的老人或是小孩。为了统一家庭的互联网体验,减少不必要的麻烦,这个广告也是我们的 target。由于这个广告是嵌入搜索结果中的,如果你用之前的小伎俩,打算单独屏蔽这个广告对应的元素的话,你就要失望了。因为他会连带着屏蔽所有的搜索结果。这显然是不可取的。下面我们要介绍另外两个工具。
Tampermonkey 油猴 这是一个非常强大的浏览器插件,可以在特定的页面插入特定的 js 脚本,从而实现非常强大的功能。比如,音乐网站 VIP 资源下载,百度云盘下载加速,视频网站 VIP 资源在线观看,以及我们今天的的男二号:
AC - 搜索引擎优化脚本 安装好油猴插件后,你可以在 Greasyfork.org 上下载各种黑科技般的脚本。安装成功后,油猴会在你进入符合条件的网页时自动启用对应的脚本。比如,你安装了 AC 的这个脚本,而这个网页是适配了某度的,那么当你进入某度的网页时,油猴就会自动启用这个脚本。快来领取属于你的纯净版度度吧。
前面介绍的几个,都只是借助第三方工具来屏蔽网页上特定的碍眼的元素。如果我们要阅读来自不同网站的新闻,为了获得机制纯净的阅读体验,难道要用 AdBlock 一个一个选中页面中除文章主体文字以外其他所有元素? 对于这种页面结构非常固定的一类网站,我们是否可以通过某种方式,来只提取页面主体的文字,以优化我们的阅读体验呢?
使用浏览器自带的阅读工具 苹果很早就想到了这一点,Safari 浏览器可以识别当前的的页面是否是一个结构简单,文字为主题的页面。在符合条件的网页上,Safari 会提示你使用阅读工具来优化页面,以获得更好的阅读体验。当然,你也可以手动启用他。
微软也不甘示弱,在随 Win10 推出的 Microsoft Edge 上,也内置了阅读工具。你可以在地址栏的右边找到他。
[注:区别与 2020 年新的基于 Chromium 内核的新 Edge 浏览器,此处指的是老版 Edge HTML 内核的 Microsoft Edge 浏览器]

Minecraft上云笔记 - MC服务器快速搭建&MOD推荐&性能优化 :: Colinx Blog — Colin的个人博客

https://blog.colinx.one/posts/minecraft%E4%B8%8A%E4%BA%91%E7%AC%94%E8%AE%B0-mc%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%BF%AB%E9%80%9F%E6%90%AD%E5%BB%BAmod%E6%8E%A8%E8%8D%90%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/

Minecraft上云笔记 - MC服务器快速搭建&MOD推荐&性能优化 MC快速上云,学生机轻松带动,三五好友,畅快联机
前言&踩坑 距离上一次玩MC已有四年之久,上次玩的时候还用的是家里的老爷机,连独显都没有,玩个整合包都费劲。如今设备早已更新换代,B站不少做MC的UP主的内容挺有趣,于是尝试重新拾起MC。
手机端国内只有网易代理,APP卡顿严重,生态封闭,体验奇差。安卓下载的国际服倒是还不错,不过身为基岩版,与Java版的生态并不相通。Github上找到了可以让基岩版进Java版服务器的轮子,不过手机端连接服务器又是一个麻烦事。连接远程服务器又需要登录Xbox,但是登上了连接的时候又出现奇怪的问题。
贴吧有人给出解决方案,搭建VPN,形成局域网,那样服务器会被视为局域网内开放的MC服务端。但天朝政策收紧,搭建PPTP、L2TP等隧道均未果,严重怀疑云服务商干扰了对应服务的端口。几番权衡决定投归PC端的Java版,生态丰富而且可以充分利用好硬件性能。
MC服务器快速搭建 MC服务端选择 物色了很多MC服务端,但看了下主要可用且被应用广泛的就两类,
Spigot、PaperSpigot这类加装插件的 SpongeForge这类可以加装Mod的 前者生态目测更丰富些,MCBBS上的开服板块大部分都是PaperSpigot搭建的。但是好像都是那种几十上百人的公用服务器,什么权限控制、小游戏、防作弊的插件居多,而我只是想要一个能够装Mod的可以供三五好友方便联机的服务器。我的选择是后者
MC服务器快速搭建 搭建方案千千万,不过Docker来的最实在。Github找到一个非常方便的镜像,itzg/minecraft-server。这个镜像是运行时构建的,会根据指定的环境变量下载和安装对应的MC服务端程序。支持的服务端有Bukkit、Spigot、PaperSpigot、SpongeForge等等,MC的版本和各项参数均支持通过环境变量自定义,非常方便。而且可以通过更换不同的Tag来使用不同的JDK版本,从8到15,Hotspot和OpenJ9都有,可以按需选用。有arm版本,树莓派也可食用。
安装Docker和docker-compose后,可以方便地编写脚本来快速启动一个MC服务器。这里放上我的docker-compose.yml文件
version: "3" # Forge with Sponge API support. THIS REQUIRES DOWNLOADING SPONGEFORGE. # Place the SpongeForge jar file in /data/mods. Other Forge mods go here as well. # Place Sponge mods in /data/mods/plugins. Yes, this is a directory inside the Forge mod directory. Do NOT use /data/plugins. services: minecraft: image: itzg/minecraft-server container_name: "MCServer" ports: - "25565:25565" volumes: - "mc:/data" # 主要数据,包括存档数据等 - "~/.

2020 年度总结 :: Colinx Blog — Colin的个人博客

https://blog.colinx.one/posts/2020%E5%B9%B4%E5%BA%A6%E6%80%BB%E7%BB%93/

2020年度总结 序 新冠疫情侵袭下的2020过的额外的快,仿佛上一秒还在家里上完课,下一刻就是秋季复学,一晃眼又是一年圣诞,2020就快过完了。这里记录一下我的2020.
我的2020简述 博客2.0、3.0 刷完了几部经典动漫 刷完了我的三体和三体三部曲 上半年在家中了花花草草 暑假学了车 数学建模国奖 捡垃圾组了第一台主机装了黑苹果 集齐伪·苹果全家桶 学了吉他 2020的遗憾 挖了好些坑都没填 种的花没能看到开花,人又在学校了 没能集齐老家四季的照片 2020唯一的Logic作品没能上线,还没到令自己满意的程度 - 疫情给所有人都带来了冲击,很庆幸的是,疫情于我,于我的家庭,都没有造成任何大的影响。2020有再多遗憾,在这一条面前都不值一提。曾经一度想逃离这个地区,在后疫情时代看来,大的灾难面前,不发达的内陆地区和偏远郊区是不可多得的避难所。人口和资源会自然地聚集在大城市那些经济发达的地区,但除此之外的地区并不是荒无人烟自有他的道理。
2020下的**无疑是值得肯定的,社会主义集中力量办大事的特征在这一场风波中展现地淋漓尽致,资本主义过渡不香了,所有的固有印象都被打破,疫情揭开了这层虚伪的面具,我能够以几乎为0的代价得到这个经验是我人生莫大的荣幸。
除了对制度的认知的变化,2020我也在重新思考两个问题。
什么是我想要的?
如何逃离IT业的内卷
这两个问题本质上是同一个。十年来我想要的一直都没有变,在学生时代也一直没有足够的眼界、见识、能力和精力去仔细思考这个问题。
但这两个问题,在2020年的结束,我还是不能给自己一个答案。但是,正如 数码宝贝:羁绊 中所阐述的那样,我会努力去寻求自身更多的可能性,不放弃希望与初心。在没有答案之前,我选择
保持健康的身体,虽然近视了没办法,但只要我还有良好的听觉,我就还能欣赏世界上美妙的音乐;只要我还有良好的味觉,我就还能品尝世界上美味的食物;只要我还有良好的嗅觉,我就还能品味大自然的芬芳;只要我还能唱,我就还有机会把心中的旋律唱出来;只要我还能说,我就还有机会把脑海的故事说出来;还有只要我还有双脚,我就还有机会丈量世界;只要我还有双手,我就还有机会创造世界; 读更多的书,看更多的电影。也许这些迷茫只是因为我太久没有阅读,**僵化了吧。但我想,这个问题,书中一定有答案。我的人生是有限的,但是我可以通过书籍、电影和音乐来感受别人的人生。 保持好奇心,保持创造力。这是我的信条。知乎上有篇回答讲「初心」讲的很棒,他说,「初心」这个词并不是说的你最初的理想或是梦想这类实际的目标,而是你孩童时期,你碰见一个新鲜事物,你伸出手想去感受它,观察他想去理解它,至于最后这玩意是什么能拿来干什么都不重要了。保持初心本质上是保持好奇心与创造力。至少于我而言,最开心的时刻就是发现与理解一个新鲜事物的时候。 认识更多的人,做更多的事。都一样,我想在答案出来之前,积攒一切可能性。 就这样吧。这学期报告写多了习惯性地啰嗦了,这毛病得改掉。
终 最后的最后,2020年度流水账
不拜年的春节,开心😄 寒假放完了,直接线上教学,懵逼 摸鱼网课 刷马达加斯加系列 折腾博客,Ghost on Pi via CloudFlare 快递初步解封,买了花种子 发小高三无心复习,我又不能放开耍 每天照料种子,感受初生的喜悦,超有成就感 折腾docker 折腾博客,Hugo 刷红七 水水的网页设计比赛拿了个一等奖,奖品自选,我们队选了三大箱零食哈哈 折腾RSS 复学 一头雾水的组原实验,可是看看四周好像只有自己在做 水水的中青杯,说好的组队到头来基本是自己一个人写 尴尬的小程序比赛收尾,做了个四不像 肝课设 暑假回家,学车 刷数码宝贝系列 小一个月过了科二科三,刺激 刷了三体三部曲,必须点赞 开学数模比赛,很辛苦,但是挺考验人的 捡垃圾组了第一台主机,吃上了Catalina黑苹果 十一过后每天学习吉他 继续折腾RSS 实验室开通了微信公众号 正式开始做Logic项目,但是发现思绪混乱不堪,工作方式与预期相差甚远 第一次穿西装 挖了又没填完的几个坑 肝课设 写这篇文章 抓住2020的尾巴上线了https://coding-step-one.

伪·苹果全家桶喜添新成员:小米手环6使用体验 :: Colinx Blog — Colin的个人博客

https://blog.colinx.one/posts/%E4%BC%AA%E8%8B%B9%E6%9E%9C%E5%85%A8%E5%AE%B6%E6%A1%B6%E5%96%9C%E6%B7%BB%E6%96%B0%E6%88%90%E5%91%98%E5%B0%8F%E7%B1%B3%E6%89%8B%E7%8E%AF6%E4%BD%BF%E7%94%A8%E4%BD%93%E9%AA%8C/

伪·苹果全家桶喜添新成员:小米手环6使用体验 继iPad 2018,iPhone Se2,漫步者无线耳机(伪·AirPods),黑苹果Dell G3 3579(伪·MacBook Pro),千元捡垃圾华强北黑苹果主机+4K显示器(伪·iMac)后,我的伪·苹果全家桶终于迎来了新成员:智能穿戴设备,小米手环6。
选购原因 我购买电子产品一向是非常谨慎的,而且来回确认必要性和对比参数、价格通常都要很久,但这一次,吃个午饭的功夫我就下单了小米手环6。严格意义上来说,他对我并不是一个必需品,促使我这么快下单的因素主要有两个:
近期对健康的重视 对睡眠质量不满意,对白天的工作学习效率和状态不满意 在与公司几个我很钦佩的leader和boss的饭局中,我发觉到那些很厉害的人,他们在学习和生活的时候总是以一种全情投入、高效专注的姿态投入进去,而让他们保持精力旺盛和高效的秘诀,或者说这几位牛人的共同点,就是他们都非常关注健康,保持运动,注重效率。
同时身边几位朋友各种身体原因,耽误学习、工作的真实案例,也让我愈发感受到健康的重要性,包括但不限于心理健康、口腔健康、心肺能力、睡眠质量等方面。
下面着重来讲一下小米手环的使用体验,我最关注的功能,以及对我生活上的改变。
我最关注的功能 通知提醒、运动统计、心率检测,这些都已经是目前市面上的绝大多智能手环、手表的标配了,小米手环6代还支持的功能包括睡眠监测、遥控拍照、血氧检测、支付宝离线支付、音乐切换、闹钟、番茄钟、倒计时以及多种运动模式的检测与支持,NFC版还额外支持NFC刷卡以及小爱同学,不过没有扬声器小爱同学不能发声😂。我购入的是无NFC的普通版,谈一下我个人认为很实用的以及几个非常鸡肋的功能。
🎯平时使用的核心功能:运动目标(步数和卡路里),睡眠监测 😃经常使用的实用工具:倒计时,番茄钟,事件提醒 👎🏻营销效果>实用:血氧检测,心率检测,压力检测,PAI趋势 几天实际体验下来,血氧检测、心率这些东西对于一个正常生活的年轻人没有必要,测了几次血氧都是98%,晚上也没有呼吸不畅,心率也不会突然变动,压力也没必要全天候检测,自己心里烦躁的时候自己还不知道吗。。。PAI是一个需要全天候检测的东西,1分钟检测1次,续航崩的厉害,而且也没啥必要。。。
最令我惊喜的是倒计时、番茄钟和事件提醒功能。拿我最近的使用场景举例,近期开始重点关注口腔健康,每次刷牙时可以定个三分钟的倒计时,每次刷牙必须满三分钟;再设定一个每日重复的事件提醒,每天提醒我十一点刷牙,保持口腔清洁。这些事固然用手机都可以办到,只是用手环进行这些操作出乎意料的方便。番茄钟也是非常非常好用的一个工具,这个功能是近期更新才添加的,现在在手环上设定番茄钟,接收到时提醒更加轻量、便捷,也减少了手机的干扰,大大滴实用~😄
佩戴体验 几天实际佩戴使用下来,重量和续航还行,不过也有一些不爽的点比如表带的佩戴体验不是很佳,还有作为第一次佩戴这类设备的用户,还是有点不太适应。
重量:几乎可以忽略,没有坠手感
续航:没有打开PAI等高度崩续航的功能,十分钟检测一次,日常使用一到两次运动模式,一周一充没有压力
充电:磁吸充电真的超香
装饰性:对于我这种腕上空空的选手来说,这条纯黑简洁风的手环还是有一定装饰性作用的,相对于传统机械表也没有那么严肃
腕带佩戴体验:不是很透气,夏天出汗或是沾了水会有点难受
腕表卡扣:一只手轻松扣上,很久以前佩戴的1代手环真的是两只手都扣不上
硌手程度:低,正常佩戴,一天下来皮肤上不会有印记
使用体验 iOS兼容性:尚可,APP功能完备,部分健康数据可写入苹果健康应用。据说一众国产手环手表中,小米家的是对苹果支持最友好的
设备联动:无,毕竟只是手环,没法安装三方APP。不过听说NFC版的小爱同学可以控制智能家居,听起来还不错
响应速度:尚可,抬腕亮屏的灵敏度和速度都还可以,偶有不灵,正常范围内
购买建议 Apple生态内用户,Apple Watch少有的平价替代品(两百块要什么自行车)
腕上空空选手的智能穿戴尝鲜优选
小米手环123代用户无脑升级(磁吸充电真香)

Win 10配置C语言环境的正确姿势 :: Colinx Blog — Colin的个人博客

https://blog.colinx.one/posts/win-10%E9%85%8D%E7%BD%AEc%E8%AF%AD%E8%A8%80%E7%8E%AF%E5%A2%83%E7%9A%84%E6%AD%A3%E7%A1%AE%E5%A7%BF%E5%8A%BF/

Win 10配置C语言环境的正确姿势 本系列教程旨在为刚入门的编程语言学习者做好指南工作,开始编码,本应很简单
The PAINLESS way to start coding!
VC6.0太古老,Dev C++没补全不友好,MinGW安装太烦恼?
你用着最新的电脑,最新的系统,却在用着上个世纪的软件开始你人生第一门编程课?
你需要这篇指南:在现代化的硬件和平台上使用现代化工具学习C语言
aka:Win10配置C语言环境的正确姿势
截止2020年末,Win10配置C语言环境的常见方案有:
使用scoop来便捷地安装所需的环境 使用Winget来安装所需的环境 [不成熟] 使用国内镜像Cygwin+VSCode配置C语言环境 【快速】 使用WSL+VSCode 使用WSL+Clion 综合考虑可行性与小白友好性,我们推荐的方案是:
使用国内镜像Cygwin+VSCode快速配置C语言环境 C语言编写的.c源代码文件需要通过编译器编译生成可执行文件.exe后才能运行。Windows系统默认没有自带C语言的编译器,这里我们需要手动下载配置才行。
C语言编译器在Win平台下的选择多种多样,但要么配置麻烦,使用门槛高;要么就是下载源在国外,国内下载慢如龟,甚至直接下不成。这里给出基于国内镜像Cygwin+VSCode配置C语言环境的方案,实测可用,步骤清晰易懂,国内网络也可在几分钟内配置好!
编译器的下载与配置 Cygwin的下载安装分为两个部分:
Cygwin安装程序的下载(~1MB) 安装器来完整后续的编译器核心部分的安装(~100MB) Cygwin的下载安装 Cygwin的安装程序可以从其官方站点下载。不过站点为全英文且国内访问速度堪忧,这里给出快速下载链接
Cygwin安装程序快速下载(不限速,免登陆)
https://wws.lanzous.com/iUpUKjojq5i
下载完以后,双击打开,进入下图的界面
点击下一步,选择第一项,从网络下载并安装
如果让你选择安装路径的话,可以不用改,不过默认在C盘。自己改的话,一个尽量避免使用中文路径,还有一个就是要记住你自己自定义的路径,后面会用到。
网络好的话,点击下一步会出来一个可用的国内镜像列表,那样的话随便选一个都可以直接进行后面的步骤。
网络条件不好的情况下,半分钟以内就会报错说网络连接失败。不过不用担心,接下来可以自己填写国内镜像地址。
在User URL的输入框输入https://mirrors.tuna.tsinghua.edu.cn/cygwin/并点击Add添加。之后点击下一步继续。
之后会进入一个选择界面。这里选择要安装的组件。我们只需要C语言的编译器,这里在搜索框内输入gcc,然后在下方找到gcc-core 和 gcc-g++,点击右侧的三角形打开下拉菜单,选择9开头的版本。如下图所示。
选择完成后,一路点击下一步安装。如果出现如下的警告信息,直接用默认的设置,点下一步继续就可以了。
一般一到两分钟之内就可以下载完毕。如果过了很久还没有装完,要么是网络太垃圾,要么就是不小心勾了其他的软件,一直在安装。。。
配置Cygwin 下面要更改环境变量。如果你之前没有自定义安装目录的话,默认路径C:\cygwin64\bin。否则下文对应的地方使用你自定义的目录。
在开始菜单中找到Windows系统 - 控制面板。如果这里没有的话,按Windows徽标键+S可以呼出搜索面板,可以在此搜索控制面板菜单项。
在控制面板主页找到系统与安全。
或者如果你的控制面板打开不是上面的布局而是下面这种布局的话,找到系统菜单。
进入如下的页面,点击高级系统设置。
切换到高级选项卡,点击下方的环境变量菜单
在用户变量中,点击Path,点击下方编辑按钮进行编辑
输入Cygwin安装路径下的bin目录。如果你之前没有自定义安装路径,直接设置如图即可。否则设置为你自定义的路径。
注意:这一步只要添加这一个就好,不要看我截图里面的很干净,就把其他的都删了
一路点击确定。修改完之后重启下电脑确保改动生效。

黑苹果笔记 :: Colinx Blog — Colin的个人博客

https://blog.colinx.one/posts/%E9%BB%91%E8%8B%B9%E6%9E%9C%E7%AC%94%E8%AE%B0/

Last Update: April 9th,2019 从两年前第一次听说黑苹果,到暑假第一次装黑苹果,再到几个月前成功装上黑苹果,一路走来,收获颇丰。在这里将 Dell G3 大致安装过程记录下来。
配置:Dell G3 3579 Intel i5-8300H UHD630 GTX1050Ti
V1.0 千辛万苦从国外网站上淘来个 EFI 一开始想走捷径,爬国内外各种论坛找现成的 EFI。最后在 InsanelyMac 上找到一位老哥的 EFI,不料链接挂了。又注册论坛账号然后给他留言说能不能补发一次。这位小哥倒是挺热情的,不仅给了 EFI,还把安装中踩过的坑也一并列出来,以帮助后来者。没想到因为墙 + 移动的渣渣网络,补发的链接打不开。。。又到处 找梯子然而不好使。最后 还是借朋友的电信网成功下载下来了。(电信在宽带业务上深耕十几年了,移动才两三年怎么比得上)
满怀欣喜的用上了这个 EFI。本来我是用黑果小兵的带 Clover 的镜像安装好了的,替换一下 EFI 就可以了。没想到装上去没用,没驱动的还是没驱动。可能是版本的原因吧,我当时装的是 10.14.2,而论坛里面大多是 10.13.6(截止本文写作时,GTX 系列显卡 驱动支持只到 10.13,10.14 的还没出)。没办法了,自己来吧。之前怕爬了那么多帖子,对黑苹果驱动优化也有了些了解。
V1.2 @2019.3.14 声卡 + 键盘 + 触控板 根据黑果小兵的帖子,对声卡进行了注入。
这里要注意,一定要按照黑果小兵的帖子的步骤一步一步来,有些先决条件没有处理好,后续怎么折腾都是白搭。
ALC236 LayoutID:13+Hackintool 处理 = 声音播放 + 麦克风
笔记本键盘 OK
触控板 -> 鼠标
V1.3 @2019.3.14 RNDIS 连接网络 Dell G3 的有线网卡是非常好驱动的,但是自带的 Intel 无线网卡全球无解,只有 更换。考虑到目前没有用有线网,手头也没有小螺丝刀来拆机,于是选择通过共享手机网路。这里使用 HoRNDIS 驱动实现手机电脑 USB 网络共享。反正平时不是经常用,这样用够用了。

Minecraft上云笔记 - MC自定义皮肤并支持联机 :: Colinx Blog — Colin的个人博客

https://blog.colinx.one/posts/minecraft%E4%B8%8A%E4%BA%91%E7%AC%94%E8%AE%B0-mc%E8%87%AA%E5%AE%9A%E4%B9%89%E7%9A%AE%E8%82%A4%E5%B9%B6%E6%94%AF%E6%8C%81%E8%81%94%E6%9C%BA/

Minecraft上云笔记 - MC自定义皮肤并支持联机 方案概述:
仪表盘 - 红石皮肤站 https://mcskin.cn/user [CSL] 万用皮肤补丁 (CustomSkinLoader) - MC 百科 | 最大的 Minecraft 中文 MOD 百科 https://www.mcmod.cn/class/883.html 全员安装皮肤mod,即可保证所有人都可以看见对方的皮肤 使用:
安装好forge
安装好皮肤补丁的mod
启动一次MC,让他自动生成配置文件
在皮肤站注册,并建立与游戏中角色名字相同的角色并设定皮肤
修改".minecraft\CustomSkinLoader\CustomSkinLoader.json"
{ "version": "14.12", "loadlist": [ { "name": "红石皮肤站", "root": "https://mcskin.cn/csl/", "type": "CustomSkinAPI" }, { "name": "Mojang", "type": "MojangAPI" }, ...... 注意:
自定义皮肤站最好排在Mojang API的前面,不然的话如果有正版用户起的角色名字和你的一样,就会默认载入他的皮肤(巨坑+1)

云服务器入门指南 :: Colinx Blog — Colin的个人博客

https://blog.colinx.one/posts/%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97/

云服务器入门指南
前言 各大厂商持续发力云计算,上云的门槛也越来越低。获取云服务器的门槛越来越低,但是真正使用好云服务器的难度一直都很高。本文旨在为新上云的小白提供方向性的指引并引导入坑 : )

云服务器相关的几个概念
服务器的操作系统 主要分为两大阵营:Windows Server和Linux Server。前者一般自带可视化界面,基本兼容平时使用的exe程序,某种程度上也可以作为“云电脑”使用。后者一般不自带图形化界面,操作都通过特定命令完成,上手难度较高,但配置各种开发环境、安装各类高级工具比win平台更容易。没有Linux基础的用户建议先在本地建立虚拟机练习。
Linux Server主要的两个阵营为Debian系、RedHat系。主要的发行版
Debian系:Debian, Ubuntu RedHat系:RedHat, CentOS, Fedora 对于初学者来说,最明显的区别在于前者使用 apt install xxx 来安装软件,而后者是通过 yum install xxx 来安装。
公网IP IP可以理解为一台设备在互联网世界中的门牌号和地址,相当于知道某个具体的地址就能发快递包裹。IP分为公网IP和内网IP。顾名思义,内网IP一般用于公司或学校内部。一般来说,只知道一台设备的内网IP的情况下并不能准确定位这台设备,就类似于只知道你的朋友的名字,并不能直接给他寄快递,你必须要知道他学校/单位/家的地址才行。
服务器拥有公网IP的好处在于,你可以直接通过这个IP定位到你的服务器,相当于你的服务器在互联网世界中拥有了响当当的名号,只要说出这个名号,互联网世界的公民都能知道他,给他发消息。
*此处公网内网IP的叙述仅适用于IPv4地址。更多关于IPv4地址和IPv6地址的相关信息参见文末扩展阅读。
端口  端口的英文为port,有港口的意思。一般来说,一台设备不同的端口运行着不同的服务,我们可以很好的控制特定端口的开放与关闭,从而控制不同的服务是否对外开放,正如开放一个通商口岸。常见的服务端口有 HTTP 80 HTTPS 443 DNS 53 SSH 22 一个服务也可能不是仅仅通过一个端口提供服务,他可能会将一个大的功能拆分为几个子功能,通过不同的端口与外界通讯。如FTP,SMB等。你可以通过关闭指定端口来详细控制特定服务。当然如果你想想外面提供像FTP这样通过多个端口与外界通讯的端口,就要注意要确保他使用的所有端口都要设置为开放才能保证外界的正常访问。
*FTP是一种文件传输协议,你可以在某些电影资源的下载链接里看见以 ftp:// 开头的链接。这说明这个电影资源是存放在某个FTP服务器上。
关于FTP、SMB的端口使用及配置参见文末扩展阅读
防火墙 防火墙(Firewall)某种程度上是控制本机与外界通讯的工具。下面以几个具体的实例来介绍下防火墙:
你的服务器建了个网站,需要向外提供HTTP服务,那么你需要在防火墙中设置开放80端口,允许其他所有IP访问。 公司有一台服务器搭载了一个仅面向公司员工的网站,希望仅允许公司内的员工访问。而公司内员工的内网IP个格式为192.168.
.,那么就可以在防火墙中设置,仅允许来自IP为192.168..的设备访问这台服务器的80端口,其他一律禁止 近期互联网上流行一种病毒X通过计算机的1234端口感染其他机器。那么为了保护本机不受病毒影响,你可以在防火墙中设置关闭1234端口,禁止任何来源访问1234端口,从而将病毒X阻挡在防火墙外。 注意:对于云服务器来说,可能会存在多重防火墙。一般Linux系统自身会有一套防火墙(firewalld/ufw等),云服务商会有一套网络防火墙(一般为网络安全组/网络访问控制等) 
几种远程连接方式对比 连接方式 SSH VNC RDP 支援平台 Linux,Mac OS,BSD…,Win 需额外安装软件 Linux,Win,Mac OS,iOS,Android 等,基本所有都需额外软件 * Win 自带,其他需额外安装软件 易用性 ★ ★★★ ★★★
可视化界面 否 是 是 网络要求 极低 高 较高 配置难度 ★ ★★★ ★★ *1 部分Linux发行版自带VNC连接,不过大部分需手动启用 *2 RDP连接对于同为Win的机器更为容易,对于平台不一样的情况,配置比较麻烦

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.