Android

Paano suriin ang pakikinig ng mga port sa linux (ginagamit ang mga port)

Arduino sketch can not see serial ports in linux fixed

Arduino sketch can not see serial ports in linux fixed

Talaan ng mga Nilalaman:

Anonim

Kapag ang pag-aayos ng koneksyon sa network o mga isyu na tiyak na aplikasyon ay isa sa mga unang bagay upang suriin ang dapat na kung ano ang aktwal na ginagamit ng mga port sa iyong system at kung aling application ang nakikinig sa isang tiyak na port.

Ipinapaliwanag ng artikulong ito kung paano malalaman kung aling mga serbisyo ang nakikinig sa kung aling mga port gamit ang netstat , ss at lsof utos. Ang mga tagubilin ay naaangkop para sa lahat ng mga operating system na batay sa Linux at Unix tulad ng macOS.

Ano ang Pakikinig Port

Ang network port ay kinilala sa pamamagitan ng numero nito, ang nauugnay na IP address, at ang uri ng protocol ng komunikasyon tulad ng TCP o UDP.

Ang nakikinig na port ay isang network port kung saan nakikinig ang isang application o proseso, na kumikilos bilang isang punto ng komunikasyon.

Ang bawat daungan ng pakikinig ay maaaring buksan o sarado (mai-filter) gamit ang isang firewall. Sa pangkalahatang mga term, ang isang bukas na port ay isang network port na tumatanggap ng mga papasok na packet mula sa mga malalayong lokasyon.

Hindi ka maaaring magkaroon ng dalawang serbisyo na nakikinig sa parehong port sa parehong IP address.

Halimbawa, kung nagpapatakbo ka ng isang web server ng Apache na nakikinig sa mga port ng 80 at 443 at sinusubukan mong i-install ang Nginx mamaya ay mabibigo upang magsimula dahil ang mga port ng HTTP at HTTPS ay ginagamit na.

Suriin ang Pakikinig ng mga Ports na may netstat

netstat ay isang tool na line-line na maaaring magbigay ng impormasyon tungkol sa mga koneksyon sa network.

Upang mailista ang lahat ng mga TCP o UDP port na pinapakinggan, kasama ang mga serbisyo gamit ang mga port at ang katayuan ng socket gamitin ang sumusunod na utos:

sudo netstat -tunlp

Ang mga pagpipilian na ginamit sa utos na ito ay may mga sumusunod na kahulugan:

  • -t - Ipakita ang mga port ng TCP. -u - Ipakita ang mga port ng UDP. -n - Ipakita ang mga numerong address sa halip na malutas ang mga host. -l - Ipakita lamang ang mga port ng pakikinig. -p - Ipakita ang PID at pangalan ng proseso ng nakikinig. Ang impormasyong ito ay ipinapakita lamang kung nagpapatakbo ka ng utos bilang ugat o sudo user.

Ang output ay magiging hitsura ng isang bagay tulad nito:

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 445/sshd tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 929/master tcp6 0 0:::3306:::* LISTEN 534/mysqld tcp6 0 0:::80:::* LISTEN 515/apache2 tcp6 0 0:::22:::* LISTEN 445/sshd tcp6 0 0:::25:::* LISTEN 929/master tcp6 0 0:::33060:::* LISTEN 534/mysqld udp 0 0 0.0.0.0:68 0.0.0.0:* 966/dhclient

Ang mga mahalagang haligi sa aming kaso ay:

  • Proto - Ang protocol na ginagamit ng socket. Local Address - Ang IP Address at numero ng port kung saan pinapakinggan ang proseso. PID/Program name - Ang PID at ang pangalan ng proseso.

sudo netstat -tnlp | grep:22

Ang output ay nagpapakita na sa machine port 22 na ito ay ginagamit ng SSH server:

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 445/sshd tcp6 0 0:::22:::* LISTEN 445/sshd

Kung walang laman ang output nangangahulugan ito na walang nakikinig sa port.

Maaari mo ring i-filter ang listahan batay sa pamantayan, halimbawa, PID, protocol, estado, at iba pa.

netstat ay hindi na ginagamit at pinalitan ng ss at ip , ngunit ito pa rin ang pinaka ginagamit na mga utos upang suriin ang mga koneksyon sa network.

Suriin ang Pakikinig ng Mga Ports na may ss

ss ay bagong netstat . Kulang ito ng ilan sa mga tampok na netstat ngunit inilalantad ang mas maraming mga estado ng TCP at bahagyang mas mabilis ito. Ang mga pagpipilian sa utos ay halos pareho sa parehong kaya ang paglipat mula sa netstat hanggang ss ay hindi mahirap.

Upang makakuha ng isang listahan ng lahat ng mga ports na nakikinig sa mga ss nais mong i-type:

sudo ss -tunlp

Ang output ay halos kapareho ng isang iniulat ng netstat :

State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd", pid=445, fd=3)) LISTEN 0 100 0.0.0.0:25 0.0.0.0:* users:(("master", pid=929, fd=13)) LISTEN 0 128 *:3306 *:* users:(("mysqld", pid=534, fd=30)) LISTEN 0 128 *:80 *:* users:(("apache2", pid=765, fd=4), ("apache2", pid=764, fd=4), ("apache2", pid=515, fd=4)) LISTEN 0 128:22:* users:(("sshd", pid=445, fd=4)) LISTEN 0 100:25:* users:(("master", pid=929, fd=14)) LISTEN 0 70 *:33060 *:* users:(("mysqld", pid=534, fd=33))

Suriin ang Pakikinig ng Mga Ports na may lsof

lsof ay isang malakas na utos na linya ng utos na nagbibigay ng impormasyon tungkol sa mga file na binuksan ng mga proseso.

Sa Linux, ang lahat ay isang file. Maaari kang mag-isip ng isang socket bilang isang file na nagsusulat sa network.

Upang makakuha ng isang listahan ng lahat ng pakikinig na mga port ng TCP na may uri ng lsof :

sudo lsof -nP -iTCP -sTCP:LISTEN

Ang mga pagpipilian na ginamit ay ang mga sumusunod:

  • -n - Huwag i-convert ang mga numero ng port sa mga pangalan ng port. -p - Huwag malutas ang mga hostnames, ipakita ang mga numero ng address. -iTCP -sTCP:LISTEN - Ipakita lamang ang mga file ng network na may estado ng TCP na LISTEN.

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 445 root 3u IPv4 16434 0t0 TCP *:22 (LISTEN) sshd 445 root 4u IPv6 16445 0t0 TCP *:22 (LISTEN) apache2 515 root 4u IPv6 16590 0t0 TCP *:80 (LISTEN) mysqld 534 mysql 30u IPv6 17636 0t0 TCP *:3306 (LISTEN) mysqld 534 mysql 33u IPv6 19973 0t0 TCP *:33060 (LISTEN) apache2 764 www-data 4u IPv6 16590 0t0 TCP *:80 (LISTEN) apache2 765 www-data 4u IPv6 16590 0t0 TCP *:80 (LISTEN) master 929 root 13u IPv4 19637 0t0 TCP *:25 (LISTEN) master 929 root 14u IPv6 19638 0t0 TCP *:25 (LISTEN)

Karamihan sa mga pangalan ng mga haligi ng output ay paliwanag sa sarili:

  • COMMAND , PID , USER - Ang pangalan, pid at gumagamit ay tumatakbo sa programa na nauugnay sa port. NAME - Ang numero ng port.

Upang malaman kung anong proseso ang nakikinig sa isang partikular na daungan, halimbawa, port 3306 gagamitin mo:

sudo lsof -nP -iTCP:3306 -sTCP:LISTEN

Ang output ay nagpapakita na ang port 3306 ay ginagamit ng MySQL server:

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 534 mysql 30u IPv6 17636 0t0 TCP *:3306 (LISTEN)

Para sa karagdagang impormasyon bisitahin ang pahina ng tao ng lsof at basahin ang tungkol sa lahat ng iba pang makapangyarihang mga pagpipilian ng tool na ito.

Konklusyon

Ipinakita namin sa iyo ang maraming mga utos na maaari mong magamit upang suriin kung ano ang ginagamit ng mga port sa iyong system, at kung paano mahanap kung anong proseso ang nakikinig sa isang tukoy na port.

terminal