目录
●概览
今年工作突然忙了起来,很久没有写博客了。最近使用了一款比较小众的免费终端工具——MobaXterm,非常惊喜,希望能和大家分享。文中配图敏感信息已做打码处理。
目前,笔者团队研发的软件绝大多数都是基于Linux操作系统的。无论是在开发、调试、测试亦或现场排查环节,都不可避免的需要通过SSH连接Linux进行远程操作。咨询了大部分研发同事,当前使用最多的SSH终端连接工具主要为Xshell、SecureCRT和Putty。但Xshell和SecureCRT是收费软件,很多同事使用的是**版,无论从版权纠纷风险亦或信息安全风险来看,都不应该去使用二者。Putty虽然是一款免费软件,但界面和功能未免有些简陋。
基于以上背景,在比较多款终端连接工具后,选择出了一款免费、易用且功能强大的MobaXterm。网上关于MobaXterm的信息较少,官网也是全英文的。因此,希冀通过此文的详细介绍,推广该软件的使用。不仅避免了不必要的版权和信安风险,还能明显提升工作效率。
●MobaXterm基本使用
MobaXterm是一款全能型的远程终端连接工具。支持诸如SSH、 RDP、 X11、 SFTP、 FTP、 Telnet、 Rlogin等通信协议,甚至可以访问共享文件夹、浏览器页面、Windows Shell等数据。软件本身是一个单独的exe可执行文件,无需安装即可打开直接使用。软件可以通过加入插件的形式拓展出更多实用功能。软件支持图形化配置SSH隧道、支持X11 server功能。这两点在笔者日常工作中不会使用到,本文不再赘述。
大家可以前往官网https://mobaxterm.mobatek.net/下载。
●Session建立
MobaXterm支持通过Session来进行远程连接,因此没有必要每一次都去键入远程信息。
通过点击Session按钮,可以新建基于各种协议的远程连接Session。我们使用最多的是SSH、RDP、FTP、SFTP,硬件的同事可以会用到Serial访问COM端口。但我们还可以使用其他功能,例如访问共享文件夹、浏览器页面、Windows Shell。
SSH是连接Linux操作系统的常规途径。通常,只需要简单输入用户名、Ip和端口即可。第一次连接时会要求输入密码,保存后,下次即可通过书签栏中的Session直接访问。MobaXterm的终端界面会自动把重要信息标记成不同颜色,方便查看。
RDP连接是用来连接Windows操作系统远程桌面的。以前我们通常是使用Windows自带的“远程桌面连接”来了连接的,但是用MobaXterm后,我们可以通过其连接到Windows远程桌面并且保存Session,方便下次连接,这是非常高效的。同样是输入用户名、Ip、端口(若未修改,默认3389即可)即可建立连接。第一次选择保存密码后,下次可直接双击Session进行访问。
其他Session的建立也类似。再次强调,MobaXterm可以在一个软件中以不同Tab的形式打开不同的Session,无论是远程连接Linux、Windows,亦或是打开共享文件夹、网页、本地Shell都可以。功能强大、使用方便,无需来回切换不同的连接工具。
●书签使用
MobaXterm的Session是以书签的形式保存,书签可以划分不同的类型进行保存,方便查找。
如果以前使用的是SecureCRT或者Putty,甚至可以把之前保存的Session导入到MobaXterm中,平滑过渡使用。只需要在书签区域右键单击即可。同样,MobaXterm也支持Session的导出。
●SSH终端中SFTP使用
与其他终端连接工具不同,MobaXterm在连接SSH终端时即可同时打开SFTP连接,并且展示在同一软件界面中,方便使用。这对于Linux系统上没有安装sz和rz命令,又想传输文件的情景非常有用。
通过SSH正常连接到终端,在软件左侧可切换到sftp标签。方便上传、下载或直接预览文件。若勾选Follow terminal folder,则sftp的文件路径还会以右侧终端路径为准,自动进行切换,非常方便。
对于sftp中的文件,可以双击直接预览。MobaXterm将使用默认的查看工具查看对应的文件。
●SSH终端资源监控
对于Linux系统,我们可以使用top、free、df、iostat等命令来监控CPU、内存、磁盘、IO等资源使用信息。但比较遗憾的是,这种方式指令繁琐不说,展示的界面也不够易读,对于不熟悉Linux的人员,难以快速获得想要的信息。MobaXterm提供了非常好用的远程监控功能。只需切换到Sftp标签,点击Remote monitoring按钮即可查看连接终端的系统版本、CPU与内存使用情况、网络上下行使用情况、登录时长、登录用户、磁盘文件占用空间等信息。当把鼠标悬停在对应的信息区域内,还可以得到更详细的数据。对于实时监控非常有用。
●终端日志保存
有的时候我们需要把终端上输入输出的内容保存为日志文件,便于日后分析。只需要在终端上点击鼠标右键,选择Save to file。即可将内容保存为.txt文件。
●常用设置
MobaXterm虽然“开箱即用”,但依然有一些比较常见的设置可以结合自己的使用习惯去改变。通过Settings按钮可以进行全局设置。值得注意的是,每个Session优先使用全局设置,但其可以改变对于该Session生效的设置。此时将以Session设置为准。
以下选取部分进行介绍。我们可以在General选项卡中更改内置默认的文本编辑程序(MobaTestEditor)为我们习惯的文本编辑程序,例如notepad++、sublime等。这样在sftp中双击文本类型文件,例如log文件、properties文件等,就会用我们习惯的编辑器打开。并且,在编辑完成后可以直接保存替换。无需先下载,再修改,后上传。
我们可以在Terminal选项卡的Terminal look and feel中更改终端显示的字体、编码方式、大小、高亮模式、配色方案等。
可以在Terminal features中设置一些终端使用习惯,例如是否使用鼠标右键进行粘贴(Paste using right-click),不使用的话默认快捷键复制粘贴分别是Ctrl+Insert和Shift+Insert,这和Xshell使用习惯是一致的;粘贴多行内容时是否提醒(Warn before pasting multiple lines),可以避免误执行一些指令;是否显示滚动条(Display scrollbar)等。
我们可以在Display选项卡设置MobaXterm的主题配色、颜色饱和度、透明度等个性化选项。
我们可以点击General选项卡的MobaXterm keyboard shortcuts进行快捷键的设置。
●MobaXterm高效使用技巧
●共享Session
团队中,经常会有几位同事协同开发,每个人都需要相同的远程连接信息。MobaXterm提供了Session的共享功能,只需要建立一份Session,其他同事都可以进行访问,避免了重复性的工作。
右键单击书签区域,选择Share these sessions with my team,选择共享书签的存储位置即可。将该位置作为共享文件夹分享出去。
其他团队成员打开他们的MobaXterm,同样在书签区域右键,选择Manage shared sessions。选择添加,Backend protocol来源选择共享文件夹shared folder,填写Sessions file path路径即可。
●分屏浏览
其实MobaXterm的Tab机制对于切换终端窗口已经很方便了,但如果还想同时观察多个终端的信息,可以使用分屏预览功能。
MobaXterm提供四种分屏预览模式,分别是单一终端模式、双终端水平排列模式、双终端垂直排列模式以及四终端模式。
●指令分发
指令分发功能是建立在分屏预览的基础上的,它可以应用在需要不同终端需要执行相同指令,甚至同时执行相同执行的情况下。例如每个终端都需要安装某个服务或者需要同时触发某个任务。
只需点击MultiExec按钮,即可对进入当前打开的指令类终端的指令分发模式。
退出时,只需要点击右上角Exit multi-excution mode即可。
●本机FTP服务
我们可以通过共享文件夹的形式与其他协调开发的同事分享文件,但对于分享数量很多的情况,例如整个盘符,或者需要在广域网上发布文件的时候,我们可以采用FTP的方式。通常,Windows系统开启FTP服务需要不少的操作配置步骤。而使用MobaXterm这只需简单的设置用户名、秘密、分享路径即可开启。选择Tools中的Network services。
择FTP server,按需设置后点击开启按钮。此时其他用户即可通过ftp://IP:PORT的形式访问你发布的文件内容了。需要关闭时只需点击停止按钮即可。
●运行进程详情
Mobaxterm提供了获取当前运行进程详情的功能,只需点击Tools的List running processes即可查看到系统中正在运行进程的名称、进程号PID、父进程号PPID、CPU与内存占用情况、IO速度、优先级、线程数、启动时间、所属者、执行文件等非常详细的内容。
●端口占用情况
MobaXterm提供了查看当前开启端口的功能,只需点击Tools的List open network ports即可查看被占用的端口以及占用方的信息,方便排查网络问题。
●网络探测
MobaXterm提供了按网段探测各网络计算机开启协议的功能。只需点击Tools的Network scanner即可查询输入网段内的计算机开启协议情况。点击开启协议对于的绿色按钮即可建立session进行访问(当然,如果有用户名、密码要求则需输入)。选择某台计算机还可以点击Deep scan按钮,扫描其对外开放的端口情况。对于排查某些网络问题非常有效。
●网络抓包
某些情况下,需要快速开始网络抓包,没有安装Wireshark等软件时,可以使用MobaXterm提供的抓包功能。只需点击Tools的Network packets capture,选择网卡以及是否实时显示抓包内容,即可启动抓包。
按Ctrl+C可停止抓包,根据实际情况,按R键重新抓包或者按S键保存抓包内容后续分析。终端上通过不同颜色打印出抓包时间、协议、源地址、目标地址以及具体数据等内容。
●宏录制
有的时候我们需要输入很多行指令,并且这一系列指令可能经常使用,那在这种场景下,使用MobaXterm的宏录制就非常适合了。我们只需要点击Macros标签栏里的Record new macro就可以开始录制宏了。
我们在终端中完成我们的一系列指令输入,完成后点击Stop recording macro停止录制,并保存。
之后只要想再次执行这一系列执行,只需要在saved macros里单击刚才保存的宏即可,无需人为再去输一遍指令了。
●本地使用UNIX式命令
MobaXterm支持本地终端中使用Unix命令(得益于Cygwin技术),这样一来无需安装虚拟机,就可以在本地直接执行Unix的指令,对于学习Unix操作系统,或是需要进行Unix操作都非常方便。启动方式很简单,只需在启动MobaXterm时出现的首页中点击Start local terminal即可进入一个模拟的Unix系统中。
MobaXterm的本地终端(local terminal)除了可以使用Unix指令外,例如free、top、tail、rf、rz等,甚至可以混用Windows指令,例如ipconfig、telnet、regedit等。非常全能。
如同Unix可以使用Apt安装软件包一样,在MobaXterm的本地终端中,也可以使用其自带的MobApt packag manager来安装需要使用的软件包,这对于拓展其能力非常有帮助,例如我们需要安装Python环境、需要安装等。通过点击Tools中的MobApt packag manager即可启动并筛选需要安装的软件。
安装过程中,遇到需要依赖的其他软件,也会自动下载安装,非常智能。
例如我们安装了Python环境后,即可在本地终端模拟的Unix中运行Python脚本。