GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara memverifikasi kecepatan NIC saya?

Solusi 1:

Cukup gunakan perintah seperti:ethtool eth0 untuk mendapatkan info yang dibutuhkan. Contoh:

$ sudo ethtool eth0 | grep Speed

Speed: 1000Mb/s

Solusi 2:

Dimungkinkan untuk menggunakan informasi dari kernel ketika ethtool hilang:

cat /sys/class/net/<interface>/speed

Contoh untuk antarmuka bernama eth0:

cat /sys/class/net/eth0/speed

Solusi 3:

CATATAN: halaman manual untuk mii-tool memiliki penafian ini:

This program is obsolete. For replacement check ethtool.

Gunakan mii-tool untuk melihat kecepatan jaringan yang dinegosiasikan.

Mis.

eth0: no link
eth1: negotiated 100baseTx-FD, link ok

Solusi 4:

Ada beberapa jawaban bagus di sini, saya hanya ingin menambahkan beberapa opsi lagi.

1. Saya tahu ini bukan yang Anda minta (baca terus untuk mengetahui cara lain). Namun jika Anda ingin mengetahui kinerja NIC Anda di dunia nyata , daripada seperti yang dikatakan komputer Anda, Anda dapat menggunakan iperf. Saya biasanya melakukan ini - karena Anda tidak pernah tahu. Saya membeli NIC 1Gb ​​baru-baru ini yang hanya ditransfer pada 672Mbps tetapi uplink-nya adalah 1Gb. Untung saya sudah memeriksanya.

Anda membutuhkan dua komputer.

Di komputer satu, jalankan iperf dalam mode server:

iperf -s

Di sisi lain, jalankan iperf dalam mode klien:

iperf -c 192.168.0.10

Jika Anda ingin melihat kecepatan dupleks penuh, cobalah ini:

iperf -d -c 192.168.0.10

Ganti 192.168.0.10 untuk alamat IP server

2. Pada sistem Ubuntu, /var/log/kern.log memiliki pencatatan peristiwa kernel yang terbatas. Ini akan merekam kecepatan tautan dan status NIC saat berubah. Saya yakin distribusi lain mungkin melakukan hal serupa atau dapat diatur untuk melakukannya.

$ tail -n 300 /var/log/kern.log.1 | grep slave0
Aug 28 12:54:04 haze kernel: [ 9452.766248] e1000e: slave0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx
Aug 28 12:54:41 haze NetworkManager[921]: <info>  [1472403281.8486] device (slave0): link disconnected
Aug 28 12:54:41 haze kernel: [ 9489.898476] e1000e: slave0 NIC Link is Down

3. Anda mungkin tidak akan pernah sampai sejauh ini, tetapi Anda dapat menulis kode c bahwa untuk mendapatkan kecepatan. Diuji berfungsi dan root tidak diperlukan.

https://stackoverflow.com/questions/2872058/get-link-speed-programmatically

#include <stdio.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <netinet/in.h>
#include <linux/sockios.h>
#include <linux/if.h>
#include <linux/ethtool.h>
#include <string.h>
#include <stdlib.h>
int main (int argc, char **argv)
{
    int sock;
    struct ifreq ifr;
    struct ethtool_cmd edata;
    int rc;
    sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_IP);
    if (sock < 0) {
        perror("socket");
        exit(1);
    }
    strncpy(ifr.ifr_name, "eth0", sizeof(ifr.ifr_name));
    ifr.ifr_data = &edata;
    edata.cmd = ETHTOOL_GSET;
    rc = ioctl(sock, SIOCETHTOOL, &ifr);
    if (rc < 0) {
        perror("ioctl");
        exit(1);
    }
    switch (ethtool_cmd_speed(&edata)) {
        case SPEED_10: printf("10Mbps\n"); break;
        case SPEED_100: printf("100Mbps\n"); break;
        case SPEED_1000: printf("1Gbps\n"); break;
        case SPEED_2500: printf("2.5Gbps\n"); break;
        case SPEED_10000: printf("10Gbps\n"); break;
        default: printf("Speed returned is %d\n", edata.speed);
    }
    return (0);
}

Solusi 5:

Seperti yang disebutkan Khaled, Anda harus dapat menjalankan ethtool hanya dengan antarmuka sebagai argumen. Ini akan mencantumkan kecepatan yang didukung, kecepatan yang diiklankan, kecepatan saat ini, dan banyak hal lainnya juga:

Settings for eth0:
    Supported ports: [ TP ]
    Supported link modes:   10baseT/Half 10baseT/Full 
                            100baseT/Half 100baseT/Full 
                            1000baseT/Full 
    Supports auto-negotiation: Yes
    Advertised link modes:  10baseT/Half 10baseT/Full 
                            100baseT/Half 100baseT/Full 
                            1000baseT/Full 
    Advertised auto-negotiation: Yes
    Speed: 1000Mb/s
    Duplex: Full
    Port: Twisted Pair
    PHYAD: 0
    Transceiver: internal
    Auto-negotiation: on
    Supports Wake-on: d
    Wake-on: d
    Current message level: 0x00000007 (7)
    Link detected: yes

Anda juga dapat menjalankan dmesg , dan grep untuk antarmuka Anda, tetapi ini mungkin tidak berfungsi jika sistem Anda telah berjalan lama dan buffer saat ini tidak lagi memiliki informasi itu (dalam hal ini, Anda harus grep /var/log/dmesg yang lebih lama .* file):

dmesg |grep eth0
[    2.867481] e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection
[   19.429444] ADDRCONF(NETDEV_UP): eth0: link is not ready
[   19.431555] e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
[   19.449341] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   26.972379] e1000: eth0: e1000_set_tso: TSO is Enabled
[   29.920458] eth0: no IPv6 routers present

Linux
  1. Bagaimana cara memeriksa kecepatan koneksi ssh Anda

  2. Bagaimana Menghubungkan Wsl Ke Python Yang Sudah Terinstal Di Windows?

  3. Cara memverifikasi integritas file dengan md5 checksum

  1. Cara Memverifikasi Sintaks file /etc/ssh/sshd_config

  2. Cara membuat tautan ke direktori

  3. Bagaimana memulihkan setelah menghapus tautan simbolik libc.so.6?

  1. Bagaimana cara menautkan Perpustakaan C Runtime dengan 'ld'?

  2. Bagaimana Anda bisa melihat tautan keras yang sebenarnya oleh ls?

  3. Apa perintah untuk mem-flash lampu tautan NIC?