当我将任何命令导向一个telnet会话时会发生什么,为什么会话会关闭。

3
当我将任何命令连接到telnet会话时会发生什么,为什么会话会关闭。如何发送一条指令而不是关闭连接。

我正在尝试

echo "xvz" | telnet 0 abc 正在连接至 0.0.0.0... 已连接至 0。 转义字符为 '^]'。

这会终止会话而不是处理xyz,还有其他的方式,我也尝试过

telnet 0 xyz < test
正在连接至 0.0.0.0... 已连接至 0。 转义字符为 '^]'。 连接被远程主机关闭。

4个回答

1

telnet 不处理标准输入和标准输出。

您应该检查其他程序,如“expect”。


是的,我知道expect命令,但不幸的是我的服务器上没有安装expect,我想探索其他选项。 - Gaurav
大家好,有人能帮我解决这个问题吗?我可以使用&>选项捕获命令产生的错误,但无法获取输出。任何帮助都将非常有用。 - Gaurav

0

echo 命令(s)您要发送,然后使用 cat 保持连接打开。

{ echo "commands to send"; cat -; } | telnet localhost 8080

当连接打开时,您可以像平常一样输入命令,但是无法发送转义字符到 Telnet。

要关闭连接,请按 Ctrl+C。


0

尝试使用eval

eval "{ echo; 
        sleep 5;
        echo 'xvz'; 
        sleep 10; }" | telnet your_host

使用sleep来保持连接的开放;尝试不同的延迟时间。


为什么要使用eval?它在没有它的情况下也能正常工作... - Jens Moser

0

我发现使用nc(netcat)而不是telnet对于简单的命令非常有效:

echo "command to send"|nc host 1234

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接