有时telnet
用于测试非 telnet 服务器,例如 HTTP 或 SMTP 服务器,其中 TELNET 协议通常不会妨碍。但是,我认为我在调试 TCP 服务器时遇到过妨碍的情况。我运行
telnet 本地主机 < 数据文件
服务器收到的数据与文件中的数据不同。
是否有我可以使用的 telnet 选项或其他命令?
如果必须单独安装,那我就不要了。不用也行。
答案1
嗯,实际上它被称为netcat
并且不是 Solaris 的内置程序。但是如果您使用 bash 或 zsh(或者可能是其他程序),您还有另一种选择:
男子猛击:
Bash handles several filenames specially when they are used in redirections, as described in the following table: … /dev/tcp/host/port If host is a valid hostname or Internet address, and port is an integer port number or service name, bash attempts to open a TCP connection to the corresponding socket.
答案2
我想是吧netcat
?有一个包裹这里。但是 Sun 默认不提供此功能。您对软件包有什么不满吗?
答案3
正如 poige 所说:您可以使用 /dev/tcp// 设备。以下是示例:
bash-3.2$ cat </dev/null >/dev/tcp/1.2.3.4/22; echo $?
0
bash-3.2$ cat </dev/null >/dev/tcp/1.2.3.4/1522; echo $?
bash: connect: Connection timed out
bash: /dev/tcp/1.2.3.4/1522: Connection timed out
1
您可能为此编写了一个小型 bash 脚本。TCP 超时后会出现“超时”消息,我通常将其设置为 4 分钟。这很长……
答案4
也许吧tcpdump
?但这显然不重要……