Wireshark

Un ghid pentru interfața liniei de comandă Wireshark „tshark”

Un ghid pentru interfața liniei de comandă Wireshark „tshark”
În tutorialele anterioare pentru Wireshark, am tratat subiecte de nivel fundamental până la nivel avansat. În acest articol, vom înțelege și vom acoperi o interfață de linie de comandă pentru Wireshark, i.e., tshark. Versiunea terminală a Wireshark acceptă opțiuni similare și este foarte utilă atunci când o interfață grafică de utilizator (GUI) nu este disponibilă.

Chiar dacă o interfață grafică cu utilizatorul este, teoretic, mult mai ușor de utilizat, nu toate mediile o acceptă, în special mediile server cu doar opțiuni din linia de comandă. Prin urmare, la un moment dat, ca administrator de rețea sau ca inginer de securitate, va trebui să utilizați o interfață de linie de comandă. Este important de reținut că tshark este uneori folosit ca înlocuitor pentru tcpdump. Chiar dacă ambele instrumente sunt aproape echivalente în ceea ce privește funcționalitatea de captare a traficului, tshark este mult mai puternic.

Cel mai bun lucru pe care îl puteți face este să utilizați tshark pentru a configura un port în serverul dvs. care transmite informații către sistemul dvs., astfel încât să puteți capta trafic pentru analiză utilizând o interfață grafică. Cu toate acestea, deocamdată vom afla cum funcționează, care sunt atributele sale și cum îl puteți utiliza în funcție de capacitățile sale.

Tastați următoarea comandă pentru a instala tshark în Ubuntu / Debian folosind apt-get:

[e-mail protejat]: ~ $ sudo apt-get install tshark -y

Acum tastați tshark -help pentru a enumera toate argumentele posibile cu steagurile respective pe care le putem transmite unei comenzi tshark.

[protejat prin e-mail]: ~ $ tshark --help | cap -20
TShark (Wireshark) 2.6.10 (Git v2.6.10 ambalate ca 2.6.10-1 ~ ubuntu18.04.0)
Descărcați și analizați traficul de rețea.
Vezi https: // www.wireshark.org pentru mai multe informații.
Utilizare: tshark [opțiuni] ..
Interfață de captură:
-eu numele sau idx-ul interfeței (def: primul non-loopback)
-f filtru de pachete în sintaxa filtrului libpcap
-s lungimea instantaneului pachetului (def: maxim adecvat)
-nu capturați în modul promiscuu
-Captur în modul monitor, dacă este disponibil
-B dimensiunea bufferului nucleului (def: 2MB)
-y tip de strat de legătură (def: primul adecvat)
--tip-timbru metoda timestamp pentru interfață
-D imprimați lista interfețelor și ieșiți
-L tipărește lista tipurilor de link-uri de iface și exit
--list-time-stamp-types tipărește lista tipurilor de timestamp pentru iface și exit
Condiții de oprire a capturii:

Puteți observa o listă cu toate opțiunile disponibile. În acest articol, vom acoperi în detaliu majoritatea argumentelor și veți înțelege puterea acestei versiuni Wireshark orientate către terminal.

Selectarea interfeței de rețea:

Pentru a efectua captarea și analiza live în acest utilitar, trebuie mai întâi să ne dăm seama de interfața noastră de lucru. Tip tshark -D și tshark va lista toate interfețele disponibile.

[e-mail protejat]: ~ $ tshark -D
1. enp0s3
2. orice
3. lo (Loopback)
4. nflog
5. nfqueue
6. usbmon1
7. ciscodump (captare la distanță Cisco)
8. randpkt (Generator de pachete aleatorii)
9. sshdump (captură de la distanță SSH)
10. udpdump (captare la distanță UDP Listener)

Rețineți că nu toate interfețele listate vor funcționa. Tip ifconfig pentru a găsi interfețe de lucru pe sistemul dvs. În cazul meu, este enp0s3.

Captură trafic:

Pentru a începe procesul de captare live, vom folosi tshark comanda cu „-eu”Opțiune pentru a începe procesul de captare din interfața de lucru.

[email protected]: ~ $ tshark -i enp0s3

Utilizare Ctrl + C pentru a opri captura live. În comanda de mai sus, am transferat traficul capturat către comanda Linux cap pentru a afișa primele câteva pachete capturate. Sau puteți utiliza și „-c „Sintaxă pentru a surprinde„n ” numărul de pachete.

[e-mail protejat]: ~ $ tshark -i enp0s3 -c 5

Dacă intri doar tshark, în mod implicit, nu va începe să capteze trafic pe toate interfețele disponibile și nici nu va asculta interfața de lucru. În schimb, va captura pachete pe prima interfață listată.

De asemenea, puteți utiliza următoarea comandă pentru a verifica mai multe interfețe:

[email protected]: ~ $ tshark -i enp0s3 -i usbmon1 -i lo

Între timp, un alt mod de a captura traficul în direct este să folosiți numărul alături de interfețele listate.

[email protected]: ~ $ tshark -i interface_number

Cu toate acestea, în prezența mai multor interfețe, este greu să țineți evidența numerelor listate.

Filtru de captare:

Filtrele de captură reduc semnificativ dimensiunea fișierului capturat. Tshark folosește sintaxa Berkeley Packet Filter -f”, Care este folosit și de tcpdump. Vom folosi opțiunea „-f” pentru a captura pachete doar din porturile 80 sau 53 și vom folosi „-c” pentru a afișa doar primele 10 pachete.

[email protected]: ~ $ tshark -i enp0s3 -f "port 80 sau port 53" -c 10

Salvarea traficului capturat într-un fișier:

Elementul cheie de reținut în captura de ecran de mai sus este că informațiile afișate nu sunt salvate, prin urmare sunt mai puțin utile. Folosim argumentul „-w”Pentru a salva traficul de rețea capturat în test_captură.pcap în / tmp pliant.

[e-mail protejat]: ~ $ tshark -i enp0s3 -w / tmp / test_capture.pcap

Întrucât, .pcap este extensia de tip fișier Wireshark. Salvând fișierul, puteți revizui și analiza mai târziu traficul dintr-o mașină cu Wireshark GUI.

Este o practică bună să salvați fișierul în /tmp deoarece acest folder nu necesită privilegii de execuție. Dacă îl salvați într-un alt folder, chiar dacă rulați tshark cu privilegii de root, programul va refuza permisiunea din motive de securitate.

Să săpăm în toate modalitățile posibile prin care poți:

  • aplicați limite pentru captarea datelor, precum ieșirea tshark sau oprirea automată a procesului de captare și
  • scoateți fișierele.

Parametru de oprire automată:

Puteți utiliza „-A”Parametru pentru a încorpora steaguri disponibile, cum ar fi dimensiunea fișierelor de durată și fișierele. În următoarea comandă, folosim parametrul de oprire automată cu durată pentru a opri procesul în 120 de secunde.

[e-mail protejat]: ~ $ tshark -i enp0s3 -a durata: 120 -w / tmp / test_capture.pcap

În mod similar, dacă nu aveți nevoie ca fișierele dvs. să fie foarte mari, mărime fișier este un steag perfect pentru a opri procesul după anumite limite ale KB.

[e-mail protejat]: ~ $ tshark -i enp0s3 -a dimensiune fișier: 50 -w / tmp / test_capture.pcap

Cel mai important, fișiere flag vă permite să opriți procesul de captare după mai multe fișiere. Dar acest lucru poate fi posibil numai după crearea mai multor fișiere, ceea ce necesită executarea unui alt parametru util, ieșire de captură.

Captură parametru de ieșire:

Captură de ieșire, cunoscut și ca argument de tip ringbuffer „-b„, Vine împreună cu aceleași steaguri ca și oprirea automată. Cu toate acestea, utilizarea / ieșirea este puțin diferită, i.e., steagurile durată și mărime fișier, deoarece vă permite să comutați sau să salvați pachetele într-un alt fișier după ce ați atins o limită de timp specificată în secunde sau dimensiunea fișierului.

Comanda de mai jos arată că capturăm traficul prin interfața noastră de rețea enp0s3, și capturați traficul utilizând filtrul de captare „-f”Pentru tcp și dns. Folosim opțiunea ringbuffer „-b” cu un mărime fișier pavilion pentru a salva fiecare fișier de dimensiune 15 Kb, și, de asemenea, utilizați argumentul de oprire automată pentru a specifica numărul de fișiere care utilizează fișiere opțiune astfel încât să oprească procesul de captare după generarea a trei fișiere.

[e-mail protejat]: ~ $ tshark -i enp0s3 -f "port 53 sau port 21" -b dimensiune fișier: 15 -a fișiere: 2 -w / tmp / test_capture.pcap

Mi-am împărțit terminalul în două ecrane pentru a monitoriza activ crearea a trei .fișiere pcap.

Du-te la / tmp folder și utilizați următoarea comandă în al doilea terminal pentru a monitoriza actualizările după fiecare secundă.

[email protected]: ~ $ watch -n 1 "ls -lt"

Acum, nu este nevoie să memorați toate aceste steaguri. În schimb, tastați o comandă tshark -i enp0s3 -f „port 53 sau port 21” -b dimensiune fișier: 15 -a în terminal și apăsați Tab. Lista tuturor steagurilor disponibile va fi disponibilă pe ecran.

[protejat prin e-mail]: ~ $ tshark -i enp0s3 -f "port 53 sau port 21" -b dimensiune fișier: 15 -a
durata: fișiere: dimensiune fișier:
[e-mail protejat]: ~ $ tshark -i enp0s3 -f "port 53 sau port 21" -b dimensiune fișier: 15 -a

Citind .Fișiere pcap:

Cel mai important, puteți utiliza un „-r”Parametru pentru a citi test_capture.fișiere pcap și conectați-l la cap comanda.

[e-mail protejat]: ~ $ tshark -r / tmp / test_capture.pcap | cap

Informațiile afișate în fișierul de ieșire pot fi puțin copleșitoare. Pentru a evita detalii inutile și pentru a înțelege mai bine orice adresă IP de destinație specifică, folosim -r opțiunea de a citi fișierul capturat de pachete și de a utiliza un fișier ip.addr filtru pentru a redirecționa ieșirea către un fișier nou cu „-w" opțiune. Acest lucru ne va permite să examinăm fișierul și să ne rafinăm analiza aplicând filtre suplimentare.

[e-mail protejat]: ~ $ tshark -r / tmp / test_capture.pcap -w / tmp / redirected_file.pcap ip.dst == 216.58.209.142
[e-mail protejat]: ~ $ tshark -r / tmp / redirected_file.pcap | cap
1 0.000000000 10.0.2.15 → 216.58.209.142 TLSv1.2 370 Date aplicație
2 0.000168147 10.0.2.15 → 216.58.209.142 TLSv1.2 669 Date aplicație
3 0.011336222 10.0.2.15 → 216.58.209.142 TLSv1.2 5786 Date aplicație
4 0.016413181 10.0.2.15 → 216.58.209.142 TLSv1.2 1093 Date aplicație
5 0.016571741 10.0.2.15 → 216.58.209.142 TLSv1.2 403 Date aplicație
6 0.016658088 10.0.2.15 → 216.58.209.142 TCP 7354 [Segment TCP al unui PDU reasamblat]
7 0.016738530 10.0.2.15 → 216.58.209.142 TLSv1.2 948 Date aplicație
8 0.023006863 10.0.2.15 → 216.58.209.142 TLSv1.2 233 Date despre aplicație
9 0.023152548 10.0.2.15 → 216.58.209.142 TLSv1.2 669 Date aplicație
10 0.023324835 10.0.2.15 → 216.58.209.142 TLSv1.2 3582 Date aplicație

Selectarea câmpurilor de ieșit:

Comenzile de mai sus generează un rezumat al fiecărui pachet care include diverse câmpuri de antet. Tshark vă permite, de asemenea, să vizualizați câmpurile specificate. Pentru a specifica un câmp, folosim „-Câmpul T”Și extrageți câmpurile conform alegerii noastre.

După "-Câmpul T”, Folosim opțiunea„ -e ”pentru a imprima câmpurile / filtrele specificate. Aici putem folosi filtrele de afișare Wireshark.

[e-mail protejat]: ~ $ tshark -r / tmp / test_capture.pcap -T field -e frame.număr -e ip.src -e ip.dst | cap
1 10.0.2.15 216.58.209.142
2 10.0.2.15 216.58.209.142
3 216.58.209.142 10.0.2.15
4 216.58.209.142 10.0.2.15
5 10.0.2.15 216.58.209.142
6 216.58.209.142 10.0.2.15
7 216.58.209.142 10.0.2.15
8 216.58.209.142 10.0.2.15
9 216.58.209.142 10.0.2.15
10 10.0.2.15 115.186.188.3

Capturați date de strângere de mână criptate:

Până acum, am învățat să salvăm și să citim fișiere de ieșire folosind diverși parametri și filtre. Vom afla acum cum HTTPS inițializează tshark de sesiune. Site-urile web accesate prin HTTPS în loc de HTTP asigură o transmisie de date sigură sau criptată prin cablu. Pentru transmiterea sigură, o criptare de securitate a stratului de transport începe un proces de strângere de mână pentru a iniția comunicarea dintre client și server.

Să captăm și să înțelegem strângerea de mână TLS folosind tshark. Împarte terminalul în două ecrane și folosește un wget comanda pentru a extrage un fișier html din https: // www.wireshark.org.

[e-mail protejat]: ~ $ wget https: // www.wireshark.org
--2021-01-09 18: 45: 14-- https: // www.wireshark.org /
Conectarea la www.wireshark.org (www.wireshark.org) | 104.26.10.240 |: 443 ... conectat.
Cerere HTTP trimisă, în așteptarea răspunsului ... 206 Conținut parțial
Lungime: 46892 (46K), 33272 (32K) rămase [text / html]
Se salvează în: 'index.html '
index.html 100% [++++++++++++++ ================================= ==>] 45.79K 154 KB / s în 0.2s
2021-01-09 18:43:27 (154 KB / s) - 'index.html 'salvat [46892/46892]

Într-un alt ecran, vom folosi tshark pentru a captura primele 11 pachete folosind „-c”Parametru. În timpul efectuării analizei, marcajele de timp sunt importante pentru reconstituirea evenimentelor, de aceea folosim „-pic”, Într-un mod în care tshark adaugă marcaj de timp alături de fiecare pachet capturat. În cele din urmă, folosim comanda gazdă pentru a captura pachete de la gazda partajată adresa IP.

Această strângere de mână este destul de similară cu strângerea de mână TCP. De îndată ce strângerea de mână cu trei căi TCP se încheie în primele trei pachete, pachetele patru până la al nouălea urmează un ritual de strângere de mână oarecum similar și includ șiruri TLS pentru a asigura comunicarea criptată între ambele părți.

[e-mail protejat]: ~ $ tshark -i enp0s3 -c 11 -t gazdă de anunțuri 104.26.10.240
Captură pe „enp0s3”
1 2021-01-09 18:45:14.174524575 10.0.2.15 → 104.26.10.240 TCP 74 48512 → 443 [SYN] Seq = 0 Win = 64240 Len = 0 MSS = 1460 SACK_PERM = 1 TSval = 2488996311 TSecr = 0 WS = 128
2 2021-01-09 18:45:14.279972105 104.26.10.240 → 10.0.2.15 TCP 60 443 → 48512 [SYN, ACK] Seq = 0 Ack = 1 Win = 65535 Len = 0 MSS = 1460
3 2021-01-09 18:45:14.280020681 10.0.2.15 → 104.26.10.240 TCP 54 48512 → 443 [ACK] Seq = 1 Ack = 1 Win = 64240 Len = 0
4 2021-01-09 18:45:14.280593287 10.0.2.15 → 104.26.10.240 TLSv1 373 Client Bună ziua
5 2021-01-09 18:45:14.281007512 104.26.10.240 → 10.0.2.15 TCP 60 443 → 48512 [ACK] Seq = 1 Ack = 320 Win = 65535 Len = 0
6 2021-01-09 18:45:14.390272461 104.26.10.240 → 10.0.2.15 TLSv1.3 1466 Server Hello, Change Cipher Spec
7 2021-01-09 18:45:14.390303914 10.0.2.15 → 104.26.10.240 TCP 54 48512 → 443 [ACK] Seq = 320 Ack = 1413 Win = 63540 Len = 0
8 2021-01-09 18:45:14.392680614 104.26.10.240 → 10.0.2.15 TLSv1.3 1160 Date aplicație
9 2021-01-09 18:45:14.392703439 10.0.2.15 → 104.26.10.240 TCP 54 48512 → 443 [ACK] Seq = 320 Ack = 2519 Win = 63540 Len = 0
10 2021-01-09 18:45:14.394218934 10.0.2.15 → 104.26.10.240 TLSv1.3 134 Schimbați specificația cifrului, datele aplicației
11 2021-01-09 18:45:14.394614735 104.26.10.240 → 10.0.2.15 TCP 60 443 → 48512 [ACK] Seq = 2519 Ack = 400 Win = 65535 Len = 0
11 pachete capturate

Vizualizarea întregului pachet:

Singurul dezavantaj al unui utilitar din linia de comandă este că nu are o interfață grafică, deoarece devine foarte la îndemână atunci când trebuie să căutați mult trafic pe internet și oferă, de asemenea, un panou de pachete care afișează toate detaliile pachetului într-un instantaneu. Cu toate acestea, este încă posibil să inspectați pachetul și să aruncați toate informațiile despre pachete afișate în GUI Packet Panel.

Pentru a inspecta un pachet întreg, folosim o comandă ping cu opțiunea „-c” pentru a captura un singur pachet.

[e-mail protejat]: ~ $ ping -c 1 104.26.10.240
PING 104.26.10.240 (104.26.10.240) 56 (84) octeți de date.
64 octeți din 104.26.10.240: icmp_seq = 1 ttl = 55 timp = 105 ms
--- 104.26.10.240 statistici ping ---
1 pachete transmise, 1 primite, 0% pierdere de pachete, timp 0ms
rtt min / avg / max / mdev = 105.095/105.095/105.095/0.000 ms

Într-o altă fereastră, utilizați comanda tshark cu un steag suplimentar pentru a afișa întregul detaliu al pachetului. Puteți observa diverse secțiuni, afișând detalii Frames, Ethernet II, IPV și ICMP.

[protejat prin e-mail]: ~ $ tshark -i enp0s3 -c 1 -V gazdă 104.26.10.240
Cadru 1: 98 octeți pe fir (784 biți), 98 octeți capturați (784 biți) pe interfața 0
ID interfață: 0 (enp0s3)
Nume interfață: enp0s3
Tip de încapsulare: Ethernet (1)
Ora sosirii: 9 ianuarie 2021 21:23:39.167581606 PKT
[Timp pentru acest pachet: 0.000000000 secunde]
Timpul epocii: 1610209419.167581606 secunde
[Delta timpului din cadrul capturat anterior: 0.000000000 secunde]
[Delta de timp față de cadrul afișat anterior: 0.000000000 secunde]
[Timp de la referință sau primul cadru: 0.000000000 secunde]
Număr cadru: 1
Lungime cadru: 98 octeți (784 biți)
Lungime captură: 98 octeți (784 biți)
[Cadrul este marcat: False]
[Cadrul este ignorat: fals]
[Protocoale în cadru: eth: ethertype: ip: icmp: data]
Ethernet II, Src: PcsCompu_17: fc: a6 (08: 00: 27: 17: fc: a6), Dst: RealtekU_12: 35: 02 (52: 54: 00: 12: 35: 02)
Destinație: RealtekU_12: 35: 02 (52: 54: 00: 12: 35: 02)
Adresa: RealtekU_12: 35: 02 (52: 54: 00: 12: 35: 02)
… 1… = bit LG: adresa administrată local (aceasta NU este implicită din fabrică)
… 0… = bit IG: adresă individuală (unicast)
Sursă: PcsCompu_17: fc: a6 (08: 00: 27: 17: fc: a6)
Adresa: PcsCompu_17: fc: a6 (08: 00: 27: 17: fc: a6)
ID interfață: 0 (enp0s3)
Nume interfață: enp0s3
Tip de încapsulare: Ethernet (1)
Ora sosirii: 9 ianuarie 2021 21:23:39.167581606 PKT
[Timp pentru acest pachet: 0.000000000 secunde]
Timpul epocii: 1610209419.167581606 secunde
[Delta timpului din cadrul capturat anterior: 0.000000000 secunde]
[Delta de timp față de cadrul afișat anterior: 0.000000000 secunde]
[Timp de la referință sau primul cadru: 0.000000000 secunde]
Număr cadru: 1
Lungime cadru: 98 octeți (784 biți)
Lungime captură: 98 octeți (784 biți)
[Cadrul este marcat: False]
[Cadrul este ignorat: fals]
[Protocoale în cadru: eth: ethertype: ip: icmp: data]
Ethernet II, Src: PcsCompu_17: fc: a6 (08: 00: 27: 17: fc: a6), Dst: RealtekU_12: 35: 02 (52: 54: 00: 12: 35: 02)
Destinație: RealtekU_12: 35: 02 (52: 54: 00: 12: 35: 02)
Adresa: RealtekU_12: 35: 02 (52: 54: 00: 12: 35: 02)
... 1 ... = bit LG: adresa administrată local (aceasta NU este implicită din fabrică)
… 0… = bit IG: adresă individuală (unicast)
Sursa: PcsCompu_17: fc: a6 (08: 00: 27: 17: fc: a6)
Adresa: PcsCompu_17: fc: a6 (08: 00: 27: 17: fc: a6)
… 0… = bit LG: adresă unică la nivel global (implicit din fabrică)
… 0… = bit IG: adresă individuală (unicast)
Tip: IPv4 (0x0800)
Internet Protocol Versiunea 4, Src: 10.0.2.15, Dst: 104.26.10.240
0100 ... = Versiune: 4
… 0101 = Lungimea antetului: 20 octeți (5)
Câmp Servicii diferențiate: 0x00 (DSCP: CS0, ECN: Not-ECT)
0000 00 ... = Punct de cod al serviciilor diferențiate: implicit (0)
… 00 = Notificare explicită a congestiei: Nu este capabil de transport ECN (0)
Lungime totală: 84
Identificare: 0xcc96 (52374)
Steaguri: 0x4000, Nu fragmentați
0 ... = Bit rezervat: Nu este setat
.1 ... = Nu fragmentați: setați
… 0… = Mai multe fragmente: Nu este setat
… 0 0000 0000 0000 = Decalaj fragment: 0
Timp de trăit: 64
Protocol: ICMP (1)
Suma de control antet: 0xeef9 [validare dezactivată]
[Starea sumei de verificare a antetului: neconfirmat]
Sursa: 10.0.2.15
Destinație: 104.26.10.240
Protocol pentru mesaje de control pe Internet
Tipul: 8 (Echo (ping) request)
Cod: 0
Suma de verificare: 0x0cb7 [corect]
[Stare sumă de verificare: Bună]
Identificator (BE): 5038 (0x13ae)
Identificator (LE): 44563 (0xae13)
Număr secvență (BE): 1 (0x0001)
Număr secvență (LE): 256 (0x0100)
Timestamp din datele ICMP: 9 ianuarie 2021 21:23:39.000000000 PKT
[Timestamp din datele ICMP (relative): 0.167581606 secunde]
Date (48 octeți)
0000 91 8e 02 00 00 00 00 00 10 11 12 13 14 15 16 17 ..
0010 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 .. !„# $% & '
0020 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 () *+,-./ 01234567
Date: 918e020000000000101112131415161718191a1b1c1d1e1f ..
[Lungime: 48]

Concluzie:

Cel mai provocator aspect al analizei de pachete este găsirea celor mai relevante informații și ignorarea biților inutili. Chiar dacă interfețele grafice sunt ușoare, ele nu pot contribui la analiza automată a pachetelor de rețea. În acest articol, ați aflat cei mai utili parametri tshark pentru captarea, afișarea, salvarea și citirea fișierelor de trafic din rețea.

Tshark este un utilitar foarte util, care citește și scrie fișierele de captură acceptate de Wireshark. Combinația de filtre de afișare și captare contribuie foarte mult în timp ce se lucrează la cazuri de utilizare la nivel avansat. Putem valorifica capacitatea tshark de a imprima câmpuri și de a manipula date conform cerințelor noastre pentru o analiză aprofundată. Cu alte cuvinte, este capabil să facă practic tot ceea ce face Wireshark. Cel mai important, este perfect pentru adulmecarea de pachete de la distanță folosind ssh, care este un subiect pentru o altă zi.

Cele mai bune emulatoare pentru console de jocuri pentru Linux
Acest articol va enumera programele populare de emulare a consolei de jocuri disponibile pentru Linux. Emularea este un strat de compatibilitate softw...
Best Linux Distros for Gaming in 2021
The Linux operating system has come a long way from its original, simple, server-based look. This OS has immensely improved in recent years and has no...
Cum să capturați și să transmiteți în flux sesiunea de jocuri pe Linux
În trecut, jocurile erau considerate doar un hobby, dar cu timpul industria jocurilor a cunoscut o creștere imensă în ceea ce privește tehnologia și n...