InfraPub 为您找到相关结果 527

linux下查看系统socket读写缓冲区_eyucham的专栏

(int argc,char **argv) { int err = -1; /* 返回值 */ int s = -1; /* socket描述符 */ int snd_size = 0; /* 发送缓冲区大小 */ int rcv_size = 0; /* 接收缓冲区大小 */ socklen_t optlen; /* 选项值长 */ /* * 建立一个TCP套接字 */ s = socket(PF_INET,SOCK_STREAM,0); if( s == -1){ printf("建立套接字错误\n"); return -1; } /* * 先读取缓冲区设置的情况 * 获得原始发送缓冲区大小 */ optlen = sizeof(snd_size); err = getsockopt(s...阅读全文

博文 2021-01-26 16:21:35 CSDN博客

Debian Jessie、Stretch 下安装配置 PHP7.2

PHP 7.2.0 已于 2017 年11月30日正式发布GA版,大家可以第一时间尝鲜了。这里我们介绍如何在 Debian 9 "Stretch" 上安装配置 PHP-7.2,以便大家及时升级。目前 Debian.cn 全站已稳定运行在 PHP-7.2 版本中。 本教程使用以下系统及组: Debian 9 stretch 、Debian 8 Jessie、Ubuntu 16.04 LTS、Ubuntu 14.04 LTS / PHP-7.2 、PHP-7.1、PHP-5.6 安装 PHP-7 Ondřej Surý 的 PHP PPA 为 Ubuntu 16.04/14.04 提供了 PHP-7.2 版本,也通过个人网站为 Debian 9/8 提供 PHP7.2 版本。Ondřej...阅读全文

博文 2017-12-16 14:16:25 debian.cn

Memcache UDP反射放大攻击技术分析

DDoS的主流。即使在反射类DDoS中,也只占 1% 以下(按攻击事件计),排在 DNS、CLDAP、NTP、SSDP、CharGen、L2TP、BitTorrent、Portmap、SNMP的后面。 我们在现网中对 Memcache DRDoS 攻击方式的测试结果 我们对现网实际环境做了测试,结分析我们捕获的实际攻击载荷,有以下内容值得关注: 这种反射攻击的放大比率,在理想的测试环境中,可以稳定的测得 1k~60k之间的放大倍数; 在现网实际环境中, 60k 的放大倍数,也是可以稳定的测得的; 上述实测结果,与最初报告者0kee team的估计、US-CERT安全通告中的提法,基本是一致的; 此外我们分析了现网实际发生的攻击负载。到目前为止,部分负载的构造是有问题,可能会导致memcache服...阅读全文

博文 2018-03-02 09:20:52 debian.cn

Debian下编译安装Golang

我的Debian是用来工作的,因此用的是稳定源。稳定源的优点是,软件经过充分的测试,处于稳定版本。这种状态对于绝大多数软件,都是最适的。 但是,对于一些需要最新版本的软件来说,稳定源太过于滞后。 官网不仅连接不稳定,二进制发布包也不够全。 目前(2016),Debian的稳定源只能安装go1.3版本。如果需要最新的版本,只能自行从源码编译安装。 卸载旧版本 sudo apt-get remove golang sudo apt-get autoremove 源码下载 git clone https://github.com/golang/go.git 如果没有Git,必须自行解决;如果没有gcc,也需要自行安装。 此外,golang/go这个库实在太大,近200MB。完整从GitHub上...阅读全文

博文 2021-01-28 17:50:16 debian.cn

AWS EKS 添加IAM用户角色 - SRE运维博客

的联身份用户。如果使用不属于 aws-auth ConfigMap 的 IAM 用户或角色访问 Amazon EKS 控制台,则无法看到 Kubernetes 工作负载。也不会看到集群的概览详细信息。所以要向其他 AWS 用户或角色授予与集群交互的能力,您必须在 Kubernetes 中编辑 aws-auth ConfigMap。 因为部门有不通的角色,所以想基于不通的角色分配不同的权限,下面是记录添加一个对 EKS 只有只读权限的 AIM 用户。 {{< notice info "注意:" >}} 如果您在运行 AWS 命令行界面 (AWS CLI) 命令时遇到错误,请确保您使用的是最新版的 AWS CLI。 {{< /notice >}} 为 IAM 用户或角色配置权限 要查找具有主要...阅读全文

博文 2022-12-19 21:15:27 博客园

Rust 1.37.0 稳定版发布

Cargo 项目中选择默认二进制文件 cargo run 对于快速测试 CLI 应用程序是可以的,当多个二进制文件出现在同一个包中时,必须使用 --bin 标志显式声明要运行的二进制文件的名称。这使得 cargo run 不像我们想要的那样符人机工程学,特别是当一个二进制文件比其他的更频繁地被调用时。 Rust 1.37.0 通过添加 default-run 来解决这个问题,这是 Cargo.toml 中的一个新键,当这个键在 [Package] 部分中声明时,如果没有传递 --bin 标志,cargo run 将默认为所选的二进制文件。 枚举上的 #[repr(align(N))] #[repr(align(N))] 属性可用于提高类型定义的对齐性。以前,该属性仅允许在 struct 和...阅读全文

博文 2019-08-17 21:17:23 debian.cn

JDK 11 版本时间表公布

) java.transaction(JTA) java.se.ee(上述六个模块的聚模块) jdk.xml.ws(JAX-WS 工具) jdk.xml.bind(JAXB 工具) 移除这些模块的风险已在 JEP 320 中得到确认和记录,特别是对于 Java EE 模块: 如果应用程序依赖 JDK 中 Java EE API 和相关工具的支持,那么它们将无法通过编译或运行。这些应用程序在从 JDK 6、7 或 8 迁移到 JDK 9 或更高版本时将遇到二进制和源代码不兼容问题。 移除 Java EE 模块的另一个风险是,如果已使用–add-modules java.se.ee、add-modules java.xml.bind 等命令行标志,那么已经从 JDK 6、7 或 8 迁移到 JDK 9 的应用程序将无法启动...阅读全文

博文 2018-04-27 08:33:08 debian.cn

Docker 核心原理

子系统(即资源控制器) 1 2 3 4 5 6 7 8 root@lxkaka-server:~# lssubsys cpuset # 分配单独的 cpu 节点或者内存节点 cpu,cpuacct # 限制进程的 cpu 使用率;cpu 使用统计 blkio # 限制进程的块设备 io memory # 限制进程的 memory 使用量 devices # 控制进程能够访问某些设备 freezer # 挂起或者恢复 cgroups 中的进程。 net_cls,net_prio # 可以标记 cgroups 中进程的网络数据包,对数据包进行控制 hierarch 层级关系 由一系列控制组以一个树状结构排列而成,hierarch 通过绑定对应的子系统进行资源调。hierarch 中的...阅读全文

博文 2021-02-25 09:14:23 lxkaka

为保护隐私而生 反取证操作系统:Kodachi

Kodachi Linux 是一款基于 Debian 8.6 的操作系统。它是专为保护用户隐私而设计的,因此具有高的安全及匿名性,并具备反调查取证的特点。 Kodachi 的使用也非常方便简单,你可以通过 USB 驱动来在你的 PC 上启动它。当你完全启动 Kodachi 操作系统后,你将会建立一个 VPN+Tor+DNScry 服务器的运行环境。你不需要特别了解或学习 Linux 的知识,Kodachi 都为你准备好了你所需要的!整个操作系统都活动在你的临时内存 RAM 下。因此,你一旦你关机,任何的操作痕迹都会被清除,避免你的隐私泄露及被追踪调查。 Kodachi 是一个实时的操作系统,你可以从几乎任何计算机上来启动它。例如:从 DVD,U盘 或 SD卡等。它旨在保护你的隐私及匿名性...阅读全文

博文 2021-01-28 17:50:19 debian.cn

十条关于 WordPress 安全性的小贴士

WordPress 本质上并没大家认为的那么危险,而且开发者也在努力工作,以确保危险漏洞能被快速修复。但不幸的是,WordPress 的成功使其成为众矢之的:如果你能攻破一个 WordPress 安装,那么可能会有数以百万计的网站向你 “开放”。而且即使 WordPress 是安全的,也并不是所有的主题和插件都会有同样级别的开发重视程。 有些人攻击 WordPress 是为了挑战或造成恶意的损害,这些行为都很容易被发现。最糟糕的罪魁祸首是那种潜入内容的行为,它们会将钓鱼网站深入到文件夹结构,或使用你的服务器发送垃圾邮件。一旦你安装的 WordPress 被破解,可能需要删除所有内容并从头重新安装。 庆幸的是,有很多简单的方案来提升安全性。下面提到的安全修复方案都不会超过几分钟。 1. 切...阅读全文

博文 2021-01-28 17:50:29 debian.cn

Terraform 学习总结 — Terraform 简介

前言 在 DevOps 实践中,基础设施即代码如何落地是一个绕不开的话题。像 Chef,Puppet 等成熟的配置管理工具,都能够满足一定程的需求,但有没有更友好的工具能够满足我们绝大多数的需求?笔者认为 Terraform 是一个很有潜力的工具,目前各大云平台也都支持的不错,尤其是使用起来简单明了。本文会简单的介绍一下 Terraform 相关的概念,然后通过一个小 demo 带大家一起进入 Terraform 的世界。说明:本文的演示环境为 ubuntu 16.04。 Terraform 是什么? Terraform 是一种安全有效地构建、更改和版本控制基础设施的工具(基础架构自动化的编排工具)。它的目标是 "Write, Plan, and create...阅读全文

APISIX Ingress 如何使用 Cert Manager 管理证书

对象,并且包含新的证书。 总结 本文主要讲解了如何利用 Cert Manager 在 Apache APISIX Ingress Controller 中进行证书的创建和管理。想了解更多关于 Apache APISIX Ingress 的介绍与内容,可参考本篇文章 或者参与 Apache APISIX Ingress 项目每两周举行的线上讨论,分享当下项目进、最佳实践及设计思路等多个话题,可查看具体 issue 了解更多。...阅读全文

博文 2023-02-09 07:38:06 中文开源技术交流社区

Debian 9 使用kubeadm创建 k8s 集群(下)

在前一篇文章中,我们介绍了 Debian Stretch 环境下,Kubernetes 集群安装的准备工作。本文我们将继续介绍 k8s集群 的安装配置工作。 第4步 - 设置主节点 在本节中,您将设置主节点。 但是,在创建任何Playbooks之前,值得介绍一些概念,例如Pod和Pod网络插件 ,因为您的群集将同时包含这两个概念。 pod是运行一个或多个容器的原子单元。 这些容器共享资源,例如文件卷和网络接口。 Pod是Kubernetes中的基本调单元:pod中的所有容器都保证在调pod的同一节点上运行。 每个pod都有自己的IP地址,一个节点上的pod应该能够使用pod的IP访问另一个节点上的pod。 单个节点上的容器可以通过本地接口轻松进行通信。 然而,pod之间的通信更复杂,并...阅读全文

博文 2019-05-13 22:57:41 debian.cn

协议介绍之深入了解 gRPC

...) ... +---------------------------------------------------------------+ Length:也就是 Frame 的长,默认最大长是 16KB,如果要发送更大的 Frame,需要显式的设置 max frame size。 Type:Frame 的类型,譬如有 DATA,HEADERS,PRIORITY 等。 Flag 和 R:保留位,可以先不管。 Stream Identifier:标识所属的 stream,如果为 0,则表示这个 frame 属于整条连接。 Frame Payload:根据不同 Type 有不同的格式。 可以看到,Frame 的格式定义还是非常的简单,按照官方协议,可以非常方便的写一个出来。 Multiplexing HTTP/2 通过 stream 支持了连接的多路复用,提高了连接的利用率。Stream 有很多重要特性: 一条连接可以包含多个...阅读全文

博文 2017-06-22 11:08:48 debian.cn

Linux 系统 vim 编辑器使用简明教程

出插入模式) a //在当前光标位置的右边添加文本 i //在当前光标位置的左边添加文本 A //在当前行的末尾位置添加文本 I //在当前行的开始处添加文本(非空字符的行首) O //在当前行的上面新建一行 o //在当前行的下面新建一行 R //替换(覆盖)当前光标位置及后面的若干文本 J //并光标所在行及下一行为一行(依然在命令模式) 三、移动光标(vi命令模式下使用) vi 可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母 h 、 j 、 k 、 l ,分别控制光标左、下、上、右移一格。 按 Ctrl+b :屏幕往后移动一页。 按 Ctrl+f :屏幕往前移动一页。 按 Ctrl+u :屏幕往后移动半页。 按 Ctrl+d :屏幕往前移动半页。 按数字 0 :移...阅读全文

博文 2015-07-25 16:33:04 debian.cn

Tmux 快速教程:快捷键和配置

tmux 之外如何进行控制 session 会话:session是一个特定的终端组。输入tmux就可以打开一个新的 session tmux new -s session_name 创建一个叫做 session_name 的 tmux session tmux attach -t session_name 重新开启叫做 session_name 的 tmux session tmux switch -t session_name 转换到叫做 session_name 的 tmux session tmux list-sessions / tmux ls 列出现有的所有 session tmux detach 离开当前开启的 session tmux kill-server 关闭所有...阅读全文

博文 2017-11-07 15:17:49 debian.cn

Debian 11 "bullseye" 发布,带来内核 exFAT 支持

包已安装的情况下,适的设备可以在使用 USB 端口连接到系统的同时自动设置使用无驱动后端。新的通用 open 命令新增加的 open 命令将作为 xdg-open(默认)或者 run-mailcap 的别名出现,具体实现则由 update-alternatives 系统管理。它旨在作为命令行交互工具,帮助用户使用默认的应用程序打开文件;所使用的程序按照具体情况可以是图形界面程序。控制组 v2在 bullseye 中,systemd 默认使用控制组 v2(cgroupv2),它提供了统一的资源控制层级架构。如果有需要,可以使用内核命令行参数重新启用旧有的 cgroups;持久化 systemd 日志在 bullseye 中的 systemd 默认启用了持久日志的功能,日志文件存放于 /var...阅读全文

为什么 Django 能持续统治 Python 开发世界

ATOM feeds 使用 Django,你可以通过创建一个简单的Python类来快速创建 RSS 和 ATOM feeds。 在数据库中自动创建表 如果你的数据库中缺失了某一个表,你可以通过执行 Django 的迁移命令来自动创建它。 容易的数据迁移 数据迁移是 Django 中最有用的功能之一。通过使用 Django 的迁移方法,你可以在短时间内改变一个数据库模式。同样也容易就能跟踪你的数据库模式和相关的改变。为数据迁移所做的命名能够帮助你进行版本控制,还有很多选项可以用来并版本和进行修改。 安全性 Django非常安全,该框架默认情况下可以防止 XSS 攻击、CSRF 攻击,SQL 语句注入、点击劫持、用户管理、cookies、邮件标头注入、密码攻击、目录遍历攻击等等。 Django有一个...阅读全文

博文 2017-07-21 14:15:11 debian.cn

如何在 Debian服务器 上启用双因子身份验证

-authenticator 运行这个程序时,会问到几个问题。你应该以适你的设置的方式回答,最安全的选项是对每个问题回答y。如果以后需要更改这些选项,你可以简单地重新运行 google-authenticator 并选择不同的选项。 当你运行 google-authenticator 时,一个二维码会被打印到终端上,二维码下方的代码样例如下: Your new secret key is: 75YD5PTE6R65BYFR2AWQGUV6FE Your verification code is 781629 Your emergency scratch codes are: 12321432 29069242 34406891 34387624 79357602 你应该将所有这些代码记录到一个像密码管理器一样安全的...阅读全文

博文 2018-12-05 11:44:56 debian.cn

Kotlin 一统天下?Kotlin/Native 支持 iOS 和 Web 开发

Kotlin 使用 React.js 创建现代 Web 应用。 使用 create-react-kotlin-app,可让开发者无需费心于项目设置和配置构建这些工作,能专注于快速开始客户端应用开发,同时体会到静态类型语言的优势以及由 JavaScript 生态系统带来的强大配套资源。详情点此了解。 未来的发展方向 Kotlin 语言的未来发展方向主要是在 Kotlin 支持的平台之间实现更好、更广泛的代码重用。官方表示计划通过使用同一 API 以扩展全部平台上的可用库资源集,其中涵盖 I/O、网络、序列化以及日期处理等。 编译器方面,1.3 版本仍集中关注内部层面的变更,而不是外部可见的语言特性。内部的改变能提高性能、改进类型推断、为所有目标平台生成更高效的代码,以及带来更好的 IDE 插件响应能力...阅读全文

博文 2017-11-05 19:28:14 debian.cn

Debian 9.3上安装和配置 Observium 监控平台

命令退出MySQL shell: MariaDB [(none)]>\q 下载并安装Observium Observium有两个版本:开源版本和订阅版本,开放源代码版本可以免费下载,功能较少,安全修复程较低,而订阅版本则附带额外的功能和硬件支持。 您可以使用以下命令从官方网站下载Observium的开源版本: wget http://www.observium.org/observium-community-latest.tar.gz 下载后,使用以下命令提取下载的存档: tar -xvzf observium-community-latest.tar.gz 接下来,将提取的目录复制到Apache Web根目录: cp -ar observium /var/www/html/ 接下来,重命...阅读全文

博文 2017-12-30 11:35:21 debian.cn

什么是线程安全,以及并发需要知道的几个概念

的资源一直不释放的话,那么其他阻塞的线程就都不能工作了。 非阻塞则相反,强调的是线程之间并不互相妨碍,所有的线程都会不断尝试向前执行。 死锁、饥饿和活锁这三种情况表示的是多线程间的活跃状态,对于线程来说,以上的情况都是 “非友好” 的状态。 1、死锁一般是指两个或者两个以上的线程互相持有对方所需的资源,并且永远在等待对方释放的一种阻塞状态。例如有两个线程A和B同时共享临界区的资源C,当A占用C时,B处于阻塞状态,然而A的释放需要用到B的资源,这样一来,就变成了A一直在等待B,B也一直在等待A,互相之间永远在等待对方释放的状态。 一般来说,死锁的发生是由于程序的设计不理导致,而且死锁很难解决,最好的方式就是预防。 2、饥饿是指某一个或者多个线程因为种种原因无法获得所需的资源,导致一直无法执行...阅读全文

博文 2018-12-31 20:44:06 debian.cn

Java Annotations详解

(@Deprecated修饰)的方法时。 创建你自己的注释 创建自己的注释是有可能的。注释被定义在它们自己的文件中,就像Java中的类或接口一样。下面是一个例子: @interface MyAnnotation { String value(); String name(); int age(); String[] newNames(); } 这个例子定义了一个包含四个元素的叫MyAnnotation的注释。 注意,每个元素的定义都很像接口中的方法定义。你可以使用原始数据类型定义元素的数据类型,你也可以使用数组定义元素的数据类型。但是不能使用复对象(Complex Object定义元素的数据类型。 要使用上面自定义的注释,可以这样做: @MyAnnotation( value="123", name...阅读全文

博文 2013-03-02 08:04:55 CSDN博客

Linux下多线程程序为什么消耗大量虚拟内存

最近游戏已上线运营,进行服务器内存优化,发现一个非常奇妙的问题,我们的认证服务器(AuthServer)负责跟第三方渠道SDK打交道(登陆和充值),由于采用了curl阻塞的方式,所以这里开了128个线程,奇怪的是每次刚启动的时候占用的虚拟内存在2.3G,然后每次处理消息就增加64M,增加到4.4G就不再增加了,由于我们采用预分配的方式,在线程内部根本没有大块分内存,那么这些内存到底是从哪来的呢?让人百思不得其解。 探索 一开始首先排除掉内存泄露,不可能每次都泄露64M内存这么巧,为了证明我的观点,首先,我使用了valgrind。 valgrind --leak-check=full --track-fds=yes --log-file=./AuthServer.vlog & 然后启动测试...阅读全文

博文 2015-01-28 10:35:39 debian.cn

Kubernetes 使用 PodPreset 注入信息到 Pods_哎_小羊的博客

dnsPolicy: ClusterFirst nodeName: minikube ...... 可以看到,经过 k8s admission controller 之后此时的 Yaml 文件是将 PodPreset 和 Pod 资源 Merge 并了,同时增加了 podpreset.admission.kubernetes.io/podpreset-busybox-hwy: "24187" 这样的注解,类似模板的 Include 功能,而这个 24187 资源号就是上边 podpreset-busybox-hwy 创建完成之后的 resourceVersion: "24187" 资源版本号。 4.2、匹配某个 Namespace 下所有 Pod 加载配置 上边演示了匹配一个或多个指定 Pod 注入信息...阅读全文

博文 2021-01-27 18:47:00 CSDN博客

Gitlab CI 配置文件 .gitlab

: variables: GET_SOURCES_ATTEMPTS: 3 你可以在全局variables模块中设置,也可以在单个job的variables模块中设置。 Shallow cloning GitLab 8.9 以实验性功能引入。在将来的版本中有可能改变或者完全移除。 你可以通过GIT_DEPTH来指定抓取或克隆的深。它可浅层的克隆仓库,这可以显著加速具有大量提交和旧的大型二进制文件的仓库的克隆。这个设置的值会传递给git fetch和git clone。 注意:如果设置depth=1,并且有一个jobs队列或者是重试jobs,则jobs可能会失败。 由于Git抓取和克隆是基于一个REF,例如分支的名称,所以Runner不能指定克隆一个commit SHA。如果队列中有多个jobs,或者您正在重试旧...阅读全文

博文 2018-12-12 21:09:02 ci.yaml 详解(下)

深入理解Golang之context

Server、Connection、Request,不仅将上游的信息共享给下游任务,同时实现了上游可发送取消信号取消所有下游任务,而下游任务自行取消不会影响上游任务。总结context主要用于父子任务之间的同步取消信号,本质上是一种协程调的方式。另外在使用context时有两点值得注意:上游任务仅仅使用context通知下游任务不再需要,但不会直接干涉和中断下游任务的执行,由下游任务自行决定后续的处理操作,也就是说context的取消操作是无侵入的;context是线程安全的,因为context本身是不可变的(immutable),因此可以放心地在多个协程中传递使用。参考资料1、Package context2、Go Concurrency Patterns: Context3...阅读全文

博文 2021-01-27 09:05:27 知乎