ifconfig없이 TX / RX 바이트를 얻는 방법? 외에도 각 인터페이스에서

때문에 ifconfig분명히 주요 리눅스 배포판에서 사용되지되고, 나는이에 대해 뭔가 배울 거라고 생각 ip대신에 사용하기로했다 도구를 ifconfig.

그리고 여기에 문제가 발생했습니다. 자체로 실행할 때 ifconfig다른 정보 외에도 각 인터페이스에서 수신 / 전송 된 바이트 수를 보여줍니다. 에서이 방법을 찾지 못했습니다 ip. 이 도구에는 그러한 기능이 없습니까? 이러한 통계를 얻기 위해 사용할 수있는 다른 내장 도구는 무엇입니까?



답변

또 다른 옵션은 / proc 파일 시스템을 사용하는 것입니다. / proc 디렉토리 / 그물 / dev에 파일이 구성된 네트워크 인터페이스에 대한 통계를 포함합니다. 각 회선은 하나의 네트워크 인터페이스 전용이며 수신 및 전송에 대한 통계를 포함합니다. 통계에는 수신 / 전송 된 총 바이트 수, 패킷, 삭제, 오류 등과 같은 메트릭이 포함됩니다.

cat /proc/net/dev

    Inter-|   Receive                                                |  Transmit
     face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed

    lo:    29846937   129576     0    0    0     0          0       0 29846937   129576     0    0    0     0       0          0
 wlan0:    9467393340 8027251    0    0    0     0          0       0 2559312961 5896509    0    0    0     0       0          0

또는 모든 네트워크 인터페이스 및 관련 통계를 표시 할 수 있는 netstat 명령을 시도 할 수 있습니다 .

netstat -i

Iface   MTU Met    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
lo         65536   0   130435      0      0      0   130435      0      0      0 LRU
wlan0       1492   0  8028018      0      0      0  5897361      0      0      0 BMRU

답변

ip하여 iproute2를 패키지의 일부 명령은 새로운 도구이다. link부속의 장치 / 인터페이스를 관리한다.

인터페이스를 사용하여 통계를 얻을 수 있다면 ip -s link

root:~# ip -s link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    RX: bytes  packets  errors  dropped overrun mcast
    50679705   529967   0       0       0       0
    TX: bytes  packets  errors  dropped carrier collsns
    50679705   529967   0       0       0       0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:1d:7d:aa:e3:4e brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast
    187663757  308710386 0       0       0       0
    TX: bytes  packets  errors  dropped carrier collsns
    4051284587 532435117 0       0       0       0

답변

proc을 통해 필요한 모든 정보를 얻을 수 있습니다

# cat /sys/class/net/eth0/statistics/rx_bytes
# cat /sys/class/net/eth0/statistics/rx_packets

# cat /sys/class/net/eth0/statistics/tx_packets
# cat /sys/class/net/eth0/statistics/tx_bytes

또한 iptables 및 구문 분석 출력을 사용할 수 있습니다.

수신 패킷

# iptables -L INPUT -n -v

전송 된 패킷

# iptables -L OUTPUT -n -v

서버가 게이트웨이 인 경우 FORWARD 체인 도 구문 분석해야합니다.


답변

파일을 읽고 /sys/class/net/wlp3s0/statistics/rx_bytes다른 명령을 호출하지 않고 rx_byes를 직접 가져올 vnstat수도 있습니다. 리눅스는 내가 아는 것처럼 모든 정보를 파일에 저장하므로 해당 파일을 찾고 정보를 얻는 것이 좋습니다. 관련 파일을 찾는 것은 어려운 일입니다.