我的服务器分配了多个 IP 地址。它们被添加到外部接口(在示例中,接口eth0
和地址出现192.168.2.120
和192.168.2.188
,这当然不是公开的,但这只是一个示例):
$ ip a l dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:fd:45:fd:10:4c brd ff:ff:ff:ff:ff:ff
inet 192.168.2.120/24 brd 192.168.2.255 scope global eth0
valid_lft forever preferred_lft forever
inet 192.168.2.188/24 scope global secondary eth0
valid_lft forever preferred_lft forever
如何使用程序nc
( netcat
) 检查每个地址上某个端口的同时可用性?
-s адрес
。-p порт
例如,让我们使用端口 1024(编号较低的端口需要提升权限 - 您需要
nc
代表用户运行程序root
)。在服务器上为每对运行以下命令
ip:port
:很明显,相同的 IP 地址和端口必须出现在命令
echo
和参数中,以便区分答案。nc
现在从外部(对于服务器)世界,使用相同的程序
nc
,检查您是否收到来自服务器的响应:每对以此类推
ip:port
。如果你得到类似的东西:这意味着(至少从您的本地计算机到服务器)无法访问此 IP 地址和指定端口。
您还可以使用 http-client(“浏览器”)进行检查。为此,您需要在命令中添加一些 http 信息
echo
,将其变为如下内容:那么链接
http://192.168.2.188:1024
应该显示来自服务器上运行的程序的相同消息nc
。但这并不适用于所有端口——例如,我测试的firefox和chromium http 客户端断然拒绝在 25 号端口打开连接。
您可以使用以下命令杀死
nc
未在服务器上运行的进程:您可以看到名称中包含的进程号
nc
(以及传递给进程的参数),您可以这样做: