linux网络连接问题诊断

ethtool

ethtool是linux的网络驱动程序的诊断和调整工具,可获取网络设备的相关信息,包括连接状态、驱动版本、PCI 总线定位等等。ethtool 是用于查询及设置网卡参数的命令。
使用方式:

ethtool ethx       //查询ethx网口基本设置,其中 x 是对应网卡的编号,如eth0、eth1等等
ethtool –h         //显示ethtool的命令帮助(help)
ethtool –i ethX    //查询ethX网口的相关信息 
ethtool –d ethX    //查询ethX网口注册性信息
ethtool –r ethX    //重置ethX网口到自适应模式
ethtool –S ethX    //查询ethX网口收发包统计
ethtool –s ethX [speed 10|100|1000] [duplex half|full]  [autoneg on|off]        //设置网口速率10/100/1000M、设置网口半/全双工、设置网口是否自协商

使用举例:

lspci|grep Eth // 列出机器中的PCI设备信息,如声卡,显卡,Modem,网卡等信息

b5:00.0 Ethernet controller: Intel Corporation Ethernet Connection X722 for 1GbE (rev 08)
b5:00.1 Ethernet controller: Intel Corporation Ethernet Connection X722 for 1GbE (rev 08)
# 查看网卡的输入流量,输出流量,输入包,输出包,输入的广播,输出的广播,输入的网络错包,输出的网络错包等
ethtool -S enp181s0f0

NIC statistics:
     rx_packets: 7610406
     tx_packets: 1027444
     rx_bytes: 765244955
     tx_bytes: 147618566
     rx_errors: 0
     tx_errors: 0
     rx_dropped: 0
     tx_dropped: 0
     collisions: 0
     rx_length_errors: 0
     rx_crc_errors: 0
     rx_unicast: 517861
...


ip

linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者。ifconfig是net-tools中已被废弃使用的一个命令,许多年前就已经没有维护了。iproute2套件里提供了许多增强功能的命令,ip命令即是其中之一。

在这里插入图片描述

查看网络接口卡信息: ip a

查看所有网卡的接口信息。
在这里a不是选项是对象(OBJECT):address
打印下面的内容:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp181s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:24:ec:f2:a5:e9 brd ff:ff:ff:ff:ff:ff
    inet 166.111.26.65/23 brd 166.111.27.255 scope global noprefixroute enp181s0f0
       valid_lft forever preferred_lft forever
    inet6 fe80::4e91:fe88:af89:8a88/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: enp181s0f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:24:ec:f2:a5:ea brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.11/24 brd 192.168.1.255 scope global noprefixroute enp181s0f1
       valid_lft forever preferred_lft forever
    inet6 fe80::cc60:3104:c18c:9733/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:8a:b3:cd brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
    link/ether 52:54:00:8a:b3:cd brd ff:ff:ff:ff:ff:ff

lo是linux中的虚拟网络接口
link/ether是二层协议 mac地址 广播地址
inet(v4)是三层协议 ip地址 广播地址
inet6是三层协议 ipv6地址
同一台机器的不同进程进行通信时会用到。实现了同一台机器的进程之间的socket通信。虚拟网络接口不需要驱动程序。

ip link ls up

查看正在运行的接口的相关信息

ip link ls down(反之)

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp181s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:24:ec:f2:a5:e9 brd ff:ff:ff:ff:ff:ff
3: enp181s0f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:24:ec:f2:a5:ea brd ff:ff:ff:ff:ff:ff
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
    link/ether 52:54:00:8a:b3:cd brd ff:ff:ff:ff:ff:ff

更多命令参考:https://blog.csdn.net/chinaltx/article/details/86497076

linux网桥命令

设置 Linux 网桥命令 brctl

# 显示所有的网桥信息
brctl show

tcpdump

dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。

启动

#启动
tcpdum
# 监视指定网络接口的数据包;如果不指定网卡,默认tcpdump只会监视第一个网络接口,一般是eth0
tcpdump -i enp181s0f1 tcp port 22

跟多参考:https://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
当出现Linux Modbus无法连接到服务器的情况时,可能有以下几个可能的原因: 1. IP地址或端口号错误:请确保在程序中设置的服务器IP地址和端口号是正确的。可以通过检查服务器的网络配置或与管理员联系来验证这些信息。 2. 防火墙阻塞连接:如果服务器上安装了防火墙,它可能会阻止Modbus连接。可以通过将防火墙配置为允许Modbus连接的端口来解决问题。 3. 服务器故障:服务器可能出现故障或停机导致无法连接。确保服务器正常工作,并通过尝试连接其他服务来验证是否是特定于Modbus协议的问题。 4. Modbus设置错误:检查在Linux上设置的Modbus参数是否正确。这包括传输模式、从站地址、寄存器地址等。确保这些设置与服务器的配置相匹配。 5. Modbus从站故障:如果无法连接到特定的Modbus从站,可能是从站本身出现问题。请检查从站的连接、电源、设备状态等,并确保它们正常工作。 6. 网络连接问题:请确认Linux网络连接正常。可以通过尝试连接其他网络服务或使用网络诊断工具来检查网络连接是否正常。 总而言之,当无法连接到Linux Modbus服务器时,请首先检查IP地址、端口号,然后检查防火墙和服务器状态。如果这些都没有问题,可能是Modbus设置或网络连接问题。通过逐步排除这些可能性,可以找到问题的根本原因并解决连接问题

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值