SecureCRT是很强大的远程登录虚拟终端软件,使用它可以减少很多繁琐的登录连接等操作。记录一下平时比较使用比较多的功能。
一、反空闲
出于安全考虑,一般linux服务器默认都有会话空闲时间,如果客户端超过一定的时间没有任何操作,服务端会断掉会话,这是我们只能重新连接了。解决这个问题有两种方法,一种是在服务端做配置。另外一种就是借助SecureCRT来没隔一段时间发送字符到服务端,保持连接,方法如下。 terminal => anti-idle => 勾选Send string => 输入任何字符
二、按钮栏
工作中,总是有一组命令要经常用,如果纯手打那就很繁琐了,我们可以将这组命令做成一个按钮。如,你经常需要在本地打包一个jar,并上传到/tmp目录下,再从/tmp目录下将jar包复制到tomcat的webapp目录下,并cd到log目录看日志。 点击 view => Button Bar,底部会出现一个横栏
夜深了,有时间再续把。
过去将近一个月了,来把这篇文章补齐。
三、端口转发(ssh隧道)
这个功能是ssh命令就提供的,可以说相当厉害了。
场景1. 堡垒机登录
现在有ABC三台机器,A=>B=>C是连通的,可以通过ssh登录,但A=>C无法连通,那么我们可以通过B来转发A的数据到C,实现A访问C机器。我现在三台机器配置如下: A:本地windows机器,ip为192.168.1.102,可以连通B,不能连通C B:centos虚拟机,机器名master,ip为192.168.238.128,可以连通C C:另一个台centos虚拟机,机器名slave1,ip为192.168.238.129 按如下操作,可以使得A连接C: 步骤1:新建A到B的连接,
场景2. 绕过防火墙
理解了如上的ssh端口转发原理(ssh隧道),那么,是否可以实现通过ssh绕过防火墙呢?如下,这样是否行得通? A=>B使用ssh是连通的,但是A无法访问B的8080端口(tomcat默认端口)。那么是否可以A=>B建立一条ssh隧道(ssh端口转发),监听本地端口8080,将数据通过ssh隧道,转发到B机器的8080端口,这样不就实习了绕过防火墙访问tomcat默认的8080端口了吗?如下图。
四. 远程端口转发(ssh命令使用)
以上的本地端口转发是:A=>B=>C,但A无法连通C,机器A、B、C能链式访问。那如果是这种情况呢:B是内网机器,能连通A和连通C,但A无法连通B,记为A<=B=>C,这种情况则无法在A上使用本地端口转发了。但在B上可是使用远程端口转发。如下图,通过B=>A能连通,在B、A间开通隧道,使得A的数据能够通过隧道传到B。 如下图,远程主机B有80端口的http服务,但没暴露外部端口外部机器无法访问,B能连通A,通过远程端口转发可以实现访问A机器的21212端口就能访问到机器B的80端口。前提是机器A上也安装了sshD服务端。
ssh -R 21212:localhost:80 username@a_ip
-R代表监听远程端口21212。
如下,在机器A上访问21212端口就能连通机器B的http服务了。
五. 动态端口转发
以上的本地端口转发和远程端口转发,只能指定访问服务端的具体端口,而动态端口转发则不固定端口。ssh的动态端口转发就是sock5代理服务器。
ssh -D 1080 username@remote_ip表示所有连接到本地1080端口的数据都会被转发到remote_ip主机上,就像这些数据是在remote_ip上执行一样。
如下,我的电脑的ip是广东电信,
ssh -D 1080 username@ailicloud_ip命令,侦听了本地的1080端口,将数据导向阿里云,并在chrome的SwitchyOmega插件上设置了将浏览器的数据都走1080端口。
以上。