问题:在项目部署过程中,外部设备需要与你部署的Linux服务器上的某个服务进行通信,如果Linux上的服务正常启动,如何确认外部设备是否连接到Linux服务器上呢?
知识点:
(1)监听网络接口:tcpdump -i etho[eth1],默认是eth0
(2)监听指定主机:tcpdump host 监听设备ip地址
(3)监听指定端口:tcpdump 服务器端口号port
实现步骤如下:步骤一:确定网络接口
确定要监听的网络接口号,因为有些机器有两个网络接口,比如同时存在内网端口号eth0和外网端口号eth1,输入:ifconfig,效果如下:
可以看到有两个网络接口eth0和eth1,其中eth0连接的是内网ip,eth1是外网ip,如果要对外网的设备进行监控则用网络接口eth1,反之内网接口用eht0。这里,我们用的是外部设备所以用的网络接口为eth1。
步骤二:确定监听设备的ip地址
确定外部设备的ip地址:在百度输入ip,有如下:可以看到外部终端设备的ip地址为:220.249.162.176
另外由于该设备与我们要连接的服务器不在统一局域网,所以网络接口用eth1。
步骤三:确定网络端口号
通过命令netstat -tlunp确定下具体是外部设备要接入哪个端口号。
步骤四:结合上面几部的分析执行tcpdump命令
sudo tcpdump -i eth1 port 80 and host 220.249.162.176
效果如下:
设备未连入之前:
设备连入之后:
总结:
(1)注意要监听的网络接口号。是eth0还是eth1,可以通过命令ifconfig查当前ip地址
(2)注意要监听的端口号。因为现在很多Linux服务器对外只是开发80端口,内部的端口号比如:8003,是通过Nginx进行跳转的,所以此时如果还是监听8003,则监听不到数据。