Slurm - Linux için bant genişliği takip aracı

Slurm temel olarak ağ trafiğini görüntülemek için kullanılan bir araçtır. Ağ kullanımını görselleştirerek kullanışlı bir çıktı üretir.

Debian tabanlı sistemlerde aşağıdaki gibi kurulum yapabihlirsiniz.

apt-get install slurm

Kurulumu tamamladıktan sonra komut satırından ağ trafiğinizi takip edebilirsiniz. En basit şekliyle aşağıdaki formatta komutu kullanabilirsiniz.

slurm -i [Ağ Arayüzü]

-i parametresi hangi ağ arayüzünün kullanılacanı belirtir.

slurm -i wlan0
slurm -i eth1

Slurm

Klavye kısa yolları: Slurm etkileşim için birçok farklı tuşu destekler:

  • s split moduna geçiş yapar
  • c klasik moda geçiş yapar
  • l büyük grafik moduna geçer
  • L TX/RX ledini aktif eder
  • m kasik, büyük ve split modları arasında geçiş yapar
  • z sayaçları 0’lar
  • r ekranı yeniden çizer
  • q çıkış yapar

Aynı zamanda bu kısayol tuşlarını parametre olarak da verebilirsiniz.

slurm -i eth1 -L

Kaynak: http://lintut.com/slurm-command-line-bandwidth-monitoring-tool-for-linux/


UDP Broadcast sunucu - istemci

Sunucu:

#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

#define MY_PORT 3333

int main(int argc, char *argv[])
{

    int sockfd, new_fd;
    struct sockaddr_in my_addr;    // hedef adres
    struct sockaddr_in their_addr; // baglanti yapan adres

    int sin_size, rt;

    // gelen verinin tutuldugu buffer
    char buf[32];

    // islem yapmak icin gerekli dosya gosterici
    sockfd = socket(AF_INET, SOCK_DGRAM, 0);

    sin_size = sizeof(struct sockaddr_in);

    // adres ile ilgili ayarlar
    my_addr.sin_family      = AF_INET;
    my_addr.sin_port        = htons(MY_PORT); // kullanilacak port
    my_addr.sin_addr.s_addr = INADDR_ANY;     // mevcut ip adresi
    memset(&(my_addr.sin_zero), 0, 8); // geri kalani 0la

    // socket ile dosyayi iliskilendir
    bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr));

    while ( 1 ) {
        rt = recvfrom (sockfd, buf, 12, 0, (struct sockaddr *)&their_addr, &sin_size);
        if (rt > 0) {
            printf ("recv: %s\n", buf);
        } else if (rt < 0) {
            printf("Baglanti koptu\n");
            break;
        }
    }

    close(sockfd);
    return 0;
}

İstemci:

#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

#define DEST_IP   "255.255.255.255"
#define DEST_PORT 3333

int main(int argc, char *argv[])
{

    int sockfd, new_fd;
    struct sockaddr_in dest_addr; // hedef adres

    int sin_size, rt;
    sin_size = sizeof(struct sockaddr_in);

    // islem yapmak icin gerekli dosya gosterici
    sockfd = socket(AF_INET, SOCK_DGRAM, 0);

    // adres ile ilgili ayarlar
    dest_addr.sin_family      = AF_INET;
    dest_addr.sin_port        = htons(DEST_PORT);
    dest_addr.sin_addr.s_addr = inet_addr(DEST_IP);
    memset(&(dest_addr.sin_zero), 0, 8); // geri kalani 0 la

    // Broadcast icin gerekli yetkiyi al
    int flag = 1;
    if (setsockopt (sockfd, SOL_SOCKET, SO_BROADCAST, &flag, sizeof(flag)) < 0)
        perror("setsockopt");

    // mesaji gonder
    rt = sendto (sockfd, "slm asl plz", 12, 0, (const struct sockaddr *)&dest_addr, sin_size);
    if ( rt < 0 )
        perror("Hata: ");

    // socketi kapat
    close(sockfd);

    return 0;
}

Pardus ile Eduroam ağına bağlanma

Eduroam Pardusun ağ yöneticisi gayet şık bir arayüze sahip, fakat bize Eduroam ağına bağlanma özelliği sunmuyor.
Ancak Pardus kurulumu ile birlikte gelen 2 araç bizim bu ağa bağlanmamız için yeterli. Bu araçlar wpa_supplicant ve dhcpcd. Wpa_supplicant ağda kimlik denetimini sağlamak için, dhcpcd ise ağdan ip almamız için gerekli.

Öncelikle wpa_supplicant için ayar dosyası oluşturmamız gerekiyor.

network={
        ssid="eduroam"
        key_mgmt=WPA-EAP
        pairwise=TKIP
        group=TKIP
        eap=TTLS
        phase2="auth=PAP"
        anonymous_identity="anonymous@ogr.deu.edu.tr"
        identity="ogrencinumarasi@ogr.deu.edu.tr"
        password="sifre"
}

Bu ayarlar Dokuz Eylül Üniversitesi için. Kendi okulunuza göre düzenlemeniz gerekiyor. Sadece ogr.deu.edu.tr adresi yerine kendi okulunuzun adresini yazmalısınız.

Bu dosyayı /etc/wpa_supplicant.con adıyla kaydediyoruz.

Sıra geldi wpa_supplicantı çalıştırmaya.

wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant.conf

-D parametresi hangi sürücüyü kullanacağımızı belirtiyor. Wpa_supplicantın man dosyalarına bakarak kendinize uygun bir sürücü seçebilirsiniz.
-i hangi arayüzü kullanacağınızı belirtiyor. Genellikle wlan0 dır. iwconfig komutunun çıktısı size kablosuz ağ kartlarını gösterecektir.
-c ile ayar dosyamızın yerini belirtiyoruz.

Eğer bu komut başarılı olursa artık ip alabiliriz.

dhcpcd wlan0

Eğer bu komutta başarılı olduysa artık internete bağlanabilirsiniz hayırlı olsun :)

Bu işlemi kolaylaştırmak için pem adında bi script yazdım.

git clone git://github.com/askin/pem.git

Bu komutla pem’e ulaşabilirsiniz.
Bu aracı daha fazla geliştirecektim fakat ağ yöneticisiyle bu işleri nasıl yapabileceğimi öğrendim. Bugün oturup biraz network-managerın kodlarıyla uğraştım. Sanırım pazartesi günü bu işi ağ yöneticisiyle kolayca yapılabilecek bir hale getirebilirim. Şimdilik en güzel yöntem bu gibi :)

Ayrıca sevgili dostum Mete bu işin wicd kullanarak nasıl yapıldığını daha önce yazmış buradan o yazıya ulaşabilirsiniz.