在 bash 中

在 bash 中

telnet://IP我在从 Firefox 和 Chrome启动 telnet 会话()时遇到问题。

  • 使用 Chrome 时我遇到以下问题:当我单击 telnet 链接时,出现“外部协议请求”提示,xdg-open但当我单击“启动应用程序”时什么也没有发生。

  • 对于 Firefox,我按照下面的教程进行操作,但是单击 telnet 链接时什么也没有发生。 Ubuntu 14.04 Mozilla Firefox Telnet 错误

我正在使用 Ubuntu 14.10 和最新版本的 Firefox 和 Chrome。

答案1

我不完全清楚您为什么要通过 Web 浏览器使用telnet- 这样做没什么意义。因此,我们需要使用实际的 telnet 命令,而不是破解 Firefox 以使其与“telnet”配合使用。


您在评论中表示您曾经使用 PuTTY 进行 telnet。PuTTY 实际上存在于存储库中,您可以使用它。此命令安装它:sudo apt-get install putty

然后您可以从 Unity 上的仪表板运行它。


telnet存储库中 还有一个可用程序,默认情况下应该会安装它。通过命令telnet行为您提供界面,并且只有 telnet 界面(您从终端内部运行它)。如果您的系统显示它未安装,您可以通过安装它。(这意味着您不需要 PuTTY,它在 *nix 上格式化东西的方式看起来很奇怪,并且可以更好地与终端配合使用,因此这是建议的 telnet 方法。)telnetsudo apt-get install telnet

答案2

我回答这个近 10 年的问题有两个原因:

  • 我有一个休眠询问 Ubuntu我已经关注这个帐户很长一段时间了,我只是想尝试一下。
  • 在你提出这个问题的时候,我也遇到过同样的问题。在我自己想出一个笨拙的解决方案并发布之后,有人向我暗示了一个更好的解决方案。不幸的是,我丢失了那篇博文的链接……

当时我认为这是一个有效的用例。我有一个脚本,它扫描实验室设备并在网页中显示开放的 TCP 端口 22 和 23,网址分别为 telnet://... 和 ssh://... 即使我丢失了原始博客文章的链接,我的保险库中仍然有“提醒”脚本 - 也许有人会觉得这很鼓舞人心......

在 bash 中

gconftool-2 -s /desktop/gnome/url-handlers/ssh/command '/usr/bin/moz-ssh.sh %s' --type String
gconftool-2 -s /desktop/gnome/url-handlers/ssh/enabled --type Boolean true
gconftool-2 -s /desktop/gnome/url-handlers/ssh/needs_terminal --type Boolean true
gconftool-2 -s /desktop/gnome/url-handlers/telnet/command '/usr/bin/moz-telnet.sh %s' --type String
gconftool-2 -s /desktop/gnome/url-handlers/telnet/enabled --type Boolean true
gconftool-2 -s /desktop/gnome/url-handlers/telnet/needs_terminal --type Boolean true

创建脚本

echo "#!/usr/bin/bash" > /usr/bin/moz-telnet.sh
echo "address=\`echo \$1 | cut -d / -f 3\`" >> /usr/bin/moz-telnet.sh
echo "port=\`echo \$1 | cut -d / -f 4\`" >> /usr/bin/moz-telnet.sh
echo "if [ \"\$port\" == \"\" ]; then" >> /usr/bin/moz-telnet.sh
echo "   port=23" >> /usr/bin/moz-telnet.sh
echo "fi" >> /usr/bin/moz-telnet.sh
echo "putty -telnet \${address} -P \${port}" >> /usr/bin/moz-telnet.sh
echo "#!/bin/bash" > /usr/bin/moz-ssh.sh
echo "address=\`echo \$1 | cut -d / -f 3\`" >> /usr/bin/moz-ssh.sh
echo "port=\`echo \$1 | cut -d / -f 4\`" >> /usr/bin/moz-ssh.sh
echo "if [ "\$port" == "" ]; then" >> /usr/bin/moz-ssh.sh
echo "   port=22" >> /usr/bin/moz-ssh.sh
echo "fi" >> /usr/bin/moz-ssh.sh
echo "putty -ssh \${address} -P \${port}" >> /usr/bin/moz-ssh.sh
chmod 755 /usr/bin/moz-telnet.sh
chmod 755 /usr/bin/moz-ssh.sh

在 Firefox 中关于:配置

network.protocol-handler.expose.telnet;false
network.protocol-handler.expose.ssh;false

Firefox 55 及更高版本

$HOME/.mozilla/firefox/XXXXXXXXX.default/handlers.json:

... ,"ssh":{"action":2,"handlers":[{"name":"moz-ssh.sh","path":"/usr/bin/moz-ssh.sh"}]},"telnet":{"action":2,"handlers":[{"name":"moz-telnet.sh","path":"/usr/bin/moz-telnet.sh"}]} ...

请不要向我扔键盘 ;-) - 这在以前对我有用,但它尚未在当前版本的 ubuntu 和 firefox 上测试过。

干杯!

约尔格

相关内容