本周早些时候,我们在服务器机架上实际安装了一台机器,并将其连接到我们的网络交换机。它安装了科学linux,但我们没有设置用户帐户来登录。我们打开了它,并且它是无头运行的,但是我们想要验证它是否能够通过我们的网络在我们的内部网络上通信/连接到互联网上,因为现在远程我们甚至无法验证它是否开着。我们是否可以从网络上的另一台机器上运行一些东西来查找它(我们有它的mac地址),或者列出本地网络上的所有机器?谢谢
我们在这个服务器故障线程上尝试过使用nmap、ip neigh和arp对本地ip范围进行扫描,然后用grep搜索我们的mac地址,但一无所获。
nmap -sP <our IP range
我不确定这是网络问题,还是码头问题,但我很难从局域网中的另一台机器上获得服务器的响应,该服务器在Docker容器的3000端口上运行nodejs服务器。我使用Mac电脑作为客户端,Linux计算机作为服务器。以下是我所采取的步骤:
用<name of computer>.local:<port>在局域网上测试与独立计算机的连接
在Linux机器上运行服务器(只使用没有容器的nodejs )
在Mac (客户端)计算机上运行curl <name of linux computer>.local:3000
按预期工作
在Docker容器中运行
public static void main(String[] args) {
try {
InetAddress address = InetAddress.getLocalHost();
// InetAddress address = InetAddress.getByName("192.168.46.53");
/*
* Get NetworkInterface for the current host and then read the
* hardware address
在TCP/IP图的子网寻址,第1卷:协议中,有这样的描述:This makes sense because class A and class B addresses have too many bits allocated for the host ID: 16384 - 2 and 65536 - 2, respectively.,我认为这是Subnet Addressing的原因,但是我不知道在哪里可以找到协议,协议描述了任何两个主机只有拥有相同的network id和subnet id才能相互通信。这是相对于Ethernet?但我没有找到关于它的描述。我知道一定有什么东西我错过了!
例