在Linux上,常用的DNS服务软件包有BIND和dnsmasq,您可以选择其中一个进行安装。在大多数Linux发行版上,您可以使用以下命令之一来安装BIND或dnsmasq:
这个问题暂时未解决,大家先用/usr/local/bin/python2.6执行吧
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。(百度百科 0.0) 下载:http://www.redis.
FRP服务可以分配给你一个域名让你本地的web项目提供给外网访问,特别适合向别人展示你本机的web demo以及调试一些远程的API(用作微信公众号,企业号的开发)
说明: 其中,>为输出重定向符号,>/dev/null 2>&1。这条命令其实分为两命令,一个是>/dev/null,另一个是2>&1。 1. >/dev/null 这条命令的作用是将标准输出1重定向到/dev/null中。/dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。那么执行了>/dev/null之后,标准输出就会不再存在,没有任何地方能够找到输出的内容。 2. 2>&1 这条命令用到了重定向绑定,采用&可以将两个输出绑定在一起。这条命令的作用是错误输出将和标准输出同用一个文件描述符,说人话就是错误输出将会和标准输出输出到同一个地方。 linux在执行shell命令之前,就会确定好所有的输入输出位置,并且从左到右依次执行重定向的命令,所以>/dev/null 2>&1的作用就是让标准输出重定向到/dev/null中(丢弃标准输出),然后错误输出由于重用了标准输出的描述符,所以错误输出也被定向到了/dev/null中,错误输出同样也被丢弃了。执行了这条命令之后,该条shell命令将不会输出任何信息到控制台,也不会有任何信息输出到文件中。
在本篇博客中,我们将深入探讨Deepin操作系统中因误用apt-get autoremove systemd命令导致的启动问题,并提供一系列恢复步骤。我们将涉及Linux基础、系统恢复技巧、以及如何使用Live CD进行系统救援。适合所有技术水平的读者,无论是Linux新手还是经验丰富的系统管理员。关键词包括:Linux恢复技术、Deepin系统救援、systemd修复、Live CD使用、系统启动问题解决。
负载均衡在服务端开发中算是一个比较重要的特性。因为Nginx除了作为常规的Web服务器外,还会被大规模的用于反向代理前端,因为Nginx的异步框架可以处理很大的并发请求,把这些并发请求hold住之后就可以分发给后台服务端(backend servers,也叫做服务池, 后面简称backend)来做复杂的计算、处理和响应,这种模式的好处是相当多的:隐藏业务主机更安全,节约了公网IP地址,并且在业务量增加的时候可以方便地扩容后台服务器。
众所周知,Linux靠设备与驱动之间的match,来完成设备与驱动的bind,从而触发驱动的probe()成员函数被执行。每个bus都有相应的match方法,完成match的总的入口函数是:
每个 IP 地址都可以有一个主机名,主机名由一个或多个字符串组成,字符串之间用小数点隔开。有了主机名,就不要死记硬背每台 IP 设备的 IP 地址,只要记住相对直观有意义的主机名就行了。这就是 DNS 协议所要完成的功能。 今天我们将讨论DNS服务器,特别是Linux DNS服务器,及其如何安装、配置和维护它。 /etc/hosts文件 在没有DNS服务器的情况下,每个系统在本地网络上保留其主机名和相应IP地址列表的副本是合理的——特别是在没有互联网连接的小型站点上。 在Linux系统中,这个列表就是/e
每个 IP 地址都可以有一个主机名,主机名由一个或多个字符串组成,字符串之间用小数点隔开。有了主机名,就不要死记硬背每台 IP 设备的 IP 地址,只要记住相对直观有意义的主机名就行了。这就是 DNS 协议所要完成的功能。
某日线上登录出现故障,排查日志发现HttpClient请求时随机分配到的端口被占用,导致第三方登录拉取信息时无法拉取成功,错误如下:
Consul是一种网络工具,可提供功能齐全的服务网格和服务发现。在本地尝试领事。这句话引用与官网
开篇我先考大家一个小问题,如果你的服务器上已经有个进程在 listen 6000 这个端口号了。那么该服务器上其它进程是否还能 bind 和 listen 该端口呢?
accept() 系统调用应用于可连接套接口类型 ( SOCK_STREAM, SOCK_SEQPACKET)。它取出在监听套接口 sockfd请求队列里的第一个连接,新建一个已连接的套接口,并且返回一个引用该套接口新的文件描述符。新建的套接口不处于监听状态。原始的套接口 sockfd 没有受到影响。
frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
写作本系列文章的背景是我们要在大数据平台/企业数据湖场景下给出中心化的用户身份认证方案。此前,我们实现过Windows AD + Kerberos的集成方案,由于Windows AD是LDAP和Kerberos的双重实现,这种天然优势使得Windows AD可以实现真正意义上的(大数据集群的)Kerberos账号与企业用户账号的统一管理。当我们想在OpenLDAP + Kerberos上实现同样的目标时,发现这一领域的知识与方案琐碎而凌乱,缺少统一连贯,脉络清晰的讲解,在经过大量技术调研和系统梳理后,我们特别撰写了本系列文章,希望可以借此将这一话题全面彻底地阐述清楚。本系列由三篇文章组成,将沿着“如何集成OpenLDAP与Kerberos实现统一认证管理”这一主线推进,在实现过程中会详细介绍使用到的技术和原理并给出完备的执行脚本用于实际环境的搭建。我们假设读者已经具备OpenLDAP和Kerberos的基本知识,不再对两者进行单独介绍。
这些年,接触了形形色色的项目,写了不少网络编程的代码,从windows到linux,跌进了不少坑,由于网络编程涉及很多细节和技巧,一直想写篇文章来总结下这方面的心得与经验,希望对来者有一点帮助,那就善莫大焉了。 本文涉及的平台包括windows和linux,下面开始啦。 一、非阻塞的的connect()函数如何编写 我们知道用connect()函数默认是阻塞的,直到三次握手建立之后,或者实在连不上超时返回,期间程序执行流一直阻塞在那里。那么如何利用connect()函数编写非阻塞的连接代码呢? 无论在win
这些年,接触了形形色色的项目,写了不少网络编程的代码,从windows到linux,跌进了不少坑,由于网络编程涉及很多细节和技巧,一直想写篇文章来总结下这方面的心得与经验,希望对来者有一点帮助,那就善莫大焉了。 本文涉及的平台包括windows和linux,下面开始啦。 一、非阻塞的connect()函数如何编写 我们知道用connect()函数默认是阻塞的,直到三次握手建立之后,或者实在连不上超时返回,期间程序执行流一直阻塞在那里。那么如何利用connect()函数编写非阻塞的连接代码呢? 无论在wind
我们在之前的教程中创建的DNS服务器是一个开放DNS解析器。开放解析器不会过滤任何来源请求,并会接受来自所有IP的查询。
笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情。 今天笔者就来从Linux源码的角度看下Server端的Socket在进行bind的时候到底做了哪些事情(基于Linux 3.10内核)。
第一个隐患很明显,但它是开发新手最容易犯的一个错误。如果您忽略函数的返回状态,当它们失败或部分成功的时候,您也许会迷失。反过来,这可能传播错误,使定位问题的源头变得困难。
Linux支持共享库已经有悠久的历史了,不再是什么新概念了。大家都知道如何编译、连接以及动态加载(dlopen/dlsym/dlclose) 共享库。但是,可能很多人,甚至包括一些高手,对共享库相关的一些环境变量认识模糊。当然,不知道这些环境变量,也可以用共享库,但是,若知道它们,可能就会用得更好。下面介绍一些常用的环境变量,希望对家有所帮助:
环境:Linux服务器一台(双网卡) 内网IP:192.168.80.101 设置为vmnet1 外网IP:192.168.90.101 设置为vmnet2 Linux客户端一台,IP地址:192.168.80.102 设置为vmnet1 Win7客户端一台,IP地址:192.168.90.10 设置为vmnet2
自己购买 腾讯云 ,自带 CentoOS 或者 Ubuntu 环境,直接开干。如果使用想更快捷安装 Redis 的话,即可使用 Docker 容器进行安装,可以参考我这一篇博客 Doker 部署前后端分离项目
在2016年12月份至2017年1月份Red hat CVE漏洞库发布了4个“重要”“严重”等级的安全漏洞,针对出现的安全漏洞,发布了对应的Bugzilla。安全公告每月更新一次,旨在查找解决严重的漏洞问题。
以前都是用iptables,但是centos7.0之后就换成了firewalled了,那么我查看了firewalled的状态为active(running),很明显是在运行中的了,我尝试关闭一下防火墙,看看是不是防火墙影响的我无法访问redis,如图:
1.通常我们部署的eureka节点多于两个,根据实际需求,只需要将相邻节点进行相互注册(eureka节点形成环状),就达到了高可用性集群,任何一个eureka节点挂掉不会受到影响。
绑定挂载(bind mounts)在 Docker 的早期就已经出现了。与卷相比,绑定挂载的功能有限。当您使用绑定挂载时,主机上的文件或目录将挂载到容器中。文件或目录由其在主机上的完整或相对路径引用。相反地,当您使用卷时,在主机上 Docker 的存储目录中创建一个新目录,Docker 管理该目录的内容。
用“-Wl,-Bstatic”指定链接静态库,使用“-Wl,-Bdynamic”指定链接共享库,使用示例: -Wl,-Bstatic -lmysqlclient_r -lssl -lcrypto -Wl,-Bdynamic -lrt -Wl,-Bdynamic -pthread -Wl,-Bstatic -lgtest ("-Wl"表示是传递给链接器ld的参数,而不是编译器gcc/g++的参数。) 1) 下面是因为没有指定链接参数-lz(/usr/lib/libz.so,/usr/lib/libz.a ) /usr/local/mysql/lib/mysql/libmysqlclient.a(my_compress.c.o): In function `my_uncompress': /home/software/mysql-5.5.24/mysys/my_compress.c:122: undefined reference to `uncompress' /usr/local/mysql/lib/mysql/libmysqlclient.a(my_compress.c.o): In function `my_compress_alloc': /home/software/mysql-5.5.24/mysys/my_compress.c:71: undefined reference to `compress' 2) 下面是因为没有指定编译链接参数-pthread(注意不仅仅是-lpthraed) /usr/local/mysql/lib/mysql/libmysqlclient.a(charset.c.o): In function `get_charset_name': /home/zhangsan/mysql-5.5.24/mysys/charset.c:533: undefined reference to `pthread_once' 3) 下面这个是因为没有指定链接参数-lrt /usr/local/thirdparty/curl/lib/libcurl.a(libcurl_la-timeval.o): In function `curlx_tvnow': timeval.c:(.text+0xe9): undefined reference to `clock_gettime' 4) 下面这个是因为没有指定链接参数-ldl /usr/local/thirdparty/openssl/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_globallookup': dso_dlfcn.c:(.text+0x4c): undefined reference to `dlopen' dso_dlfcn.c:(.text+0x62): undefined reference to `dlsym' dso_dlfcn.c:(.text+0x6c): undefined reference to `dlclose' 5) 下面这个是因为指定了链接参数-static,它的存在,要求链接的必须是静态库,而不能是共享库 ld: attempted static link of dynamic object 如果是以-L加-l方式指定,则目录下必须有.a文件存在,否则会报-l的库文件找不到:ld: cannot find -lACE 6) GCC编译遇到如下的错误,可能是因为在编译时没有指定-fPIC,记住:-fPIC即是编译参数,也是链接参数 relocation R_x86_64_32S against `vtable for CMyClass` can not be used when making a shared object 7) 下面的错误表示gcc编译时需要定义宏__STDC_FORMAT_MACROS,并且必须包含头文件inttypes.h test.cpp:35: error: expected `)' before 'PRIu64' 8) 下面是因为在x86机器(32位)上编译没有指定编译参数-march=pentium4 ../../src/common/libmooon.a(logger.o): In function `atomic_dec_and_test': ../../include/mooon/sys/atomic_gcc.h:103: undefined reference to `__sync_sub_and_fetch_4' 9) 下列错误可能是因为多了个“}” error: expected d
最近遇到了一件非常棘手的问题,用Navicat远程连接数据库居然连接不到,真是头都大了。 网上查阅了一下原因,原来是没有开通远程权限,好吧,下面我就来回忆一下自己怎么处理这问题的!
关于dnspod-sr dnspod-sr是中国最大域名解析服务商DNSPod官方于2012年6月1日开源的一款递归DNS服务器软件。最新的一次更新是在2014年5月16日,修复了已发现的bug、重写了部分功能模块和优化了部分解析性能。当然现在我们对dnspod-sr的修改尚未完成,之后还会有较大的改动,持续维护下去。 开源协议: BSD协议 Github地址: https://github.com/DNSPod/dnspod-sr dnspod-sr作为一个运行在Linux平台上的高性能递归DNS服务
Host is not allowed to connect to this MySQL server
零停重启目标程序,比如一个网络服务程序,不用丢失和中断任何消息实现重新启动,正在处理的消息也不会中断和丢失,重启的方法是给目标程序的进程发SIGHUP信号。
unix domain socket 是在socket架构上发展起来的用于同一台主机的进程间通讯(IPC: Inter-Process Communication),它不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等,只是将应用层数据从一个进程拷贝到另一个进程。UNIX Domain Socket有SOCK_DGRAM或SOCK_STREAM两种工作模式,类似于UDP和TCP,但是面向消息的UNIX Domain Socket也是可靠的,消息既不会丢失也不会顺序错乱。
什么是YUM YUM(Yellowdog Updater Modified) 是一个开源命令行包管理工具,用于RPM(RedHat Package Manager) 基于 Linux 系统。它允许用户和系统管理员轻松地在系统上安装、更新、删除或搜索软件包。它是由开发和发布的Seth Vidal在下面GPL(General Public License) 作为开源,意味着任何人都可以下载和访问代码以修复错误和开发定制包。YUM使用众多第三方存储库通过解决依赖关系问题来自动安装软件包。 1. 用YUM安装一个包
DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。 DNS 的分布式数据库是以域名为索引的,每个域名实际上就是一棵很大的逆向树中路径,这棵逆向树称为域名空间(domain name space)。如图所示树的最大深度不得超过127 层,树中每个节点都有一个可以长达63 个字符的文本标号。
在安装 Elasticsearch 时,要注意 JDK 对应的版本,另外 Elasticsearch 7.x 以上已经内置 JDK 环境配置,不需要本地 JDK 环境支持。
Mysql错误Lost connection to MySQL server at ‘reading initial communication packet’, system error: 0解决方法,需要的朋友可以参考下
之前在本机有fedora 29的系统,但是由于错误安装,把windows10 启动安装到 linux 所在的硬盘中,导致原来的 efi中的grub启动被破坏,不能进入到linux中;我首先通过磁盘精灵,把efi中启动文件拷贝到现有的windows安装盘中,重新启动后成功从新的efi分区进入windows; 然后开始进行恢复fedora系统;这时候,有两种办法,一种是重新安装 linux; 另外一种方法就是重新修复grub引导;因为对linux比较了解,我选择了后者;首先参考了几篇已经实践的博客;
nginx的worker_processes参数 来源: http://bbs.linuxtone.org/thread-1062-1-1.html 分享一: 搜索到原作者的话: As a general rule you need the only worker with large number of worker_connections, say 10,000 or 20,000. However, if nginx does CPU-intensive work as SSL or gzipping
在之前的一篇文章中,作者在配置了SO_REUSEPORT选项之后,使得应用的性能提高了数十倍。现在介绍socket选项中如下几个可以提升服务端性能的选项:
本文为翻译英文BLOG《Coping with the TCP TIME-WAIT state on busy Linux servers》,但并非完整的翻译,译者CFC4N对原文理解后,进行了调整,增加了相关论点论据,跟原文稍有不同。翻译的目的,是为了加深自己知识点的记忆,以及分享给其他朋友,或许对他们也有帮助。文章比较长,没耐心请点关闭。
accept(2): accept connection on socket - Linux man page (die.net)
在linux中,一切都是文件,所有文件都有一个int类型的编号,称为文件描述符。服务端和客户端通信本质是在各自机器上创建一个文件,称为socket(套接字),然后对该socket文件进行读写。
frp 是一个开源、简洁易用、高性能的内网穿透和反向代理软件,支持 tcp, udp, http, https等协议。frp 项目官网是 https://github.com/fatedier/frp,
在linux上创建redis目录 并且把redis.conf上传到/usr/local/redis
管理服务器配置和基础架构的一个重要部分包括通过设置适当的域名系统(DNS),维护一种通过名称查找网络接口和IP地址的简便方法。使用完全限定的域名(FQDN)而不是IP地址来指定网络地址可以简化服务和应用程序的配置,并提高配置文件的可维护性。为您的专用网络设置自己的DNS是改善服务器管理的好方法。
领取专属 10元无门槛券
手把手带您无忧上云