使用主机名和端口号连接到另一台服务器的Linux命令是什么?
如何仅使用主机名和端口号连接到另一台服务器,然后检查现有进程是否正在运行?我看到它工作的唯一方法是登录服务器并运行PS
命令。但有没有办法做到这一点,而无需直接登录到其他服务器,只连接主机名和端口号,并检查正在运行的进程?
答案 0 :(得分:2)
如果您只想尝试与给定主机/端口组合的任意连接,可以尝试一个nmap
,telnet
或nc
(netcat)。
请注意,您无法确定进程是否正在远程运行 - 它可能正在该端口上运行,但只是忽略它在端口上看到的任何内容。要确定,您需要通过ps
等运行netstat
或ssh
等。
如果您想使用SSH,例如一个脚本,或者更一般地说,没有输入登录信息,那么您将需要使用公钥认证。 Ubuntu有一些关于如何设置它的好文档,它也非常适用于其他版本:https://help.ubuntu.com/community/SSH/OpenSSH/Keys。
如果您无法访问服务器,那么您尝试列出进程,那么我担心没有办法远程列出正在运行的进程(除nmap
等远程工具外如前所述 - 你总是可以在没有身份验证的情况下探测公共端口[尽管如果你对你不拥有的服务器这样做会让人生气]。这是一个功能,而不是问题。
答案 1 :(得分:1)
telnet
连接到大多数服务。有了它,您可以确保端口打开并看到问候消息(如果有)。另外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 ...
消息。
答案 2 :(得分:0)
试试这个:
ssh <YOUR_HOST_NAME> 'ps auxwww'
像Dark Falcon在评论中所说,你需要一个与服务器通信的协议,在这种情况下,单独一个端口是没用的。
默认情况下,在unix(和unix like)服务器上,ssh是可行的方法。
答案 3 :(得分:0)
使用此命令的远程Shell。示例是cat远程计算机上的文件。
rsh主机端口'cat remotefile'&gt;&gt; LOCALFILE 强>
主机和端口自我解释
remotefile :远程登录主目录的计算机上某个文件的名称
localfile :文件cat信息的名称。
答案 4 :(得分:0)
使用监控软件(如Nagios)。它会查看您配置为观看的过程,传感器,负载和接收器。它不断存储日志。如果出现故障,它会通过电子邮件\ sms \ jabber提醒您。您可以使用浏览器或HTTP API访问它。