小工具推荐——Bindp (为Linux程序绑定 IP 地址和端口)

一.介绍

这个软件还是我在V2看到的,当时就收藏了,不过一直没用到,最近在折腾点东西,正好又看到了这个,所以顺便介绍一下,确实是个不错的工具,特殊情况下用起来挺好的。

用途很明确,标题就说了,这个可以在不修改程序本身任何配置文件的情况下将其绑定到另外的端口或者是IP地址,下面是介绍

基于 LD_PRELOAD 机制,可以作用于:

已有的网络程序客户端 /服务器程序,比如nc,curl,wget,nginx等
使用 Java 、 Python 等语言编写的网络 Server 或客户端 Client 程序
特性如下:

绑定制定 IP 地址和端口
添加 SO_REUSEADDR 特性支持
添加 SO_REUSEPORT 特性支持
添加 IP_TRANSPARENT 特性支持

二.安装

没有啥依赖,直接编译就行

连安装都不要,就是这样,因为最后生成的是一个libindp.so文件,只需要在使用时预载就行,这个和tsocks的原理其实比较像,都是通过LD_PRELOAD来劫持实现功能的 阅读全文→

自建云盘系列——Plex (建立你的私人在线片库)

一.介绍

想了想,感觉Plex放到这个系列里还是比较合适的,毕竟专用于存储影片的也算是云盘嘛,而且前面介绍了一堆下载和存储的教程,现在放个这个出来也是挺好的,之后我打算把之前几个在V2上收藏的追番的啥的工具也介绍一下。

如果要想知道什么是Plex,简单的来说,存储+索引+转码+在线播放 这几个标签就能概括Plex的主要功能,在LinusTechTips的某集中还曾经介绍过这个,能够在你自己的设备(NAS或者服务器)上搭建属于你自己的媒体库。全称Plex Media Server,它不仅仅是简单的存储,它还能分析影片的信息从而从IMDB等数据库补全影片介绍等信息,并且进行索引以方便搜索,要知道影片的格式有很多种,很多情况下播放设备无法兼容,所以它还能实时转码,播放渠道从网页到全平台的客户端应有尽有。(当然,号称Media肯定不止能存片,还能存图存歌等等)

二.安装

全部安装方式请参考官网,我这边只给出部分——>传送门

①CentOS

②Docker

启动参数比较多,请参考官方GitHub的说明——>传送门

如果嫌麻烦也可以用第三方做的Docker镜像,去DockerHub搜搜应该有不少 阅读全文→

自建DNS系列——gdnsd (支持状态监控、负载均衡的GeoDNS )

一.介绍

之前看兽兽在V2上介绍了gdnsd的文章,马上点了一波收藏,因为CentOS没有现成的包,所以一直放在那懒得折腾。最近遇到CloudXNS这件事之后开始寻思着拿出来折腾下,在折腾了好几天PowerDNS后终于可以腾出手来搞这货了。

这个还是很有特色的,因为它有个插件系统,功能还是挺强大的,因为实现了自带的状态监控(http以及tcp),并且能够通过多个插件配合实现宕机切换,很有意思,还能通过外部命令来进行自定义的检测。此外,和PowerDNS不同的是这个由于使用了libmaxminddb库,支持GeoIP2格式数据库。

二.安装

比起PowerDNS不如的是这个连个spec都不给,我去网上翻来翻去,结合Github历史Commit中的spec撸了个出来,试了下没报错,感动,至于init脚本,其实不用也行,因为gdnsd自带控制,不过为了方便自启我还是找了个,别人写的,试了下还行就懒得自己动手了,已经打包到rpm文件中——>传送门 

官方的依赖有ragel,而且只支持6.x版本(貌似是因为7.0出来的比较晚或者说官方更新的不勤,最后更新还是16年的了),这就带来了一个问题,CentOS6没这个包,CentOS7又只有7.x的,于是我只能顺便打个ragel的包了,然后因为这个依赖colm,于是……还好主要就这俩,其他的rpmforge以及epel源里都有,当然,为了更好的使用我把libmaxminddb也打包了个最新版本。

总而言之,CentOS6的应该是能直接用我的包了,7的同学可以自己研究下_(:з」∠)_如果我哪天换7了也许会做一份……如果想自己编译的同学请参考官方安装指导——>传送门 阅读全文→

自建DNS系列——PowerDNS GeoIP版(多节点,分区解析)

一.原因

自从月初CloudXNS突然翻脸,以及一个星期了,虽然我在最短的时间内知道了这个消息并在V2顺利骗了一波铜币,然后花了一个晚上迁移自己的一堆域名,成功将这个事件的影响降到了最低。但是,针对这种情况还是需要做一些预防,所以把之前攒的自建DNS的相关资料拿出来好好研究了一下,并在这几天中实验了其中一种,基于PowerDNS的GeoDNS方案,发现效果还行,于是打算分享一下,也顺便做个记录。(之后打算研究下兽兽安利过的gdns,不过这玩意好像在Centos上比较蛋疼)

二.安装

由于Centos6平台求稳,所以各种包的版本都比较落后,因此在PowerDNS的官方源中没有支持GeoIP的版本,这特么就很尴尬了,在Github发issue求助被告知因为yaml-cpp版本不够所以只能自己编译后,我就开始了长达两天的修(编)仙(译)过程。

其实吧,一开始没发现官方的Github里有打包脚本,于是只能自己拆Centos6和Centos7的src.rpm包来拼一份spec出来,在折腾半天后发现各种不对劲,于是重新去找,结果在官方的Github里发现了build-scripts/build-auth-rpm这个脚本……蛋疼,好吧,拿来修修改改,加个pdns-backend-geoip进去,然后开始了编译打包大业。接着就碰到了一个简直日狗的问题,成功编译,成功打包,成功安装,然后……查询不出设置的txt记录,提示如下

这就很绝望,因为查询a记录啥都正常,于是怀疑是不是编译过程中有啥依赖有问题,折腾了一天,最后发现……yaml格式的配置文件中txt记录部分少了俩空格……这,我的内心是崩溃的,大哥,你格式不对提醒下啊,别报这种八竿子打不到一起的错误啊。好吧,总算是成功了,所以用Centos6的各位就不用蛋疼了,用我的rpm包就行。 阅读全文→