【finalShell客户端&Dialogue服务】远程终端操作软件与远程技术推荐

        在日常开发或私下的学习中,经常接触到服务器的操作问题,在不同的设备之间进行互相的通讯,与远程操作是一种不同的体验,现在就来带大家看一下有哪些还不错的连接工具吧!

目录

ssh远程操作

ssh是什么

finalShell

TCP远程操作

TCP是什么

dialogue

总结


ssh远程操作

ssh是什么

        ssh是一种远程连接的协议,基于TCP实现,该协议能够使得两台主机实现免密登录,需要进行公钥和私钥的配置,是当下设备远程操作的主要方式,通过终端中的ssh命令就可以启动与已安装ssh的设备之间的连接,例如下面的命令,代表以liming用户身份登录到192.168.1.15这台主机的命令行中。

C:\Users\zhao>ssh [email protected]

        而针对ssh的命令行方式,有的小伙伴是不太舒服的,毕竟一个黑黑的窗口,能有多少人会喜欢呢?因此便有了一些图形化终端工具。

finalShell

        finalShell是一款能够通过密码和ssh密钥对进行远程登录和命令执行的图形化软件,采用Java实现的一款软件,基于ssh实现的客户端连接工具,同时提供了服务器状态的实时查询。

finalShell官网地址:http://www.hostbuf.com/t/988.html

        不过由于finalShell在平时只用于连接,所以很多功能还没有发掘到,finalShell的强大并不是只有这么一点,各位可以亲自试一下

【finalShell客户端&Dialogue服务】远程终端操作软件与远程技术推荐_第1张图片

TCP远程操作

TCP是什么

        TCP是一种比较底层也比较常用的网络协议,这种协议可以保证通信两端的设备之间的通信质量稳定,传输安全性高,同时也是当下web中http协议的底层,在TCP的通信中,即保证了安全,也实现了生态火热,在各类编程语言中都有此协议的库,那么接下来将要介绍一款基于TCP实现的远程操作工具——dialogue。

dialogue

        dialogue译名为“对话”,简单的理解为两台计算机之间的对话,是一个服务,dialogue与其说是一款服务程序,不如说其更像一个库,它提供了一个完整的Java API以及服务程序,同时是开源框架,在该框架中有主控和被控两种会话,即代表了主动连接和被动连接两个设备,基于dialogue的服务启动之后的两台设备,可以互相进行命令行通信与调用。

dailogue开源地址:https://github.com/BeardedManZhao/Dialogue

         dialogue提供了两个开发好的客户端,分别是PC端和安卓移动端两种,在已发布版本就可以找到对应的apk和zip包,接下来就为大家展示下远程操作的调用。

【finalShell客户端&Dialogue服务】远程终端操作软件与远程技术推荐_第2张图片       已发布版本中的zip和apk客户端包 

        首先在我们的设备上下载好了zip包,并对其进行解压,解压后开源看到有两个脚本,这两个脚本文件分别是启动主控与被控服务的脚本文件,这两个文件同样是调用目录中的jar包,到此dialogue服务安装完毕。

【finalShell客户端&Dialogue服务】远程终端操作软件与远程技术推荐_第3张图片

         接下来开始启动被控服务,被控服务启动之后,当前的设备就可以直接被任何安装了dailogue服务的设备通过IP所连接了。

【finalShell客户端&Dialogue服务】远程终端操作软件与远程技术推荐_第4张图片          接下来开始准备一台新设备,一样安装好dialogue服务,然后启动主控,开始进行远程连接,并执行一些操作。

【finalShell客户端&Dialogue服务】远程终端操作软件与远程技术推荐_第5张图片

        可以看到这些命令执行成功了,那么如何验证我们是否使用远程设备执行的命令呢?很简单,只需要查看下被控日志即可,在被控日志中会打印出执行的命令以及执行时的情况。

【finalShell客户端&Dialogue服务】远程终端操作软件与远程技术推荐_第6张图片

         当然,既然是一个开源的服务,那么一定会有它的开发方式,它提供了JavaAPI,是通过各类会话对象进行的这类服务操作,接下来就是通过Java去连接被控的示例。

public class Test {

    public static void main(String[] args) {
        // 获取到主控会话对象
        MasterSession instance = MasterSession.getInstance(Session.MASTER_FILE_SESSION);
        // 启动会话 指定被控IP与指令处理端口,被控端口默认是10001
        instance.start("192.168.0.101", "10003");
        if (instance.isRunning()) {
            // 执行cmd命令,并获取到执行的结果数据
            String s1 = instance.runCommand("cmd /c dir");
            System.out.println(s1);
            System.out.println();
            // 运行一个python脚本
            String s2 = instance.runCommand("python test.py");
            System.out.println(s2);
            System.out.println();
            // 执行 cmd 命令查看python脚本的代码
            String s3 = instance.runCommand("cmd /c type test.py");
            System.out.println(s3);
            System.out.println();
            // 执行 look 命令,使用文件通道 查看python脚本的代码
            String s4 = instance.runCommand("look ./test.py");
            System.out.println(s4);
            // 执行 get 命令,获取到被控设备的文件数据 这里的进度显示可以在配置文件中 file.progress.event 属性进行设置
            String s5 = instance.runCommand("get ./EB1.ppt ./EB2.ppt");
            System.out.println(s5);
        }
        // 终止当前会话
        instance.stop();
    }
}

总结

  • finalShell:给人一种很方便的感觉,同时本身也具备了多种功能,以Java开发的shell工具,对于Java开发者来说应该是比较亲切的,但是有些高级功能需要充钱,同时依赖ssh服务,因此需要先将ssh服务搭配好并启动,finalShell才可以使用。
  • dialogue:本身就是一种服务,与ssh没有关系,配置起来类似ssh,但dialogue相较于ssh有更灵活的API操作,同时本身开源,意味着基于dialogue的事物可以更加多样化!

你可能感兴趣的:(技术推荐,ssh,tcp,服务器)