Total Pageviews

Showing posts with label internet. Show all posts
Showing posts with label internet. Show all posts

Monday, 3 November 2025

微信是怎么知道你在哪儿的?

 IP属地的显示不限于博主发表文章,还有粉丝的留言,也会显示IP属地的。

这个功能不能是强制开启的,不能关闭,也就是会一直显示IP属地。

显示IP属地本来是一件不错的事,比如可以减少恶意造谣、给发布有害信息者以震慑等等,但是没想到的是,最先受影响的反而是一些知名博主~
真假本地博主

比如做本地咨询的博主,他们的官方认证也是本地博主,但是IP属地显示都是「湖南」。

本地博主

以上专门做北京地区吃喝玩乐周边的,自己微博资料和认证填的都是北京,但是IP属地显示的这些博主都在湖南。

其实不止北京,上海、深圳、成都等地的吃喝玩乐显示的也都是湖南,让网友们不得不感叹湖南真的好NB,「宇宙的尽头竟然是湖南」。

除了本地咨询博主外,还有一些专门做海外的博主,天天拍摄自己在海外的生活的,没想到竟然在国内~。

珊瑚虫时代

对于显示IP属地这件事,其实并不稀奇,如果你是有点年龄的老网虫,你可能听说过珊瑚虫版QQ,它是一个腾讯QQ的辅助软件。

珊瑚虫QQ是基于腾讯QQ的第三方辅助软件,包括完整的珊瑚虫集成版安装套件以及属于外挂类型的珊瑚虫增强包。前者是对QQ进行精简并加入珊瑚虫功能组件后,进行打包所得到的;后者则只需要在被解压到指定的QQ程序的安装目录下之后,直接点击运行即可。一般来说,此程序在运行过程当中,并不会修改腾讯QQ的程序源代码。

https://baike.baidu.com/item/%E7%8F%8A%E7%91%9A%E8%99%ABQQ/551980

上面这张经典的图片很多人都不陌生,注意看左上角,它可以显示该QQ好友的详细地址,用的是电信ADSL也知道,还有IP以及用的QQ版本。

这个信息是非常详细的,也很恐怖,按照现在的说法,这已经侵犯了隐私。所以现在各大平台开放IP属地功能,只显示了省份、直辖市,如果是海外的,只显示国家也是为了用户隐私考虑,既可以起到一定的作用,又避免太详细侵犯用户隐私。

那么IP属地是怎么显示的呢?以微信公众号为例,作者发布的文章、粉丝的留言,微信是怎么知道你在哪儿的?
微信如何收到消息

上网,其实就是把我们用的设备接入到网络中,这些被接入的设备可能是你的手机、电脑或者PAD等,每个接入互联网的设备都会被分配一个唯一的身份,这个身份可以简单的理解为该身份的唯一身份标识,也就是IP。

微信的服务器也是一个设备,它也会有一个IP地址。当你在一篇公众号文章后留言的时候,就等于从你的手机,给微信的服务器发了一个快递,这个快递大概的格式如下所示:

发件人:你
发件人地址:你的IP地址(112.82.45.45)

快递内容:哈哈,我要上墙。

收件人:微信
收件人地址:微信服务器的IP地址(114.114.23.23)

这样当微信收到你的快递的时候,它就知道了你的地址,也就是你的IP。这个就和我们现实中邮寄快递一样的,我们收到一个快递的时候, 就知道这个快递从哪邮寄的,也就知道了发件人的地址。

但是互联网和现实中不一样,微信知道的地址是IP地址,并不是现实中的真实地址。

虽然微信现在还不知道发件人的真实现实中的地址,但是已经有了IP地址,下一步,微信只需要根据IP获取到现实中的地址,就知道发件人的IP属地了。
快递和微信消息

现实中,我们邮寄快递的时候,也不可能从出发地直接到目的地,这中间需要经过一个个的中转点,也就是我们通常说的邮局。

比如从北京朝阳区某个小区邮寄的快递,要送到广东深圳南山区的某个小区,要经过哪些邮局(中转点)呢?

    快递员收取快递后,先都放到朝阳区的集散点
    集散点的工作人员,发现该快递是发往外省的,会把该快递转发给北京总集散中心。
    北京集散中心收到快递后,根据地址,会发往广东集散中心
    广东集散中心收到快递后,继续根据地址发往深圳集散中心
    深圳集散中心继续分发到南山区的集散中心
    然后继续分发该快递到小区所属片区的快递点
    然后快递员投放到该小区的收件人

以上是一个跨省快递大概的轨迹,所以我们平时通过快递号查询的时候,可以看到这个快递详细的物流轨迹,可以告诉你这个快递走到哪里了。

在互联网中,信息的传递也和快递类似,它也有类似邮局的中转点,叫「自治系统」,也就是Autonomous System。整个互联网就是由一个个不同的自治系统组成的。

自治系统

比如我们自己拉的宽带,就是某个运营商那里接入的,这个运营商肯定运营着至少一个自治系统,然后你的手机、电脑等就被接入其中一个自治系统。

由此可以推出,任何一个联网的设备,都接入了一个唯一的自治系统,而每一个自治系统就像一个邮局一样,被某个组织运营着,这样,自治系统就有了现实中的位置。

比如自治系统AS56823是在北京市朝阳区电信,那么接入到AS5682的设备都是属于这个地址的,自然这些设备的IP属地也是这个地址的。

 



所以,微信就是这样根据你的IP,知道你的IP属地的,然后知道你在哪。
IP地址归属地

再次回到刚刚那个微信公众号留言的例子,微信知道了你的IP是112.82.45.45,然后它可以查询到这个IP是属于哪个自治系统,然后就知道你的IP属地是江苏。

IP

其实不止是微信,如果你知道一个IP,你也可以查询它的IP属地,这些信息都是公开的,可以通过Google搜索IP地址查询,找一个网站即可查询。

所以现在我们大概清楚了,一个IP地址属属于一个自治系统的,一个自治系统是属于一个组织(运营者),一个组织是属于一个国家的,这样根据一个IP就可以定位到一个大概的地址位置,因为组织是现实中的,是有具体位置的。
小结

我们知道IP资源是很珍贵的,那么分配它的自治系统也不是随便个组织都可以的运营的,一般会到县、区级别,再小的乡镇、村甚至小区就没有。

这也就意味着通过IP查地址,最多只能查到县区级别,再细的就查不到了。

如果只从自治系统这个思路查,肯定查不到更精确的位置了。但是别忘了,我们在拉网线的时候,会不会登记了很多信息?你的姓名、身份证,详细住址(到房间号的那种)等等都登记了对吧?

在你上网的时候,你的IP是自治系统给你分配的,它把哪个IP分配给谁了,它是很清楚的,所以再根据你填的登记信息,精确到你房间号也是可以的。

不过这里要特别强调,这个更精确的位置信息不是谁都有权限可以去运营商那里查的,所以大家可以放心,不用太担心。

当然,也不要觉得自己在网络上,没人找到自己,心存侥幸,只要找,都可以找到的

Tuesday, 28 January 2025

TCP和UDP的优缺点


TCP的优点:

可靠,稳定 TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。

TCP的缺点:

慢,效率低,占用系统资源高,易被攻击 TCP在传递数据之前,要先建连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量的时间,而且要在每台设备上维护所有的传输连接,事实上,每个连接都会占用系统的CPU、内存等硬件资源。 而且,因为TCP有确认机制、三次握手机制,这些也导致TCP容易被人利用,实现DOS、DDOS、CC等攻击。

UDP的优点:

快,比TCP稍安全 UDP没有TCP的握手、确认、窗口、重传、拥塞控制等机制,UDP是一个无状态的传输协议,所以它在传递数据时非常快。没有TCP的这些机制,UDP较TCP被攻击者利用的漏洞就要少一些。但UDP也是无法避免攻击的,比如:UDP Flood攻击……

UDP的缺点:

不可靠,不稳定 因为UDP没有TCP那些可靠的机制,在数据传递时,如果网络质量不好,就会很容易丢包。

TCP/UDP应用场景:

基于上面的优缺点,那么:

什么时候应该使用TCP:

当对网络通讯质量有要求的时候,比如:整个数据要准确无误的传递给对方,这往往用于一些要求可靠的应用,比如HTTP、HTTPS、FTP等传输文件的协议,POP、SMTP等邮件传输的协议。 在日常生活中,常见使用TCP协议的应用如下: 浏览器,用的HTTP FlashFXP,用的FTP Outlook,用的POP、SMTP Putty,用的Telnet、SSH QQ文件传输 …………

那么什么时候应该使用UDP:

当对网络通讯质量要求不高的时候,要求网络通讯速度能尽量的快,这时就可以使用UDP。 比如,日常生活中,常见使用UDP协议的应用如下: QQ语音 QQ视频 TFTP ……

Friday, 8 November 2024

Tuesday, 15 October 2024

快速了解必要的网络知识

 

以太网有以太网的通讯标准,标准由IEEE制定,IEEE和ISO一样是个标准组织,如今的链路层均遵循其标准,这是一系列的标准,相当庞大而复杂(如果细分的话,以太网本身就有多种标准)这个系列标准叫“IEEE 802系列”,IEEE 802系列标准之庞大,包括了几乎所有我们能见到的网络——以太网、2G、3G、4G、WIFI、近场通讯……等等,而每个我们熟悉的名词拆分开又有不同的标准定义,真是烦!——所幸的是我们不需要管那么多,我们只需要知道,在链路层上传输的单元叫“帧”,而帧中包含了“MAC地址”,俗称“物理地址”,链路层不提供路由功能,若无上层协议的支持,链路层只能实现直接连接的节点之间通讯,比如你的电脑的网口连着公司的交换机,只依赖链路层的话,你的电脑就只能跟公司的交换机聊聊天。关心链路层的人更多的是电子工程师或网管,我等码农大致看看就好。

如何路由?

网络层是对链路层的封装,最重要的东西应数IP地址,有了IP地址,就有了路由的能力,使得通讯可以跨越多个节点,实现网间通讯了,这相当好理解,交换机理解IP地址和网口的对应关系,它知道这个网络包(前面叫“帧”,这里叫“包”了,哈哈,真会整人)应该往哪个网口丢,如果实在不知道,那么就往“网关”丢,网关再往别处丢,如果IP地址正确,网络也没什么问题,那总归能抵达目的地的,这就是IP协议最重要的任务——路由。

也许你想问:有没有不用IP协议的网络?有啊,蓝牙设备通常就不用(蓝牙的规范且不在IEEE802系列中),其实是没必要,因为它通常只作为单点连接,不需要实现网间通讯,反过来说,如果要实现网间通讯,应该没什么比IP协议更合适的了。

为啥要弄个端口出来?

光有IP地址,恐怕还不够,想想我们电脑上N多程序都需要使用网络,那么如何区分程序各自的网络访问包呢?如果分不开,那岂不是乱了套,所以要用传输层包装,传输层包装里多了一个“端口”的东西。例如:我们在电脑上启动Web服务器,默认打开了80端口监听,一个端口只能由一个程序打开,这样就不会乱套了。端口是对网络层的进一步扩展,对上层提供了更友好的使用界面。

TCP如何做到有连接?

有了TCP协议,从此有了“连接”的概念,否则你想连接从何而来?从网络层上看,反正都是一个个网络包,前一个包传了过去,后一个包被交换机卡住了,没看出来“连接”在哪里啊,其实“有连接”只是个概念,它的原理是通过那些“握手”、“挥手”、“心跳”、“应答”和“超时检查”在传输的双方保持了一些“状态”,所以,准确说是“看起来有连接”而已。

对开发者而言网络到底是怎样的存在?

那传输层体现在应用程序上又是个怎么样的东西?——是Socket。网络编程是件挺头疼的事情,从一开始就是,所以弄了个Socket的概念出来方便我们程序员访问网络,这最早是出现在Unix系统上的,后来Windows也借鉴了这套方法,搞了套自己的Socket API,用起来大家都很像。总体的编程思想大概就是(以TCP客户端为例):指定目标服务器IP地址和端口,连接,获取到了Socket(通常用一个整型数来表示),以后就往这个Socket上读写东西(跟读写本地文件有些类似)来实现收发,中间还可以用一些函数查询这个Socket的状态,不用了之后就close掉这个Socket以断开TCP连接。这是比较简单的情形,事实上,为了更好地挖掘系统的潜能,提高系统的网络吞吐量,不同的系统还祭出了自己的一些所谓高级网络编程模型,如Windows的完成端口,Linux的epoll等,但对程序而言,网络访问依旧是对Socket进行操作。实际上,程序员们仍然认为Socket是比较底层的东西,需要进一步抽象,于是诞生了如HttpContext之类东西,大伙们不再需要直接操作Socket了,甚至都可以不知道Socket的存在。

TCP提供了哪些可靠性?

主要两方面:成功保障和次序保障。对于成功保障,很好理解,如果网络包发送成功,对方应答一下,发送方便知道了,认为接收方一定成功接收;而次序保障,则是通过在传输包中加入一个次序标识来实现的,当传输包抵达对方节点时,TCP根据次序标识对收到的内容重新“组包”。那么,现在考虑一下这种可能性:发送方的包确实已经发送至接收方了,但接收方的应答却没有成功发往发送方,这时候是不是会错误判断为发送失败?——答案是肯定的,所以TCP有个重发机制,当迟迟没收到应答的时候,会尝试重发数次,如果依旧出现没有应答,那就真的判定为失败了,所以TCP能知道“一定成功”,但却无法知道“一定失败”。

真的可靠吗?

TCP连接为我们的程序通信创造了一条“通道”,我们程序间发送数据就变得有保障起来,那根据上面提供的这些信息,你认为这条通道有多牢靠?——事实上是这样的:如果网络系统确确实实按照了既定的规则去工作的话,可靠性是显而易见的,但,谁说网络上途径的这么多节点每个都会老老实实工作?有没有可能在传输过程中将我们的包截获并篡改?或者干脆就直接造一个假的包冒充发送?——我说,这种事情不光可能,而且一直在发生!不需要我证明给你看,你自己想想,有没有自己建了一个好端端的网站,别人打开的时候却无缘无故弹出广告之类的事情发生?而你确信自己的网站没问题,没中病毒之类的……恭喜你啊,你的网站被电信劫持了,你的页面在传输中被篡改了,HTTP协议是基于TCP的,所以你说从这个角度看可不可靠?



如何做到真的可靠?

当然是使用SSL,SSL现在又叫TLS,但旧名字叫惯了就沿用下来,它是在传输层上包了一层加密,这层加密实现了这些功能:

  • 密钥不直接在网络上传输(通过一个非对称加密实现)
  • 所有数据皆经过加密,即便截获也没用
  • 如果试图伪造或篡改数据包,那接收方一定知道数据不合法并丢弃

另外SSL还可以通过层级证书手段,对传输方的身份进行认证。某大牛说过:“没有SSL的安全都是在假装安全。”用了SSL之后,传输安全了,网站图标绿了,框也不弹了。另外注意:SSL是用来防范“中间人攻击”的手段,至于主机上中了木马之类的,它却无能为力。

关于TCP还有哪些东西没谈?

太多了,比如流量控制,但我不打算说,否则此文就没什么意义了。一般来说,需要的时候才去学比较好,虽然技不压身,这个谁都清楚,可学习技术要花不少时间,而且最关键的是:人是会遗忘的,尤其是学而不用的话。

不是还有个叫UDP的东西吗?

传输层有两套协议,一是前面提到的TCP,另一是UDP,TCP如今大行其道,而UDP则用得很少,UDP是无连接协议,比TCP简单得多,最形象的比喻就是以前的“写信”,我写好信了之后(发送的数据),把信装进信封(UDP包),写上地址和收件人(IP地址端口),扔进邮箱(send)即可,既不等待应答,也不保证次序,也没有连接通道的概念。由于UDP形式如此简单,所以在以前某些特定的环境里,它传输效率高于TCP,所以被用于一些对传输性能要求比较苛刻的场景,如网游,但现在世道变了,网络资源不再像当年那么紧张,TCP显然是更好的选择。当然了,还有些特殊场合是非用UDP不可的,如实现局域网广播,这个TCP做不到。

为什么IP地址仍然不枯竭?

我们常说的IP地址指的是IPv4地址,例如“10.186.3.21”,其实它是个32位整型,表面上看最高可支持2的32次方个节点,即42亿多,事实上远远没那么多,首先其中有很多属于“保留地址”,做特殊用途使用的,其次,大量优质地址段被一些寡头占据了(主要是美国政府及美国一些科技公司),所以剩下的可用地址可谓宝贵,国人早意识到了这点,所以很早就发力研究IPv6,我在N年前就看到过国内XX大学的教授在带学生研究IPv6的一些报道,号称我们走在了世界领先,报道还做了一些技术细节介绍,如IPv4是“xxx.xxx.xxx.xxx”这样(四段),而IPv6则变成了“xxx.xxx.xxx.xxx.xxx.xxx”(六段),所以地址多了很多……我晕!我虽然读书少,但也少拿这个来糊弄我了,事实上的IPv6地址高达128位,与之最接近的是什么?——作为程序员,马上回答!UUID啊!UUID不也128位么?——有点跑题了,回到正题,为啥现在IP地址仍然不枯竭?——那是因为我们绝大多数人都没有公网地址。这个你可以马上自己试试,比如你的手机,连着3G,貌似接入了公网了,你还可以在设置中看到自己的IP地址,这是运营商分配的,但我向你保证,这个地址其实是运营商的局域网地址,要证明很简单,你用手机浏览器打开http://www.ip138.com/看看自己的“公网IP”,是不是不一样?也就是说,你想用手机当服务器让Internet上的用户来连是不行的。虽然没有公网,但通过NAT,我们照样访问Internet没啥问题。至于推IPv6的事情,我觉得还是让教授们去干吧。

为什么到处都是HTTP?

我想那是因为——简单!HTTP是一个基于TCP的请求/应答模型的协议,客户端一问,服务器一答,就这么简单,跟程序里的函数调用似的,所以很多RPC在底下也使用了HTTP协议,HTTP协议还使用了非常易读的文本格式,一出就被广泛追捧。如今广泛使用的HTTP 1.1协议最后的一次修订是在1999年,距今17年了,看吧,越是简单基础的东西越不容易变化。

如何抓包分析?

如果仅仅是想抓取HTTP包的话,IE的HttpWatch Pro是不错的东西,Firefox下有个跟它类似的叫“httpfox”,我不知道现在还在不在,chrome的话本身也提供了一些简单的查看http包的功能。想专业一点的话可以考虑用Fiddler,Windows环境下的抓包利器,Mac下则用Charles。当然了,最强大(但也很复杂)的抓包神器当然是Wireshark,这玩意儿甚至能看链路层的帧。

最后讲点有趣的?

很多年前我的公司由于网口少,我跟一个同事共用一个网口(通过一个集线器),集线器这玩意儿跟交换机不同,它不会“路由”,收到任何包都是直接广播到所有网口,于是我用抓包工具抓了一些网络包,这位同事用MSN的聊天信息我全部都能看到,由于这样,我后来一直不敢用MSN在公司里乱说话,你想MSN这么烂的东西为啥公司喜欢让我们用呢?不过几年后MSN用户就几乎绝迹了.

Saturday, 29 June 2024

awesome-sysadmin

 A curated list of amazingly awesome open source sysadmin resources inspired by Awesome PHP.

Contributing

Please read CONTRIBUTING if you wish to add software.

Table of Contents

Backups

Backup software.

  • Amanda - Client-server model backup tool.
  • Attic - A deduplicating backup program written in Python.
  • Bacula - Another Client-server model backup tool.
  • Bareos - A fork of Bacula backup tool.
  • Barman - Backup and Recovery Manager for disaster recovery of PostgreSQL servers.
  • Backupninja - Lightweight, extensible meta-backup system.
  • Backuppc - Client-server model backup tool with file pooling scheme.
  • Brebis - A fully automated backup checker.
  • Bup - Incremental backups with rolling checksums, git packfiles, de-duplication, and a FUSE filesystem.
  • Burp - Network backup and restore program.
  • Duplicati - Multiple backends, encryption, web-ui and multi-OS backup tool.
  • Duplicity - Encrypted bandwidth-efficient backup using the rsync algorithm.
  • FreeFileSync - Folder comparison and synchronization tool.
  • Lsyncd - File Monitor which spawns a process to synchronize the changes (rsync by default).
  • restic - Fast, secure, efficient backup program
  • Rsnapshot - Filesystem Snapshotting Utility.
  • SafeKeep - Centralized pull-based backup using rdiff-backup.
  • Snebu – Snapshot backup with global multi-client deduplication and transparent compression.
  • UrBackup - Another client-server backup system.
  • ZBackup - A versatile deduplicating backup tool.

Backup libraries.

  • Backup - Provides an elegant DSL in Ruby for performing backups on UNIX-like systems.
  • DREBS - AWS EBS backup script that supports strategies.

Build Automation

Build automation tools.

  • Apache Ant - Automation build tool, similar to make, written in Java.
  • Apache Maven - Build automation tool mainly for Java.
  • GNU Make - The most popular automation build tool for many purposes.
  • Gradle - Another open source build automation system.

ChatOps

Conversation-driven development & management.

  • CloudBot - The simple, fast, expandable, open-source Python IRC bot.
  • Eggdrop - The world's most popular Open Source IRC bot, designed for flexibility and ease of use.
  • Err - A plugin based chatbot designed to be easily deployable, extensible and maintainable.
  • Hubot - A customizable, life embetterment robot.
  • Lazlo - A chatops automation framework in Go.
  • Lita - A robot companion for your company's chat room.
  • KeyBase - Encrypted chat, cloud and git.

Cloning

Cloning software.

  • Clonezilla - Partition and disk imaging/cloning program.
  • Fog - Another computer cloning solution.
  • Redo Backup - Easy Backup, Recovery and Restore.

Cloud Computing

  • AppScale - Open source cloud software with Google App Engine compatibility.
  • Archipel - Manage and supervise virtual machines using Libvirt.
  • CloudStack - Cloud computing software for creating, managing, and deploying infrastructure cloud services.
  • Cobbler - Cobbler is a Linux installation server that allows for rapid setup of network installation environments.
  • Eucalyptus - Open source private cloud software with AWS compatibility.
  • Mesos - Develop and run resource-efficient distributed systems.
  • OpenNebula - An user-driven cloud management platform for sysadmins and devops.
  • Openshift Origin - Open source upstream of OpenShift, the next generation application hosting platform developed by Red Hat.
  • OpenStack - Open source software for building private and public clouds.
  • The Foreman - Foreman is a complete lifecycle management tool for physical and virtual servers. FOSS.
  • Tsuru - Tsuru is an extensible and open source Platform as a Service software.
  • Terraform - Terraform allows you to practice infrastructure as code and is commonly used for AWS/GCE.

Cloud Orchestration

  • BOSH - IaaS orchestration platform originally written for deploying and managing Cloud Foundry PaaS, but also useful for general purpose distributed systems.
  • Ansible - Contains modules for controlling many types of cloud resources.
  • Cloudify - Open source TOSCA-based cloud orchestration software platform written in Python and YAML.
  • consul - It is a tool for discovering and configuring services in your infrastructure.
  • doozerd - Doozer is a highly-available, completely consistent store for small amounts of extremely important data.
  • etcd - A highly-available key value store for shared configuration and service discovery.
  • Juju - Cloud orchestration tool which manages services as charms, YAML configuration and deployment script bundles.
  • MCollective - Ruby framework to manage server orchestration, developed by Puppet labs.
  • Overcast - Deploy VMs across different cloud providers, and run commands and scripts across any or all of them in parallel via SSH.
  • Rundeck - Simple orchestration tool.
  • Salt - Fast, scalable and flexible systems management software written in Python/ZeroMQ.
  • serf - Serf is a tool for cluster membership.
  • StackStorm - Event Driven Operations and ChatOps platform for infrastructure management. Written in Python.
  • zookeeper - ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services.

Cloud Storage

  • git-annex assistant - A synchronised folder on each of your OSX and Linux computers, Android devices, removable drives, NAS appliances, and cloud services.
  • nextCloud - Provides access to your files via the web
  • ownCloud - Provides universal access to your files via the web, your computer or your mobile devices.
  • Seafile - Another Open Source Cloud Storage solution.
  • SparkleShare - Provides cloud storage and file synchronization services. By default, it uses Git as a storage backend.
  • Swift - A highly available, distributed, eventually consistent object/blob store.
  • Syncthing - Open Source system for private, encrypted and authenticated distribution of data.

Code Review

Web Based collaborative code review system.

  • Gerrit - Based on the Git version control, it facilitates software developers to review modifications to the source code and approve or reject those changes.
  • Phabricator - Code review tool build by facebook and used by WikiMedia, FB, dropbox etc. Comes with an integrated wiki, bug tracker, VC integration and a CLI tool called arcanist.
  • Review Board - Web-based collaborative code review tool.

Collaborative Software

Collaborative software or groupware suites.

  • Citadel/UX - Collaboration suite (messaging and groupware) that is descended from the Citadel family of programs.
  • EGroupware - Groupware software written in PHP.
  • Horde Groupware - PHP based collaborative software suite that includes email, calendars, wikis, time tracking and file management.
  • Kolab - Another groupware suite.
  • SOGo - Collaborative software server with a focus on simplicity and scalability.
  • Zimbra - Collaborative software suite, that includes an email server and web client.

Configuration Management Database

Configuration management database (CMDB) software.

  • Clusto - Helps you keep track of your inventory, where it is, how it's connected, and provides an abstracted interface for interacting with the elements of the infrastructure.
  • Collins - At Tumblr, it's the infrastructure source of truth and knowledge.
  • i-doit - Open Source IT Documentation and CMDB.
  • iTop - Complete open source, ITIL, web based service management tool.
  • Ralph - Asset management, DCIM and CMDB system for large Data Centers as well as smaller LAN networks.
  • Sicekit - The systems & infrastructure encyclopaedia toolkit (based on MediaWiki).

Configuration Management

Configuration management tools.

  • Ansible - It's written in Python and manages the nodes over SSH.
  • CFEngine - Lightweight agent system. Configuration state is specified via a declarative language.
  • Chef - It's written in Ruby and Erlang and uses a pure-Ruby DSL.
  • mgmt - Next generation config management written in Go.
  • Pallet - Infrastructure definition, configuration and management via a Clojure DSL.
  • Puppet - It's written in Ruby and uses Puppet's declarative language or a Ruby DSL.
  • (R)?ex - It's written in Perl and use plain Perl, over SSH without agent.
  • Salt - It's written in Python.
  • Slaughter - It's written in Perl.

Continuous Integration & Continuous Deployment

Continuous integration/deployment software.

  • Buildbot - Python-based toolkit for continuous integration.
  • Drone - Continuous integration server built on Docker and configured using YAML files.
  • GitLab CI - Based off of ruby. They also provide GitLab, which manages git repositories.
  • Go - Open source continuous delivery server.
  • Jenkins - An extendable open source continuous integration server.
  • Concourse CI - A pipeline-based CI system written in Go.
  • Spinnaker - Open source, multi-cloud continuous delivery platform for releasing software changes.
  • TeamCity - Powerful Continuous Integration out of the box

Control Panels

Web hosting and server control panels.

  • Ajenti - Control panel for Linux and BSD.
  • Cockpit - New multi-server web interface for Linux servers written in C.
  • Feathur - VPS Provisioning and Management Software.
  • Froxlor - Easy to use panel for Linux with Nginx and PHP-FPM support.
  • ISPConfig - Hosting control panel for Linux.
  • Sentora - Control panel for Linux, BSD, and Windows based on ZPanel.
  • VestaCP - Hosting panel for Linux but with Nginx.
  • Virtualmin - Control panel for Linux based on webmin.
  • Webmin - Linux server control panel.
  • ZPanel - Control panel for Linux, BSD, and Windows.

Deployment Automation

Tools and scripts to support deployments to your servers.

  • Capistrano - Deploy your application to any number of machines simultaneously, in sequence or as a rolling set via SSH (rake based).
  • Fabric - Python library and cli tool for streamlining the use of SSH for application deployment or systems administration tasks.
  • Mina - Really fast deployer and server automation tool (rake based).
  • Rocketeer - PHP task runner and deployment tool.
  • Vlad the Deployer - Deployment automation (rake based).

Diagramming

Tools to diagram networks.

  • drawthe.net - Draws network diagrams dynamically from a text file describing the placement, layout and icons.

Distributed Filesystems

Network distributed filesystems.

  • Ceph - Distributed object store and file system.
  • DRBD - Distributed Replicated Block Device.
  • LeoFS - Unstructured object/data storage and a highly available, distributed, eventually consistent storage system.
  • GlusterFS - Scale-out network-attached storage file system.
  • HDFS - Distributed, scalable, and portable file-system written in Java for the Hadoop framework.
  • Lustre - A type of parallel distributed file system, generally used for large-scale cluster computing.
  • MooseFS - Fault tolerant, network distributed file system.
  • MogileFS - Application level, network distributed file system.
  • OpenAFS - Distributed network file system with read-only replicas and multi-OS support.
  • TahoeLAFS - secure, decentralized, fault-tolerant, peer-to-peer distributed data store and distributed file system.
  • XtreemFS - XtreemFS is a fault-tolerant distributed file system for all storage needs.

DNS

DNS servers.

  • Bind - The most widely used name server software.
  • djbdns - A collection of DNS applications, including tinydns.
  • Designate - DNS REST API that support several DNS servers as its backend.
  • dnsmasq - A lightweight service providing DNS, DHCP and TFTP services to small-scale networks.
  • Knot - High performance authoritative-only DNS server.
  • NSD - Authoritative only, high performance, simple name server.
  • PowerDNS - DNS server with a variety of data storage back-ends and load balancing features.
  • Unbound - Validating, recursive, and caching DNS resolver.
  • Yadifa - Lightweight authoritative Name Server with DNSSEC capabilities powering the .eu top-level domain.

Editors

Open source code editors.

  • Atom - A hackable text editor from GitHub.
  • Brackets - Open source code editor for web designers and front-end developers.
  • Eclipse - IDE written in Java with an extensible plug-in system.
  • Geany - GTK2 text editor.
  • GNU Emacs - An extensible, customizable text editor-and more.
  • Haroopad - Markdown editor with live preview.
  • ICEcoder - Code editor awesomeness, built with common web languages.
  • IntellijIDEA - Capable and ergonomic IDE, written in Java, It has a lot of plug-ins.
  • jotgit - Git-backed real-time collaborative code editing.
  • Light Table - The next generation code editor.
  • Lime - Aims to provide an open source solution to Sublime Text
  • SciTE - A SCIntilla based Text Editor.
  • TextMate - A graphical text editor for OS X.
  • Vim - A highly configurable text editor built to enable efficient editing.
  • Nano - A popular text editor, by default comes with most Linux distributions.
  • Visual Studio Code - Fast, hackable, multi-platform code editor from Microsoft.

IT Asset Management

IT Assets Management software.

  • GLPI - Information Resource-Manager with an additional Administration Interface.
  • OCS Inventory NG - Enables users to inventory their IT assets.
  • Netbox - IP address management (IPAM) and data center infrastructure management (DCIM) tool.
  • RackTables - Datacenter and server room asset management like document hardware assets, network addresses, space in racks, networks configuration.
  • Ralph - Asset management, DCIM and CMDB system for large Data Centers as well as smaller LAN networks.
  • Snipe IT - Asset & license management software.
  • OpenDCIM - A web based Data Center Infrastructure Management application.

LDAP

LDAP servers.

LDAP management

Log Management

Log management tools: collect, parse, visualize ...

  • Echofish - A web based real-time event log aggregation, analysis, monitoring and management system.
  • Elasticsearch - A Lucene Based Document store mainly used for log indexing, storage and analysis.
  • Fluentd - Log Collector and Shipper.
  • Flume - Distributed log collection and aggregation system.
  • Graylog2 - Pluggable Log and Event Analysis Server with Alerting options.
  • Heka - Stream processing system which may be used for log aggregation.
  • Kibana - Visualize logs and time-stamped data.
  • Logstash - Tool for managing events and logs.
  • Octopussy - Log Management Solution (Visualize / Alert / Report).

Mail Servers

Mail Delivery Agents (IMAP/POP3 software).

  • Courier IMAP/POP3 - Fast, scalable, enterprise IMAP and POP3 server.
  • Cyrus IMAP/POP3 - Intended to be run on sealed servers, where normal users are not permitted to log in.
  • Dovecot - IMAP and POP3 server written primarily with security in mind.
  • Qpopper - One of the oldest and most popular server implementations of POP3.

Mail Transfer Agents (SMTP servers).

  • Exim - Message transfer agent (MTA) developed at the University of Cambridge.
  • Haraka - A high-performance, pluginable SMTP server written in JavaScript.
  • MailCatcher - Ruby gem that deploys a simply SMTP MTA gateway that accepts all mail and displays in web interface. Useful for debugging or development.
  • Maildrop - Open Source disposable email SMTP server, also useful for development.
  • OpenSMTPD - Secure SMTP server implementation from the OpenBSD project.
  • Postfix - Fast, easy to administer, and secure Sendmail replacement.
  • Qmail - Secure Sendmail replacement.
  • Sendmail - Message transfer agent (MTA).

Complete solutions.

  • Mail-in-a-Box - Take back control of your email with this easy-to-deploy mail server in a box.
  • iRedMail - Full-featured mail server solution based on Postfix and Dovecot.

Messaging

XMPP servers.

  • ejabberd - XMPP instant messaging server written in Erlang/OTP.
  • Metronome IM - Fork of Prosody IM.
  • MongooseIM - Fullstack real-time mobile messaging platform (XMPP+REST) in Erlang
  • Openfire - Real time collaboration (RTC) server.
  • Prosody IM - XMPP server written in Lua.
  • Tigase - XMPP server implementation in Java.

XMPP web clients.

  • Candy - Multi user XMPP client written in Javascript.
  • Kaiwa - Web based chat client in the style of common paid alternatives.

Webchats.

  • Lets-Chat - A self hosted chat suite written in Node.

Monitoring

Monitoring software.

  • Alerta - Distributed, scaleable and flexible monitoring system.
  • Canopsis - Opensource Hypervision and Data Aggregation Software
  • Cacti - Web-based network monitoring and graphing tool.
  • Cabot - Monitoring and alerts, similar to PagerDuty.
  • Centreon - IT infrastructure and application monitoring for service performance.
  • check_mk - Collection of extensions for Nagios.
  • Flapjack - Monitoring notification routing & event processing system.
  • Icinga - Fork of Nagios.
  • LibreNMS - fork of Observium.
  • Monit - Small Open Source utility for managing and monitoring Unix systems.
  • Munin - Networked resource monitoring tool.
  • Naemon - Network monitoring tool based on the Nagios 4 core with performance enhancements and new features.
  • Nagios - Computer system, network and infrastructure monitoring software application.
  • Node-Bell - Real-time anomalies detection for periodic time series, metrics monitor.
  • Observium - SNMP monitoring for servers and networking devices. Runs on linux.
  • Opsview - Based on Nagios 4, Opsview Core is ideal for small IT and test environments.
  • Riemann - Flexible and fast events processor allowing complex events/metrics analysis.
  • Sensu - Open source monitoring framework.
  • Sentry - Application monitoring, event logging and aggregation.
  • Serverstats - A simple tool for creating graphs using rrdtool. (source on github)
  • Seyren - An alerting dashboard for Graphite.
  • Shinken - Another monitoring framework.
  • Xymon - Network monitoring inspired by Big Brother.
  • Zabbix - Enterprise-class software for monitoring of networks and applications.
  • Zenoss - Application, server, and network management platform based on Zope.

Monitoring dashboards.

  • Adagios - Web based Nagios configuration interface.
  • Dash - A low-overhead monitoring web dashboard for a GNU/Linux machine.
  • Thruk - Multibackend monitoring web interface with support for Naemon, Nagios, Icinga and Shinken.
  • Uchiwa - Simple dashboard for the Sensu monitoring framework.

Monitoring distributions.

  • OMD - The Open Monitoring Distribution.

Metric & Metric Collection

Metric gathering and display software.

  • Collectd - System statistic collection daemon.
  • Collectl - High precision system performance metrics collecting tool.
  • dashing - No Longer Maintained - Ruby gem that allows for rapid statistical dashboard development. An all HTML5 approach allows for big screen displays in data centers or conference rooms.
  • Smashing - Ruby gem that allows for rapid statistical dashboard development. An all HTML5 approach allows for big screen displays in data centers or conference rooms. Fork of Dashing.
  • Diamond - Python based statistic collection daemon.
  • Facette - Time series data visualization and graphing software written in Go.
  • Freeboard - A damn-sexy front-end real-time dashboard. Transforms raw JSON into delicious UI.
  • Ganglia - High performance, scalable RRD based monitoring for grids and/or clusters of servers. Compatible with Graphite using a single collection process.
  • Grafana - A Graphite & InfluxDB Dashboard and Graph Editor.
  • Graphite - Open source scalable graphing server.
  • InfluxDB - Open source distributed time series database with no external dependencies.
  • KairosDB - Fast distributed scalable time series database, fork of OpenTSDB 1.x.
  • NetData - Distributed real-time performance and health monitoring.
  • OpenTSDB - Store and server massive amounts of time series data without losing granularity.
  • Packetbeat - Captures network traffic and displays it in a custom Kibana dashboard for easy viewing.
  • Prometheus - Service monitoring system and time series database.
  • RRDtool - Open source industry standard, high performance data logging and graphing system for time series data.
  • Statsd - Application statistic listener.

Network Configuration Management

Network configuration management tools.

  • GestióIP - An automated web based IPv4/IPv6 IP Address Management tool.
  • NOC Project - Scalable, high-performance and open-source OSS system for ISP, service and content providers.
  • Netbox - IP address management (IPAM) and data center infrastructure management (DCIM) tool.
  • Oxidized - A modern take on network device configuration monitoring with web interface and GIT storage.
  • phpIPAM - Open source IP address management with PowerDNS integration.
  • RANCID - Monitors network device's configuration and maintain history of changes.
  • rConfig - Another network device configuration management tool.
  • trigger - Robust network automation toolkit written in Python.

Newsletters

Newsletter software.

  • DadaMail - Mailing List Manager, written in Perl.
  • phpList - Newsletter manager written in PHP.

NoSQL

Column-Family.

  • Apache HBase - Hadoop database, a distributed, big data store.
  • Cassandra - Distributed DBMS designed to handle large amounts of data across many servers.
  • Hypertable - C++ based BigTable-like DBMS, communicates through Thrift and runs either as stand-alone or on distributed FS such as Hadoop.

Document Store.

  • CouchDB - Ease of use, with multi-master replication document-oriented database system.
  • ElasticSearch - Java based database, popular with log aggregation, and email archiving projects.
  • MongoDB - Another document-oriented database system.
  • RavenDB - Document based database with ACID/Transactional features.
  • RethinkDB - Open source distributed document store database, focuses on JSON.

Graph.

  • FlockDB - Twitter's distributed, fault-tolerant graph database.
  • Neo4j - Open source graph database.

Key-Value.

  • Couchbase - In-memory, replicated, peristent key/value datastore.
  • LevelDB - Google's high performance key/value database.
  • Redis - Networked, in-memory, key-value data store with optional durability.
  • Riak - Another fault-tolerant key-value NoSQL database.

Packaging

  • fpm - Versatile multi format package creator.
  • omnibus-ruby - Full stack, cross distro packaging software (Ruby).
  • packman - Full stack, cross distro packaging software (Python).
  • tito - Builds RPMs for git-based projects.

Queuing

Queuing software.

  • ActiveMQ - An open source message broker written in Java together with a full JMS client.
  • BeanstalkD - A simple, fast work queue.
  • Gearman - Fast multi-language queuing/job processing platform.
  • Kafka - A high-throughput distributed messaging system.
  • NSQ - A realtime distributed messaging platform.
  • RabbitMQ - Robust, fully featured, cross distro queuing system.

Queuing libraries.

  • ZeroMQ - High-performance asynchronous messaging library.

RDBMS

Relational DBMS.

  • Firebird - True universal open source database.
  • Galera - Galera Cluster for MySQL is an easy-to-use high-availability solution with high system up-time, no data loss, and scalability for future growth.
  • MariaDB - Community-developed fork of the MySQL.
  • MySQL - Most popular RDBMS server.
  • Percona Server - Enhanced, drop-in MySQL replacement.
  • PostgreSQL - Object-relational database management system (ORDBMS).
  • PostgreSQL-XL - Scalable Open Source PostgreSQL-based database cluster.
  • SQLite - Library that implements a self-contained, serverless, zero-configuration, transactional SQL DBS.

Security

Security tools.

  • Blackbox - Safely store secrets in Git/Mercurial. Provides tooling to automatically encrypt secrets like passwords.
  • Denyhosts - Thwart SSH dictionary based attacks and brute force attacks.
  • Fail2Ban - Scans log files and takes action on IPs that show malicious behavior.
  • fwknop - Protects ports via Single Packet Authorization in your firewall.
  • Glastopf - A low-interaction web application honeypot to emulate vulnerabilities and gather attack data.
  • Kippo - A medium-interaction SSH honeypot, mostly used as a standalone SSH daemon with a configurable Filesystem sandbox.
  • OSSEC - OSSEC is a HIDS that performs log analysis, FIM, rootkit detection, and much more.
  • OSQuery - Query your servers status and info using a SQL like interface.
  • pfSense - Firewall and Router FreeBSD distribution.
  • Snort - Snort is a free and open source network intrusion prevention system (NIPS) and network intrusion detection system (NIDS) created by Martin Roesch in 1998.
  • SpamAssassin - A powerful and popular email spam filter employing a variety of detection technique.
  • BounCA - BounCA is a personal SSL / Certificate Authority Key management tool. Create self-signed SSL certificates via your browser. (Source Code) Apache Python

Service Discovery

  • Consul - Consul is a tool for service discovery, monitoring and configuration.
  • Doozerd - Doozer is a highly-available, completely consistent store for small amounts of extremely important data.
  • ZooKeeper - ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services.

Software Containers

Operating system–level virtualization.

  • Bitnami - Produces open source installers or software packages for web applications and development stacks as well as virtual appliances.
  • Docker - Open platform for developers and sysadmins to build, ship, and run distributed applications.
  • LXC - Userspace interface for the Linux kernel containment features.
  • LXD - LXD is a container "hypervisor".
  • OpenVZ - Container-based virtualization for Linux.
  • Docker Compose - Fast, isolated development environments using Docker.
  • Singularity - Flexible containers without root.

SSH

SSH tools.

  • Advanced SSH config - Enhances ssh_config file capabilities, completely transparent.
  • autossh - Automatically respawn ssh session after network interruption.
  • Cluster SSH - Controls a number of xterm windows via a single graphical console.
  • DSH - Dancer's shell / distributed shell - Wrapper for executing multiple remote shell commands from one command line.
  • Mosh - The mobile shell.
  • parallel-ssh - Provides parallel versions of OpenSSH and related tools.
  • pdsh - Pdsh is a high-performance, parallel remote shell utility.
  • SSH Power Tool - Execute commands and upload files to many servers simultaneously without using pre-shared keys.
  • sshrc - sources ~/.sshrc on your local computer after logging in remotely.
  • stormssh - A command line tool to manage SSH connections.

Statistics

Analytics software.

  • Analog - Logfile Analyser.
  • AWStats - Generates web, streaming, ftp or mail server statistics graphically.
  • GoAccess - Real-time web log analyzer and interactive viewer that runs in a terminal.
  • Open Web Analytics - Add web analytics to websites using JS, PHP or REST APIs.
  • Piwik - Web analytics application.
  • Webalizer - Fast, free web server log file analysis program.

Status Pages

  • Cachet - An open source status page system written in PHP.

Ticketing systems

Web-based ticketing system.

  • Bugzilla - General-purpose bugtracker and testing tool originally developed and used by the Mozilla project.
  • Cerb - Group-based e-mail management project.
  • Flyspray - Web-based bug tracking system written in PHP.
  • MantisBT - Web-based bug tracking system.
  • osTicket - Simple support ticket system.
  • OTRS - Trouble ticket system for assigning tickets to incoming queries and tracking further communications.
  • Redmine - Open source project management/ticketing web application written in Ruby.
  • Request Tracker - Ticket-tracking system written in Perl.
  • TheBugGenie - Ticket system with extensive user rights system.

Troubleshooting

Troubleshooting tools.

  • mitmproxy - A Python tool used for intercepting, viewing and modifying network traffic. Invaluable in troubleshooting certain problems.
  • Sysdig - Capture system state and activity from a running Linux instance, then save, filter and analyze.
  • Wireshark - The world's foremost network protocol analyzer.

Troubleshooting distributions.

Project Management

Web-based project management and bug tracking systems.

  • ChiliProject - Fork of Redmine.
  • GitBucket Clone of GitHub written in Scala; single jar install.
  • GitLab - Clone of GitHub written in Ruby.
  • Gogs - Self-hosted Git service written in Go.
  • OpenProject - Project collaboration with open source.
  • Phabricator Written in PHP.
  • Redmine - Written in ruby on rails.
  • Taiga - Agile, Free, Open Source Project Management Tool based on the Kanban and Scrum methods.
  • The Bug Genie - Written in PHP.
  • Trac - Written in python.

Version control

Software versioning and revision control.

  • Fossil - Distributed version control with built-in wiki and bug tracking.
  • Git - Distributed revision control and source code management (SCM) with an emphasis on speed.
  • GNU Bazaar - Distributed revision control system sponsored by Canonical.
  • Mercurial - Another distributed revision control.
  • Subversion - Client-server revision control system.

Virtualization

Virtualization software.

  • Archipel - XMPP based virtualization management platform.
  • Ganeti - Cluster virtual server management software tool built on top of KVM and Xen.
  • KVM - Linux kernel virtualization infrastructure.
  • OpenNebula - Flexible enterprise cloud made simple.
  • oVirt - Manages virtual machines, storage and virtual networks.
  • Packer - A tool for creating identical machine images for multiple platforms from a single source configuration.
  • Proxmox VE - Complete open source virtualization management solution.
  • QEMU - QEMU is a generic and open source machine emulator and virtualizer.
  • Vagrant - Tool for building complete development environments.
  • VirtualBox - Virtualization product from Oracle Corporation.
  • Xen - Virtual machine monitor for 32/64 bit Intel / AMD (IA 64) and PowerPC 970 architectures.

VPN

VPN software.

  • OpenVPN - Uses a custom security protocol that utilizes SSL/TLS for key exchange.
  • Pritunl - OpenVPN based solution. Easy to set up.
  • SoftEther - Multi-protocol software VPN with advanced features
  • sshuttle - Poor man's VPN.
  • strongSwan - Complete IPsec implementation for Linux.
  • tinc - Distributed p2p VPN.
  • wireguard - New minimal VPN Solution that is very fast.

Web

Web servers.

  • Apache - Most popular web server.
  • Caddy - The HTTP/2 Web Server with Fully Managed TLS.
  • Cherokee - Lightweight, high-performance web server/reverse proxy.
  • Lighttpd - Web server more optimized for speed-critical environments.
  • Nginx - Reverse proxy, load balancer, HTTP cache, and web server.
  • uWSGI - The uWSGI project aims at developing a full stack for building hosting services.

Web Performance.

  • HAProxy - Software based load Balancing, SSL offloading and performance optimization, compression, and general web routing.
  • Squid - Caching proxy for the web supporting HTTP, HTTPS, FTP, and more.
  • Traefik - Træfɪk is a modern HTTP reverse proxy and load balancer made to deploy microservices with ease.
  • Varnish - HTTP based web application accelerator focusing on optimizing caching and compression.

Webmails

Webmail applications.

  • Mailpile - A modern, fast web-mail client with user-friendly encryption and privacy features.
  • Roundcube - Browser-based IMAP client with an application-like user interface.
  • SquirrelMail - Another browser-based IMAP client.

Wikis

Wiki software.

  • BookStack - A simple, user-friendly wiki built with PHP that uses MySQL for storage.
  • DokuWiki - Simple to use and highly versatile wiki that doesn't require a database.
  • Gollum - A simple, Git-powered wiki with a sweet API and local frontend.
  • ikiwiki - A wiki compiler.
  • MDwiki - Wiki completely built in HTML5/Javascript and runs 100% on the client.
  • MediaWiki - Used to power Wikipedia.
  • MoinMoin - An advanced, easy to use and extensible WikiEngine with a large community of users.
  • Ōlelo Wiki - A a wiki that stores pages in a Git repository.
  • TiddlyWiki - Complete interactive wiki in JavaScript.

Resources

Various resources, such as books, websites and articles, for improving your skills and knowledge.

Blogs

Books

Sysadmin related books.

Newsletters

  • Servers for Hackers - Newsletter for programmers who find themselves needing to know their way around a server.
  • DevOpsLinks - A community of DevOps, SysAdmin & Developers with a weekly newsletter and a team chat.

Repositories

Debian-based distributions.

  • Dotdeb - Repository with LAMP updated packages for Debian.

RPM-based distributions.

  • ElRepo - Community Repo for Enterprise Linux (RHEL, CentOS, etc).
  • EPEL - Repository for RHEL and compatibles (CentOS, Scientific Linux).
  • Remi - Repository with LAMP updated packages for RHEL/Centos/Fedora.
  • Software Collections - Community Release of Red Hat Software Collections. Provides updated packages of Ruby, Python, etc. for CentOS/Scientific Linux 6.x.

Websites

Useful sysadmin related websites.

  • Ops School - Comprehensive program that will help you learn to be an operations engineer.
  • Digital Ocean Tutorials - A surprisingly vast resource for getting the basics of certain applications, tools, or even systems administration topics.

from https://github.com/kahun/awesome-sysadmin

 

Friday, 15 July 2022

一个关于web和Networking的网站hpbn.co

 

High Performance
Browser Networking

© Ilya Grigorik

Performance is a feature. This book provides a hands-on overview of what every web developer needs to know about the various types of networks (WiFi, 3G/4G), transport protocols (UDP, TCP, and TLS), application protocols (HTTP/1.1, HTTP/2), and APIs available in the browser (XHR, WebSocket, WebRTC, and more) to deliver the best—fast, reliable, and resilient—user experience.

§Table of Contents

Networking 101

  1. Primer on Latency and Bandwidth

  2. Building Blocks of TCP

  3. Building Blocks of UDP

  4. Transport Layer Security (TLS)

Performance of Wireless Networks

  1. Introduction to Wireless Networks

  2. WiFi

  3. Mobile Networks

  4. Optimizing for Mobile Networks

HTTP

  1. Brief History of HTTP

  2. Primer on Web Performance

  3. HTTP/1.X

  4. HTTP/2

  5. Optimizing Application Delivery

Browser APIs and Protocols

  1. Primer on Browser Networking

  2. XMLHttpRequest

  3. Server-Sent Events (SSE)

  4. WebSocket

  5. WebRTC

§About the author

Ilya Grigorik is a web performance engineer at Google and co-chair of the W3C Web Performance Working Group. Follow him on his blog and Twitter for the latest web performance news, tips, and talks. 

from  https://hpbn.co/