技术奇客ITGeeker.net的博客

  • Esxi 8 虚拟机Ubuntu apt安装Jellyfin如何开启Nvidia硬解码 非Docker方式的安装过程

    Esxi 8 虚拟机Ubuntu apt安装Jellyfin如何开启Nvidia硬解码 非Docker方式的安装过程

    随着网上下载下来的视频质量和体积的增加,视频的码率和编码也越发激进。HEVC编码的视频越来越多,AV1的也多了起来。视频播放卡顿的额原因应该有很多,如果你只对Jellyfin的硬解码感兴趣,那就直接跳到 Jellyfin开启显卡硬解码能力的部分,不过这里主要讨论nVidia显卡的硬解码方式。Intel和AMD GPU暂未仔细研究,但应该类似。

    Jellyfin的安装环境

    技术奇客ITGeeker.net之前使用Esxi 8虚拟了一个Minimal Ubuntu 22.04版本,给了4核CPU, 16G内存。

    然后apt直接安装了Jellyfin, NFS挂载视频盘之后就用上了,一切正常。

    CPU用的XEON 2699A V4, 22核44线程,虽然不带核显,但播放视频都没问题,CPU占有率也从来不是问题。

    使用Ubuntu minimum是为了节省资源,毕竟只要播放视频而已。后来发现VMware自家为Esxi还专门推出过一个精简的Photon系统,官方有OVA版本,安装那是一个简便,而且更节省空间。不过Photon是兼容CentOS Yum的,我比较熟悉apt就没有采用了。

    缘起卡顿

    最近发现通过网络下载的视频,在播放的时候老是有卡顿现象。查看后发现视频都比较大,动不动就10-20G一部影片,编码是HEVC的4K, 至少8bit的。虽然还不是AV1这类的,但对于没有显卡的虚拟机还是显得有点吃力了。

    处理方式一 – 选用Jellyfin的LibVLC播放

    更换Jellyfin的首选播放器为LibVLC, 其实这基本还是解决了卡顿的问题,但是从视频质量来看的确降低了不少,从实际效益来讲,我们下载了高质量的4K视频,购买了高清晰的4K电视机,结果降级使用,没道理啊,果断放弃!

    处理方式二 – 采用Kodi或者VLC等外部播放器

    1. 先说VLC,播放效果一流,而且现在的界面做的还是不错的,还有收藏文件夹等功能。但是搭建Jellyfin,Emby或者Plex流媒体服务的,不就是为了那漂亮的海报界面吗?搜刮了那么多的媒体信息就无用武之地了,果断放弃!但考虑作为第三备用,实在没办法的情况下还是可以的,而且VLC也支持字幕。
    2. Kodi在安装了Jellyfin的插件后,可以把Jellyfin的视频库(电影,电视剧和音乐等)完整的显示到Kodi的界面,而且Kodi的播放效果一流,Jellyfin应该学习借鉴一下才行。但是就是这同步,经常要花费不少时间,尤其当你更新视频库比较频繁的时候,就会发现经常要更新,当然也可能因为我大部分还是使用Jellyfin自己的界面的缘故,如果一直使用Kodi应该没那么明显。

    Kodi已作为备用,凡是Jellyfin不能播放的,就用Kodi播放,而且从没让人失望过。

    by 技术奇客ITGeeker.net

    除了界面没有Jellyfin原生的那么简洁,还有安装Kodi Connect 插件稍显复杂,体验还不错,毕竟Kodi的插件库更丰富,功能更完善。相信这也是为什么Jellyfin和Emby都坚持开发Kodi的插件的原因吧。

    处理方式三 – 更换电视机

    华为v65智慧屏THAL-560和HEGE-560,同为4K电视机,当然前者有HDR和120Hz的刷新率,画面更亮更鲜艳。相同芯片HongHu818,相同内存,HEGE-560可以顺畅播放所有视频,而THAL-560会卡在高清的片子上,不知道是不是其他板块上的芯片有区别。

    还有HEGE-560是HarmonyOS 2,而THAL-560已经升级到HarmonyOS 4.0.0.115了。

    当然换电视是开玩笑,但如果正好要更换电视机,可以多了解一下电视机本身的解码能力。

    处理方式三 – Jellyfin开启显卡硬解码能力

    这是最耗时间的,也是最有科技感的方式。

    by 技术奇客ITGeeker.net

    第一步 先去Jellyfin官方的文档看一下关于硬件加速的内容,写的非常详实

    https://jellyfin.org/docs/general/administration/hardware-acceleration/

    显卡部分有提到NVIDIA GPU,Intel GPU和AMD GPU在Windows, Linux甚至虚拟化平台的显卡加速使用方法。

    • H.264 / AVC 10-bit的解码目前所有显卡都不支持,不用考虑了
    • 核显硬解的话最好使用双通道内存,可以加快速度
    • 缓存或者说Jellyfin最好转到SSD硬盘,m.2速度毕竟快不少

    第二步 查看nVidia官网的解码与编码矩阵图,选择合适的显卡

    Nvidia官方有一个完整的显卡芯片的解码和编码矩阵图,可以清晰的查询各类型号新卡的支持能力。选择一个对的显卡,那么你的视频硬解码也就成功了一半。

    https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new

    消费级的GeForce GTX 1660以上查i能支持所有编码包括AV1, 专业级的也要NVIDIA T400起。手里的是一张华硕的GT1030-SL-2G-BRK的无风扇显卡,399元入手全新的。闲鱼200左右可以入手。好处是无噪音,不好的消息是:正好是Jellyfin官方不推荐的低能显卡。不过解码Decode还可以,不支持的有

        – vp8

        – H.265 (HEVC) 4:4:4

        – AV1

    其它都支持,但编码Encode能力就非常差了,几乎都不支持。以下安装都以这个GT 1030显卡为例

    Most NVIDIA GPUs come with NVENC/NVDEC support but some low-end and mobile models (e.g. GT1030 and MX450) are exceptions.

    by Jellyfin
    硬解码显卡选择 技术奇客ITGeeker.net的几个建议:
    1. nVidia消费级显卡选择GeForce GTX 1660以上为佳,GT1030 and MX450避开不要选择。
    2. Intel核显是Jellyfin优先推荐的,最好是10代以上的CPU核显,也就是核显630以上。
    3. AMD显卡解码能力限制少,比较强,除了RX 6400/6500系列没有编码能力的要避开。

    第三步 开整,安装nVidia显卡的Linux驱动

    平台:Esxi 8;操作系统:Ubuntu22.04.4 64位,显卡:华硕GT1030-SL-2G-BRK直通

    1. 查看当前虚拟机已安装的显卡

    显卡要先直通,虚拟机添加直通的PCI设备后,重启即可查看到NVIDIA Corporation GP108 [GeForce GT 1030]已被添加

    lspci -nn | grep -Ei "3d|display|vga"
    
    00:0f.0 VGA compatible controller [0300]: VMware SVGA II Adapter [15ad:0405]
    03:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP108 [GeForce GT 1030] [10de:1d01] (rev a1)

    2. 安装显卡驱动

    Jellyfin 10.8 所需的最低 NVIDIA 驱动程序版本为 470.57.02。

    具体可常看Ubuntu官方的nVidia驱动安装介绍:https://ubuntu.com/server/docs/nvidia-drivers-installation

    查看当前可安装的Linux版本驱动版本

    sudo ubuntu-drivers list --gpgpu

    然后选择你需要的版本号进行安装,我这里选的是545版本

    sudo apt install -y libnvidia-decode-545 libnvidia-encode-545
    
    # 其他安装Linux nVidia显卡驱动的方法
    sudo apt-get install dkms
    sudo dkms install -m nvidia -v 545.29.06
    # 或者
    sudo add-apt-repository ppa:graphics-drivers/ppa --yes
    sudo apt install nvidia-driver-545

    这里还有可以防止更新Linux内核的后显卡驱动失效的命令可以使用

    dpkg-query -W --showformat='${Package} ${Status}\n' | grep -v deinstall | awk '{ print $1 }' | \
        grep -E 'nvidia.*-[0-9]+$' | \
        xargs -r -L 1 sudo apt-mark hold

    查看已安装的驱动版本,验证一下是否成功安装。

    cat /proc/driver/nvidia/version
    
    NVRM version: NVIDIA UNIX x86_64 Kernel Module  545.29.06  Thu Nov 16 01:59:08 UTC 2023
    GCC version:  gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) 
    
    # 或者使用
    ls /usr/src | grep nvidia
    nvidia-545.29.06
    

    然后nvidia-smi-检查当前驱动的状态

    最后一步在 Jellyfin 中启用 NVENC 并取消选中不支持的编解码器。大功告成!!!

    就这么简单吗?就这么简单。但是你可能会碰到的几个问题,技术奇客ITGeeker.net都踩过坑了,这里提供给大家参考,可以避坑。

    没法和nVidia驱动沟通,其实这里需要安装CUDA编译驱动,可以用nvcc -V查验一下

    nvcc -V
    
    nvcc: NVIDIA (R) Cuda compiler driver
    Copyright (c) 2005-2021 NVIDIA Corporation
    Built on Thu_Nov_18_09:45:30_PST_2021
    Cuda compilation tools, release 11.5, V11.5.119
    Build cuda_11.5.r11.5/compiler.30672275_0

    如果不能运行nvcc -V,可以先安装

    apt install nvidia-cuda-toolkit

    然后安装CUDA,这里有nVidia的官方文档:https://developer.nvidia.com/cuda-downloads

    首先下载CUDA Toolkit for Linux Ubuntu 22.04 x86_64, 我这里采用runfile的方式:

    wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux.run
    sudo sh cuda_12.4.0_550.54.14_linux.run

    然后是稍微有些长的等待,而且没有错误就没有显示。静静的等待一下。。。

    这是因为磁盘空间不够引起的,CUDA ToolKit需要将近10G的磁盘空间,所以空间要留足。技术奇客ITGeeker.net之前给Ubuntu的空间太小,只好进行虚拟机硬盘空间的扩展,又是一番折腾。可以参看技术奇客ITGeeker.net的博客: https://www.itgeeker.net/esxi-8-vm-machine-how-to-expand-disk-space-for-ubuntu-lvm

    扩容后,再运行run,空间足够了就不会出现这个问题。

    运行man man命令的时候会提醒你

    This system has been minimized by removing packages and content that are
    not required on a system that users do not log into.
    
    To restore this content, including manpages, you can run the 'unminimize'
    command. You will still need to ensure the 'man-db' package is installed.

    因为Ubuntu安装的时候采用了minimize最小化安装,所以有些命令缺失。解决方法也很简单

    unminimize

    这里等待的时间会久一点,如果以后要安装Jellyfin,不要选择minimize就对了。

    因为你采用了不同的包来安装驱动,建议你移除后再重新安装CUDA,这里可以不用移除,直接使用命令覆盖

    sudo sh cuda_12.4.0_550.54.14_linux.run --toolkit --silent --override

    基本这个时候就不会有任何信息输出,Linux没有错误即成功。

    卸载并全部重新安装

    如果你碰到错误1里的error NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.但都无法解决的话,或者碰到其他安装问题无法解决,那么考虑移除所有驱动及工具,从头再来吧

    sudo apt-get remove --purge '^nvidia-.*'
    sudo apt-get remove --purge '^libnvidia-.*'
    sudo apt-get remove --purge '^cuda-.*'
    
    sudo apt-get install linux-headers-$(uname -r)

    然后先装nVidia的驱动,再装CUDA ToolsKit就可以了。

    最后,附上成功转码HEVC到H264的截图。

    ,

  • 软路由主机使用Esxi 8安装OpenWRT做家庭主路由 替代原先的Linksys WRT32X 使用pihole做DNS解析并清洗广告

    软路由主机使用Esxi 8安装OpenWRT做家庭主路由 替代原先的Linksys WRT32X 使用pihole做DNS解析并清洗广告

    ITGeeker技术奇客最近入手了倍控的G31 N5100小主机,安装Esxi 8后,安装了虚拟机OpenWrt作为家里的主路由使用。

    N5100的功耗只有6W,比N5105的10W还要低,之前测试过Esxi安装Linux等虚拟机后,CPU相对都会比较空余,所以低功耗做软路由应该更合适,而且价格也便宜100多元。这款机器自带一个嵌入式风扇,就不用加装外挂的风扇,整洁了不少吧。

    为了阻止广告,加快网速,在Esxi上加了一个Ubuntu server mini并配置了pihole,但是N5100有点拉跨,只好部署到另外一台Esxi主机上了。

    英特尔N5100作为All In One软路由够不够实力 谈谈使用倍控G31灰色风扇款N5100小主机的使用情况

    然后给openwrt装了个openclash,目前配合下来还不错。整体稳定。

    使用openwrt的dhcp下发DNS的方法:

    在dhcp-options添加6,pihole主机IP后,之后接入的设备的DNS就会自动设为pihole主机的IP,已接入设备如果默认的话也会在12小时以内更新为新的DNS

    pihole配置本地广告组织列表

    这里推荐两个列表:

    1. https://cdn.jsdelivr.net/gh/neoFelhz/neohosts@gh-pages/basic/hosts
    2. https://github.com/VeleSila/yhosts/blob/master/hosts

    下载到本地后,进入pihole设置的Adlists菜单,添加本地文件,格式为:

    • file:///opt/ad_block_host/block_ad_yhosts
    • file:///opt/ad_block_host/neohosts_basic

    完成后进入Update Gravity菜单,点击update,看看是否更新成功。

    , ,

  • 英特尔N5100作为All In One软路由够不够实力 谈谈使用倍控G31灰色风扇款N5100小主机的使用情况

    英特尔N5100作为All In One软路由够不够实力 谈谈使用倍控G31灰色风扇款N5100小主机的使用情况

    讨论使用All In One的小主机来做路由器的视频非常普及,往往各种数据评测。技术奇客ITGeeker.net这里是直观谈谈使用倍控G31灰色风扇款-N5100小主机的实际体验。

    期待(✧∀✧)

    一开始安装了Esxi 8作为操作系统,配了1T三星980 pro m.2硬盘,金士顿48G 3200笔记本内存,本想着可以作为一个All In One的小主机多装些东西练练收。

    然后安装了OpenWRT作为主路由,然后OpenWRT安装openclash做些代理,然后再新建一个Ubuntu server mini装了Pi-hole用来过滤广告和限制小孩的一些域名访问。

    刚开始用着还不错,想想再增加了一个Ubuntu sever mini装了Odoo 15,结果CPU就有点不够了,偶尔会出现死机现象。只好把Odoo给停了。

    这个时候,看Pi-hole的每天查询数queries大概再50-60万次左右,基本上CPU占用80%,内存只有大概30%的使用率。

    过了几个月,Pi-hole的每天查询数queries大概再80-90万次左右的时候,就变得不稳定了,偶尔CPU就会超过110%,出现偶尔死机的情况了。内存倒是始终在16G以下。

    放弃

    因为会宕机,所以给Pi-hole做了各种优化,及时清理缓存等,甚至换上AdGuard也是同样的情况。

    可能DNS查询量大的时候,读写太频繁,加上lograte要转存日志是CPU就会超载。

    这在我用Esxi 8的备份工具ovftool.exe备份ova文件时,验证了读取大量数据时,英特尔的N5100 CPU扛不住了。

    解决方案只能把Pi-hole备份成ova,然后部署到另外一台的Esxi服务器上了,结果再看CPU和内存占有,又有点性能过剩了。

    回头装些不那么占用CPU的应用吧。

    小结

    希望对你在选购All In One小主机时有个参考,不要只看自媒体的视频吹的大雪狂飞。

    1. 英特尔的N5100 CPU相对还是比较弱的
    2. Pi-hole很吃CPU
    ,

  • 华为Mate60 Pro HarmonyOS 4最新版成功安装GMS 如何禁止Google Play提示此设备未获得Play保护机制认证提醒

    华为Mate60 Pro HarmonyOS 4最新版成功安装GMS 如何禁止Google Play提示此设备未获得Play保护机制认证提醒

    本来想着之前的Mate40Pro+还能再战一年,等明年Mate70Pro出来再换,毕竟Mate40Pro+当时也是相当的难抢。结果在陪着去拿预定的华为Mate60 Pro时,问了商家一句是否还有机子,结果正好有别人预定了,但又暂时不想要的机子,黑色的至臻版Mate60 Pro,就是带一个Freebuds 5至臻版无线降噪耳机的那款。然后就买了。

    前面Mate40Pro+升级到HarmonyOS 4后还没完全搞定GMS套件,参看之前文章:

    华为Mate40 Pro+完美升级到HarmonyOS 4.0.0.112 第2天GMS Google Play提示此设备未获得Play保护机制认证

    当时最后选择了Gbox,但实际使用还是有诸多不便,应用安装也不全。趁着Mate60 Pro入手,打算好好解决一下这个问题。

    结果看了几个视频,GMS整个安装过程很顺利。但是同样的问题,第二天还是碰到了Google Play提示此设备未获得Play保护机制认证。

    采用Device ID获取GSF注册的方式没法解决该问题,不用尝试了。

    可行的解决方法

    用adb关闭Google服务框架

    成功解决GMS弹窗警告信息问题

    如图所示,只要让Google服务框架是已停用状态即可。经过2周实测,不会影响实际使用GMS的各种应用。只有打开Chrome APP会有重复让你开启同步功能的提示。

    操作第一步

    当碰到Google Play提示此设备未获得Play保护机制认证时,进入应用管理找到Google服务框架,手动强制停止,看看是否提醒可消失,如果没有消失或停止,那就找找其他方式吧。这个方式不适合您当前的情况。

    操作第二步

    手机开启USB调试,并连接USB到电脑,测试adb可用后,运行禁用Google服务框架命令:

    adb shell pm disable-user --user 0 com.google.android.gsf

    就这么简单,解决烦人的弹窗提醒。

    若运行adb后出现类似错误:

    adb server version (39) doesn't match this client (40); killing...
    could not read ok from ADB Server
    * failed to start daemon
    error: cannot connect to daemon

    可以尝试再次运行adb命令行,出现类似以下内容即成功了

    * daemon not running; starting now at tcp:5037
    * daemon started successfully
    Package com.google.android.gsf new state: disabled-user

    ADB禁止GSF打包zip文件(1181K)

    链接: https://pan.baidu.com/s/1e3vew76xiR0RH4CH47quMQ?pwd=iuzj 提取码: iuzj

    如果电脑未能安装手机驱动,可尝试安装华为助手来解决。2024-02-08上传,有效期30天

    解压后,直接双击运行adb.bat即可,或者运行上面的adb命令行。若出现多行信息,则为错误信息,多数因为:

    • USB调试打开后,需要重新插拔一次手机
    • 手机未被电脑识别,尝试安装华为助手,相当于安装手机驱动
    • USB线只支持充电,不支持数据连接

    本次参考的教学视频

    参考的是油管上fenibook发布的视频

    鸿蒙4 0安装谷歌服务教程,华为Mate 60 通用

    关键要有一个好的网络,安装就会顺利很多。

    by 技术奇客ITGeeker.net

    本次使用的GMS安装包(200多兆)

    也是fenibook提供的OneDrive分享,密码是2333

    OneDrive下载地址:https://1drv.ms/u/s!Aik9XRP_jw-Zg-gs3dkSufFqHeoOaw

    或者Google Drive分享

    GoogleDrive下载地址https://drive.google.com/file/d/1B1619UJVjOY4UqXaMY4uY40TvnEcGemT/view?usp=drivesdk

    备份目录的完整路径及找不到 “从内部恢复” 的菜单的问题

    连接手机到电脑,选择文件传输模式时的完整路径:

    可能会碰到的问题是找不到“从内部恢复”这个选项,解决要点是把压缩包里的“Huawei.zip”解压缩到内部存储的根目录,还有手机日期要调到2019年11月11日或者其他月日😁。其他网上的各种方法似乎都不灵的。

    by 技术奇客ITGeeker.net

    2024-07-21更新:

    HarmonyOS 4.2.0版本即使路径正确,日期也改好了,也找不到“从内部恢复”选项了,可以参考本站的:

    HarmonyOS 4.2.0版本安装GMS第一步找不到“从内部恢复”选项的解决办法一: 外部存储恢复法

    https://www.itgeeker.net/harmonyos-4-2-0-install-gms-cannot-find-recovery-from-internal

    若有其他问题请留言交流。

    , ,

  • Google Chrome清除指定网站的所有缓存 浏览记录、Cookie、缓存及其他数据

    Google Chrome清除指定网站的所有缓存 浏览记录、Cookie、缓存及其他数据

    当您使用浏览器(例如 Chrome或者Edge)时,浏览器会将网站中的一些信息保存在其缓存和 Cookie 中。有时候清除这些内容可以解决某些问题,例如更新了Odoo的JS文件后,客户端浏览器并不会马上更新。

    先来看看Google谷歌官方指导

    在 Chrome 中

    1. 在计算机上打开 Chrome。
    2. 点击右上角的“更多”图标 展开
    3. 依次点击更多工具 接着点按 清除浏览数据
    4. 在顶部,选择一个时间范围。要删除所有内容,请选择时间不限
    5. 选中“Cookie 及其他网站数据”及“缓存的图片和文件”旁边的复选框。
    6. 点击清除数据

    谷歌官方的这一指引并不能清除指定的单一网站缓存,而是只有清除所有网站的缓存。比如如果你想单单清除https://www.itgeeker.net的缓存和Cookie是无法实现的。

    不清除缓存,只单独清除某个网站的Cookie是可以的。

    by itgeeker.net

    清除特定网站缓存的方法

    但是,如果采用开发者工具(浏览器页面F12可开启),则可以很快消除该页面的缓存,从而实现消除并更新的效果

    打开开发者工具(F12),选择 Network——Disable cache,刷新页面,如果已经清除并更新,可以去掉Disable cache选项,再刷新页面试试。

    这样就实现了清除特定网站缓存,而不必清除所有网站的缓存了。

    好像换了默认快捷键了:Ctrl + Shift + I

    清除特定网站缓存的方法2025

    在Chrome浏览器中,你可以通过开发者工具删除指定网址的缓存。具体步骤如下:

    1. 打开开发者工具:
      在要清除缓存的网页上,按F12 或右键点击页面,选择“检查”。
    2. 选择“Application”选项卡:
      在开发者工具的左侧面板中,点击“Application” 选项卡。
    3. 选择“Storage”部分:
      在Application 选项卡中,找到“Storage”(存储)部分。
    4. 清除存储数据:
      在“Storage”部分,你可以找到与该网址相关的缓存、Cookie、Service Workers等。选择要清除的项目(例如,缓存)并点击“Clear site data”按钮。
      这种方法可以清除特定网址的缓存,而不会影响其他网页的缓存.

      另外,还可以通过以下方法清除缓存:
    5. 清除浏览数据:
      在Chrome浏览器中,可以点击右上角的“更多”图标,选择“更多工具”,然后点击“清除浏览数据”。选择要清除的时间范围和类型,然后点击“清除数据”。
    6. 使用开发者工具禁用缓存:
      在开发者工具的Network 选项卡中,可以勾选“Disable cache” 选项,这样在浏览网页时,Chrome就不会从缓存中读取数据,从而实现清除缓存的效果.

      注意事项:
    • 清除缓存后,网页可能需要重新加载以获取最新数据,因此网页加载时间可能会略有增加。
    • 在清除缓存之前,可以考虑备份或记录重要的网站数据,以免丢失数据。

    , , ,

  • 如何将Xshell的会话导入到WindTerm

    如何将Xshell的会话导入到WindTerm

    Xshell虽然是商业软件,但是家庭和学校版还是免费的,所以也用了挺长的时间,积累了不少的连接(会话)和快速命令。

    放弃Xshell转投WindTerm的几个理由

    1. 总感觉Xshell的比较占用资源,启动速度有点慢,尤其多开的时候感觉非常耗资源。
    2. 虽然可以创建很多的快捷命令,但是无法同时开启两个快捷命令栏,不停的切换又太麻烦,导致快捷命令重复的太多。
    3. Xshell还不能跨平台使用,Windows里使用的没法在Linux里头同步使用。
    4. Xshell 7 后面的版本据说会有启动弹窗广告,不过ITGeeker技术奇客至今还没碰到。
    5. Xshell 6版本以后,免费版每个窗口限制最多开4个标签页
    6. Xshell启动的窗口大小经常无法记忆,也没找到地方设置。
    7. Xshell右键粘贴命令时常会有乱码。
    8. Xshell tail日志的时候没法停止查看
    9. 用的太久了,想尝试新的工具。
    10. WindTerm是开源的,完全免费用于商业和非商业用途。资源消耗、性能方面相比要好很多;Windows版本免安装解压即可便携用。
    11. WindTerm配置文件修改方便,可随意打包保存。同步多台设备的配置可使用git方式。

    WindTerm开源地址:https://github.com/kingToolbox/WindTerm/releases 当前Fork1.3K,Star 16.4K

    WindTerm作者博客地址,有很多功能介绍及教学等:https://kingtoolbox.github.io/

    依据凡事都要有备份方案的原则,觉得不应只依赖一个软件,而且Xshell的跨平台使用的确是个问题,所以打算启用第二个SSH的客户端。国内有蛮多人推荐的客户端叫FinalShell, 但是它的官方主页(http://www.hostbuf.com/t/988.html)让人感觉有点点没那么大气,所以还是选择了这个纯开源的WindTerm.

    Xshell转投WindTerm的数据导入导出问题

    如何将Xshell的会话导入到WindTerm?

    不知不觉的,你会发现你的链接的数量可能至少有几十个,甚至上百个。如何快速地将这些会话导入到WindTerm就成了非常重要的问题。

    网上搜了一圈似乎没有直接将Xshell导入到WindTerm的工具,WindTerm官方也讲了因为Xshell是一个商业软件,所以他们不会提供从Xshell导入到WindTerm的工具。这里ITGeeker技术奇客在网上找到了一个SH脚本,可以将Xshell的会话先导入到Putty,然后再在WindTerm里直接导入就可以了。虽然是2019年的脚本,只需修改PATH_XSH参数为正确的路径,亲测可以正常使用。

    Xshell 7 会话默认路径: C:\Users\你的用户名\文档\NetSarang Computer\7\Xshell\Sessions

    第一步:如何将Xshell会话导入到Putty当中

    在Windows本地创建好SH脚本后,打开CMD运行窗口,运行两个命令:

    • wsl bash xshell2putty_config.sh
    • reg import tmp_xshell2putty_config.reg

    这里应该要安装Windows子系统Linux,ITGeeker技术奇客的Windows之前已经安装过的。

    第二步:打开Putty,确认会话已成功导入

    Putty Windows应用官方链接 https://apps.microsoft.com/store/detail/putty/XPFNZKSKLBP7RJ

    这里从Xshell导入的链接可能会有少许是错误的,但基本都可用。

    第三步:在WindTerm的的会话窗口空白处,右键点击并选择导入即可完成

    如果你的Xshell会话包含子目录,那就需要多次运行,每次设定不同PATH_XSH才行。或者改一下脚本,让它支持遍历各个子目录也行。

    by itgeeker.net

    如何将Xshell的快速命令导入到WindTerm?请参考ITGeeker技术奇客的原创的转换脚本。

    xshell2putty_config.sh脚本参考

    脚本原始地址:https://gist.github.com/timedcy/a9da42ec66710e9a28535f769dcee694

    #!/bin/bash
    
    # convert to and import putty config from xshell's
    # author: timedcy
    # date: 2019-12-04
    # usage:
    # In Windows 10 cmd, execute commands
    # wsl bash xshell2putty_config.sh
    # reg import tmp_xshell2putty_config.reg
    
    # set vars bellow first
    PATH_XSH="/mnt/d/conf/XShellSessions/Links"
    PublicKeyFile="D:\\conf\\UserKeys\\keydcy_4096.ppk"
    
    
    fn_tmp_reg=./tmp_xshell2putty_config.reg
    
    proc_list() {
      echo "Windows Registry Editor Version 5.00
    
    [HKEY_CURRENT_USER\Software\SimonTatham]
    
    [HKEY_CURRENT_USER\Software\SimonTatham\PuTTY]
    
    [HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions]
    " >${fn_tmp_reg}
    
      for xsh in $(ls "${PATH_XSH}"/*xsh); do
        proc_xsh $xsh
      done
    }
    
    extr() { iconv -f utf-16 -t utf-8 $filepath | sed -nr "s#(^${1}=)([^\r]+)#\2#gp" | tr -d '\r'; }
    
    proc_xsh() {
      filename="${1##*/}"
      name=${filename%.*}
      filepath="${PATH_XSH}/$filename"
      HostName=$(extr Host)
      PortNumber=$(extr Port)
      UserName=$(extr UserName)
      PortNumber="dword:$(printf '%08x\n' ${PortNumber})"
      WinTitle="${UserName}@: ${name}~"
      FwdReqCount=$(extr FwdReqCount)
      PortForwardings=""
      if [[ "$FwdReqCount" -gt 0 ]]; then
        for ((x = 0; x < $FwdReqCount; x++)); do
          Port=$(extr "FwdReq_${x}_Port")
          Host=$(extr "FwdReq_${x}_Host")
          HostPort=$(extr "FwdReq_${x}_HostPort")
          PortForwardings+="L${Port}=${Host}:${HostPort},"
        done
        PortForwardings="${PortForwardings%,*}"
      fi
      echo
      echo filepath: $filepath
      echo HostName: $HostName
      echo PortNumber: $PortNumber
      echo UserName: $UserName
      echo ${PortForwardings}
      echo WinTitle: $WinTitle
      echo PublicKeyFile: $PublicKeyFile
      echo fn_tmp_reg: $fn_tmp_reg
    
      echo "
    [HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\\${name}]
    \"HostName\"=\"${HostName}\"
    \"PortNumber\"="${PortNumber}"
    \"UserName\"=\"${UserName}\"
    \"PublicKeyFile\"=\"${PublicKeyFile}\"
    \"PortForwardings\"=\"${PortForwardings}\"
    \"WinTitle\"=\"${WinTitle}\"
    \"AgentFwd\"=dword:00000001
    \"Protocol\"=\"ssh\"
    \"FullScreenOnAltEnter\"=dword:00000001
    \"LineCodePage\"=\"UTF-8\"
    \"TCPNoDelay\"=dword:00000001
    \"TCPKeepalives\"=dword:00000001
    \"Font\"=\"DejaVu Sans Mono\"
    \"FontIsBold\"=dword:00000000
    \"FontCharSet\"=dword:00000000
    \"FontHeight\"=dword:00000012
    \"FontVTMode\"=dword:00000004
    " >>${fn_tmp_reg}
    
    }
    
    proc_list
    ,

奇客罗方公众号 奇客罗方小程序 奇客罗方客服 ITGeeker Telegram

网站由ITGeeker技术奇客开发并管理;隶属于GeekerCloud奇客罗方智能科技
Site designed and developed by ITGeekerwhich is a sub-website of GeekerCloud
网站地图 | 沪ICP备2021031434号-4