1

使用主机名和端口号连接到另一台服务器的 Linux 命令是什么?

如何仅使用主机名和端口号连接到另一台服务器,然后检查现有进程是否正在运行?我看到它工作的唯一方法是登录到服务器并运行PS命令。但是有没有办法做到这一点而不直接登录到另一台服务器并且只连接主机名和端口号并检查正在运行的进程?

4

5 回答 5

2

如果您只想尝试与给定主机/端口组合的任意连接,您可以尝试一个nmaptelnetnc(netcat)。

请注意,您不一定确定某个进程是否正在远程运行——它可能正在该端口上运行,而只是忽略它在该端口上看到的任何内容。确实可以肯定的是,您将需要通过or etc运行psor or 等​​。netstatssh

如果您想通过例如脚本使用 SSH,或者更一般地说,不输入登录信息,那么您将需要使用公钥身份验证。Ubuntu 有一些关于如何设置的很好的文档,它也非常适用于其他发行版:https ://help.ubuntu.com/community/SSH/OpenSSH/Keys 。

如果您根本无法访问您尝试列出进程的服务器,那么恐怕没有办法远程列出正在运行的进程(除了远程工具等nmap,如前所述 - 您可以总是在没有身份验证的情况下探测公共端口[尽管如果你对你不拥有的服务器这样做可能会让人们生气])。这是一个功能,而不是一个问题。

于 2013-08-13T19:40:25.893 回答
2

telnet连接到大多数服务。有了它,您可以确保端口已打开并查看 hello 消息(如果有)。也是nc比较低级的。

eri@eri-macro ~ $ telnet smtp.yandex.ru 25
Trying 87.250.250.38...
Connected to smtp.yandex.ru.
Escape character is '^]'.
220 smtp16.mail.yandex.net ESMTP (Want to use Yandex.Mail for your domain? Visit http://pdd.yandex.ru)
helo
501 5.5.4 HELO requires domain address.
HELO ya.ru
250 smtp16.mail.yandex.net
MAIL FROM: <someusername@somecompany.ru>
502 5.5.2 Syntax error, command unrecognized.

如果有纯文本协议,您可以通过键盘与服务交谈。如果连接安全,请尝试 openssl。

openssl s_client -quiet -connect www.google.com:443
depth=1 /C=ZA/O=Thawte Consulting (Pty) Ltd./CN=Thawte SGC CA
verify error:num=20:unable to get local issuer certificate
verify return:0

GET /

<HTML><HEAD>

如果不知道协议,您可能会看到很多象形文字或只是Connected to ...消息。

于 2013-08-13T19:42:00.407 回答
0

尝试这个 :

ssh <YOUR_HOST_NAME> 'ps auxwww'

就像 Dark Falcon 在评论中所说的那样,您需要一个协议来与服务器通信,在这种情况下,仅端口是无用的。

默认情况下,在 unix(和类似 unix)服务器上,是要走的路。

于 2013-08-13T19:38:37.940 回答
0

使用监控软件(如 Nagios)。它会查看您的流程、传感器、负载以及您配置为观看的任何内容。它连续存储日志。如果出现故障,它会通过电子邮件\短信\jabber 提醒您。您可以使用浏览器或 HTTP API 访问它。

于 2013-08-13T21:23:25.850 回答
0

使用此命令的远程 Shell。示例是 cat 远程机器上的文件。

rsh 主机端口 'cat remotefile' >> localfile

主机端口自我解释

remotefile : 远程登录到主目录的机器上某个文件的名称

localfile : 文件名 cat 信息。

于 2013-08-13T19:49:51.710 回答