强制将 telnet 模式设置为字符模式,而不使用 telnet 命令

强制将 telnet 模式设置为字符模式,而不使用 telnet 命令

我有一个远程主机 C,可以通过主机 B 使用 telnet 访问。从主机 A,我使用 ssh 创建端口转发以访问主机 C 的 telnet 服务器。

我在 hostA 上使用以下命令

ssh  -n -l root <ip HostB> -L3015:<private ip hostC>:23 -N -t -t

使用此命令,我可以使用 telnet localhost 3015 连接到 hostC 的 telnet 端口,但是根据主机型号/设备,telnet 工作方式为逐行或字符. 我想强制 telnet 始终以字符模式工作。

我知道我可以使用 telnet 命令更改模式,但我需要强制此模式,而无需退出到 telnet 提示符 (telnet>)。我不知道是否有某种环境变量可以导出或某些标志/选项可以传递 telnet 客户端(我在手册页上没有看到任何内容)。

当然,如果我使用 telnet 从主机 A 或主机 B 连接到主机 C,telnet 模式始终是字符(而不是逐行)

答案1

不完全符合您想要做的事情...

但是,您可以根据主机逐个指定 telnet 命令,或者使用 $HOME/.telnetrc 或 /etc/telnetrc 文件为所有主机设置默认主机。请参阅 telnet 手册页的“打开主机”部分。

答案2

如果您能告诉我们您使用的是哪种 telnet 客户端或至少哪种操作系统,那将非常有帮助。在许多系统上,如果您 telnet 到 23 以外的端口(或 /etc/services 中匹配的任何“telnet”),客户端将不会进行任何类型的协议协商。这对于手动调试 HTTP 或 POP 服务器非常有用,但对于您的情况则不是那么好。

根据 Linux、OS X 和 Cygwin 上的 telnet 手册页,在端口号前加一个减号(例如,telnet localhost -3015应强制在非标准端口上进行协商)。Solaris 上的手册页没有提到这一点。我不知道标准 Windows telnet 客户端提供了什么。

相关内容