secureCRT自动断开的解决方法

本文介绍了如何在SecureCRT中设置反空闲功能以避免自动断开连接,并提供了通过Entunnel作为跳板机进行安全远程访问的方案。包括配置服务器以限制合法连接来源、设置安全策略以及使用Entunnel实现高效、安全的网络连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在secureCRT上登录时,一段时间不用的话会自动断开,必须重新连接,有点麻烦。
2012-03-01新增了通过“通道软件” Entunnel来配合secureCRT的方法,配置稍微麻烦,但是绝对不会断,也不会打印字符,更重要的是安全,有效管理,这段将在文章的最后面写到。

有时候服务器端的 /etc/profile 或者 ~/.bash_profile 中设置了 TMOUT 选项,或者是 /etc/ssh/sshd_config 文件中设置了客户端连接时间的设置,很可能一段之间之后,SecureCRT就会被断开连接,所以SecureCRT又一个选项可以设置每隔多少秒自动发 送一个信息到服务器端,告诉服务器端客户端还在连接中。
服务器的超时时间要大于CRT设置反空闲时间,不然CRT还没反超时自动连接就被自动断开,那就没啥意义了
服务器配置:
/etc/profile 中的配置,增加一个参数TMOUT=6000       //100分钟,应该够用了
echo "TMOUT=6000 " >>/etc/profile
source /etc/profile   //立即生效
CRT配置方法:
会话选项 –> 终端 –> 反空闲   –> 发送字符串 可以设置,比如发送 \n 、null或其他信息过去,后面可以设置每隔多少秒发送,比如可以3000秒一次,这样可以保证不会掉线。图1
secureCRT自动断开的解决方法;secureCRT连接自动断开; - 断悬 - 好记性不如烂指头
 
如果想应用于所有会话的话,选择全局选项->默认会话->编辑默认设置.做上述修改修改就可以全局使用了.
secureCRT自动断开的解决方法;secureCRT连接自动断开; - 断悬 - 好记性不如烂指头
然后设置同上图。
这个反空闲的设置只有在你没有操作的时候才开始计时,1小时的时间足够了
========================================================================
好吧,这里开始介绍一下怎么使用Entunnel:(Entunnel我叫它为跳板机)
原理:

在Entunnel设置一个本地的端口,通过连接本地端口,经过Entunnel,连接到别的远程主机。

优点,只要一个跳板,开放本地N个端口,经过跳板,连接到N台主机,网络更佳安全,管理更加有效。缺点,配置比较麻烦。


因为我接触的都是linux主机,所以只针对linux,安全方面建议:
先看一张
secureCRT自动断开的解决方法;secureCRT连接自动断开; - 断悬 - 好记性不如烂指头
这里我可以看到,后端的server机都是通过通道机来连接的,也就是说可以在sshd里面限制只有通道机的IP才允许登录服务器,这样将大大增强服务器的安全性,而且当有相关人员离职时,只要修改通道机的密码就可以了,因为后端他是没办法直接登录的。记得需要配置主备2台通道机,防止单点故障把自己锁在门外,通道机推荐使用证书模式来登录。配置方法:http://blog.163.com/a12333a_li/blog/static/87594285201212015558281/
后端server主机的ssh相关配置:  
PermitRootLogin no    //不允许root直接登录,必须通过普通用户su ,配置这样安全点,但不是必须。
AllowUsers xiaoli@191.12.143.44   xiaoli@191.12.143.48       //只允许IP 191.12.143.44 、191.12.143.48的xiaoli用户登录,这2个IP为通道机的IP
登录server  执行last命令:
secureCRT自动断开的解决方法;secureCRT连接自动断开; - 断悬 - 好记性不如烂指头
 
可以看到都是只有一个IP,如果有异常IP,就要小心了。

Entunnel的下载地址、破解补丁、和教程(含自带教程和自己简易编写)的下载地址:

http://download.youkuaiyun.com/detail/c12333c/4102339



转载地址:http://blog.163.com/a12333a_li/blog/static/875942852011676849638/

### 找到两个链表的第一个公共节点 #### 方法一:哈希集合 (基于引用[^1]) 通过使用 `Map` 或者 `Set` 数据结构来存储其中一个链表的所有节点。随后遍历另一个链表,检查当前节点是否已经存在于集合中。如果存在,则该节点即为两链表的第一个公共节点。 这种方法的时间复杂度为 \(O(m+n)\),其中 \(m\) 和 \(n\) 是两条链表的长度;空间复杂度为 \(O(m)\) 或 \(O(n)\),取决于哪个链表被存入集合中。 ```python def getIntersectionNode(headA, headB): nodes_in_B = set() current_node = headB while current_node is not None: nodes_in_B.add(current_node) current_node = current_node.next current_node = headA while current_node is not None: if current_node in nodes_in_B: return current_node current_node = current_node.next return None ``` --- #### 方法二:双指针法 (基于引用[^2]) 定义两个指针分别指向两个链表头结点。每次移动一步,当到达链表末端时,跳转至另一条链表头部继续前进。这样可以消除两者之间的长度差,在第二次相遇处即是第一个公共节点。 此方法时间复杂度同样为 \(O(m+n)\),而空间复杂度降为了 \(O(1)\)。 ```python def getIntersectionNode(headA, headB): pointerA, pointerB = headA, headB while pointerA != pointerB: pointerA = headB if pointerA is None else pointerA.next pointerB = headA if pointerB is None else pointerB.next return pointerA # 返回值可能是公共节点或者None ``` --- #### 方法三:计算长度差异并调整起始位置 先遍历两条链表得到它们各自的长度,并求出差值。让较长的那个链表先行走这个差距步数后再同步逐一遍历比较各对应节点直至发现相等为止。 这种方式也实现了线性时间和常量级额外内存消耗的目标。 ```python def length(node): count = 0 while node: count += 1 node = node.next return count def getIntersectionNode(headA, headB): lenA, lenB = length(headA), length(headB) shorter = headA if lenA < lenB else headB longer = headB if lenA < lenB else headA diff = abs(lenA - lenB) for _ in range(diff): longer = longer.next while shorter and longer: if shorter == longer: return shorter shorter = shorter.next longer = longer.next return None ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值