缘起某一天,产品侧同事联系过来,反馈话单传输程序报错,现象如下:实际上,该节点仅提供了一个sftp服务,供产品侧传输话单过来进行临时存储,由计费部门取走而已。分析于是找运维同事上服务器看了下情况,发现有以下几个问题:ssh进程过高(由于前期给各个部门分配的sftp账号不同,正好可以以账号名辨别来源)根据以上信息,检查了TCP链接状态,发现绝大多数都是ESTABLISHED连接:于是统计了一下TCP
转载 2024-06-14 22:23:05
174阅读
公司有一个线上的sftp服务,使用proftpd提供。近日文件下载的应用日志中连续多日出现了 SSH_DISCONNECT (Read TImed out,Key exchange failed.)错误,现在把分析和解决过程分享一下。 问题表现现场得到的信息包括:1.对端同时使用scp和jsch两个客户端,只有jsch出现了错误。 2.当时并发连接数并不高,100-200之间。
1、添加新用户并设置配置文件# 创建sftp系统用户并禁用ssh登录 useradd -s /sbin/nologin sftp1 #设置或修改sftp1登录 echo "123456@sftp1" |passwd --stdin sftp1 # 配置sshd_config vi /etc/ssh/sshd_config 找到如下这行,用#符号注释掉。 # Subsystem
转载 2024-04-11 09:42:59
93阅读
liststen小议TCP通过三次握手建立连接的过程应该都不陌生了。从服务器的角度看,它分为以下几步将TCP状态设置为LISTEN状态,开启监听客户端的连接请求 收到客户端发送的SYN报文后,TCP状态切换为SYN RECEIVED,并发送SYN ACK报文 收到客户端发送的ACK报文后,TCP三次握手完成,状态切换为ESTABLISHED 在Unix系统中,开启监听是通过listen完成。int
转载 2024-02-24 00:54:31
62阅读
前言在调试网络程序或者定位网络相关问题时,有一个命令不得不知,它就是netstat。netstat命令用于查看网络连接,路由表,网络接口统计数据, 虚拟连接等信息。netstat的选项很多,但是本文准备介绍一些netstat命令的实用技巧。查看某个端口是否被占用如果你遇到“Address already in use”的错误,那么你就需要好好看看是不是端口已经被占用了。-a(all)参数用于列出所
转载 2024-03-30 08:08:22
216阅读
 每个进程都有一个 EPROCESS 结构,里面保存着进程的各种信息,和相关结构的指针。EPROCESS 结构位于系统地址空间,所以访问这个结构需要有ring0的权限。使用 Win2k DDK 的 KD (内核调试器)我们可以得到 EPROCESS 结构的定义。注意下面的是 Win2k Build 2195 下的 EPROCESS 结构定义。
转载 2024-03-05 10:34:14
78阅读
Push上传代码至GitHub时出现以下错误:1. remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.(这个提示大致意思是:2021年8月13日起github将不再支持密码验证的方式Push,请将密码换成toke
转载 2024-08-29 13:41:59
51阅读
tcp连接一端在进行完三次握手以后进入ESTABLISHED状态,如果连接的对端在某一时刻在网络中消失,而本端没有感知到,还是处于ESTABLISHED状态,那么本端的连接就被称为半打开连接(Half Open)。连接的对端在网络中消失的情况有好多:例如对端主机突然断电,tcp连接来不及发送任何信息就消失啦。还有,连接路径上的某个nat设备aging-time过期,并且nat port被重用,虽然
转载 2024-03-29 14:50:35
217阅读
TCP状态转移要点    TCP协议规定,对于已经建立的连接,网络双方要进行四次握手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于假死状态,连接本身占用的资源不会被释放。网络服务器程序要同时管理大量连接,所以很有必要保证无用连接完全断开,否则大量僵死的连接会浪费许多服务器资源。在众多TCP状态中,最值得注意的状态有两个:CLOSE_WAIT和TIME_
转载 2024-09-03 10:38:17
39阅读
目标【理解】线程池基本概念 【理解】线程池工作原理 【掌握】自定义线程池 【应用】java内置线程池 【应用】使用java内置线程池完成综合案例线程池线程池基础线程池使用线程池综合案例学员练习线程池总结概念介绍什么是线程池为什么使用线程池线程池有哪些优势什么是池什么是线程池线程池其实就是一种多线程处理形式,处理过程中可以将任务添加到队列中,然后在创建线程后自动启动这些任务。这里的线程就是我们前面学
 系统结构定义以下定义的结构,要保证长度是32bit的整数,也就是4bytes对齐,在自己添加成员的时候尤其小心。structstruct nic 网卡的基本信息,该结构是针对单个网卡的,而不是针对网卡驱动整个系统; 子例程分析static inline void e100_enable_irq(struct { unsigned long spin_lock_
进程间通信 数据传输:一个进程需要将它的数据发送给另一个进程 资源共享:多个进程间共享同样的资源 通知事件 进程控制 POXIX:可移植操作系统接口 LINUX使用的进程间通信方式包括: 1、 管道(pipe)和有名管道(FIFO) 2、 信号(sigal) 3、 消息队列 4、 共享内存 5、 信号量 6、 套接字(socket) 一、管道通信 特点:管道是一种半双工的通信方式,数据
转载 2024-10-02 20:01:53
40阅读
1.当前使用线程池的实现线程池本质就是提前创建好的多个线程(在程序初始化的时候创建的多个线程),在加上对线程的操作就可以叫线程池。 这里创建的线程池并不像Java那样对线程有很好的控制和管理。这里只负责线程的创建和销毁。线程的工作也是提前安排好,而不是在运行时分配。 这样做的目的是合理利用硬件资源,让资源在程序运行的时候最大化的集中到IO操作上。理由一:之前文章说过,机器性能杀手有【环境切换】,所
转载 2024-10-25 21:10:28
74阅读
TCP状态转移要点TCP协议规定,对于已经建立的连接,网络双方要进行四次握手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于假死状态,连接本身占用的资源不会被释放。网络服务器程序要同时管理大量连接,所以很有必要保证无用连接完全断开,否则大量僵死的连接会浪费许多服务器资源。在众多TCP状态中,最值得注意的状态有两个:CLOSE_WAIT 和 TIME_WAIT1、LISTENINGFTP服务
1.常用的三个状态是:ESTABLISHED 表示正在通信,TIME_WAIT 表示主动关闭,CLOSE_WAIT 表示被动关闭。TCP协议规定,对于已经建立的连接,网络双方要进行四次握手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于假死状态,连接本身占用的资源不会被释放。网络服务器程序要同时管理大量连接,所以很有必要保证无用连接完全断开,否则大量僵死的连接会浪费许多服务器资源。在众多T
转载 2024-07-09 06:46:34
120阅读
查看网络连接数:netstat -an |wc -lnetstat -an |grep xx |wc -l        查看某个/特定ip的连接数netstat -an |grep TIME_WAIT|wc -l    查看连接数等待time_wait状态连接数netstat
大家好,我是小林。昨晚有位读者问了我这么个问题:大概意思是,一个已经建立的 TCP 连接,客户端中途宕机了,而服务端此时也没有数据要发送,一直处于 establish 状态,客户端恢复后,向服务端建立连接,此时服务端会怎么处理?看过我的图解网络的读者都知道,TCP 连接是由「四元组」唯一确认的。然后这个场景中,客户端的IP、服务端IP、目的端口并没有变化,所以这个问题关键要看客户端发送的 SYN
TCP基本知识(1) TCP的三次握手和四次挥手TCP状态转移要点 TCP协议规定,对于已经建立的连接,网络双方要进行四次握手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于假死状态,连接本身占用的资源不会被释放。网络服务器程序要同时管理大量连接,所以很有必要保证无用连接完全断开,否则大量僵死的连接会浪费许多服务器资源。在众多TCP状态中,最值得注意的状态有两个:CLOSE_WAIT和TI
Linux,一个世界知名的开源操作系统,诞生于20世纪90年代初。自诞生之日起,Linux便以其稳定、高效、安全等优势受到全球广泛关注和应用。而在Linux这个庞大的生态系统中,有一个备受瞩目的角色——红帽(Red Hat)。 红帽公司作为Linux领域的巨头之一,早在上世纪90年代末便已经确立了其在Linux领域的地位。公司成立于1993年,总部位于美国北卡罗来纳州的罗利。在其创始人鲍勃·杨和
原创 2024-03-12 12:14:22
125阅读
在Kubernetes(K8S)中,建立连接是非常常见和重要的操作,尤其是在容器化的微服务架构中。当我们需要在不同的服务之间实现通信时,就必须确保连接正常建立。本文将向你详细介绍在Kubernetes环境下如何实现“connection is established”。 首先,让我们来看一下整个流程,并使用表格展示步骤: | 步骤 | 操作 | | --- | --- | | 1 | 创建Kub
原创 2024-05-30 09:44:56
299阅读
  • 1
  • 2
  • 3
  • 4
  • 5