මැක් ඕඑස් එක්ස් හි දී ඇති ටීසීපී වරායට සවන් දෙන්නේ කවුද?


1417

ලිනක්ස් මත, මම භාවිතා කළ හැකි netstat -pntl | grep $PORTහෝ fuser -n tcp $PORTනිශ්චිත TCP වරාය මත සවන් වන ක්රියාවලිය (PID) සොයා ගැනීමට. මැක් ඕඑස් එක්ස් හි එකම තොරතුරු ලබා ගන්නේ කෙසේද?


28
කණගාටුයි, netstat -p tcp | grep $PORTමැක් ඕඑස් එක්ස් හි නෙට්ස්ටැට් හට PID පෙන්විය නොහැකි බැවින් PID පෙන්වන්නේ නැත.
pts

13
netstat -anvමැක් ඕඑස් එක්ස් හි වරාය පෙන්වයි (මූලාශ්‍රය: විසඳුම @ සීන් හැමිලිටන් විසින්)
කර්ටිස් යාලොප්

Answers:


2097

මැකෝස් හයි සියෙරා සහ පසුව, මෙම විධානය භාවිතා කරන්න:

lsof -nP -iTCP:$PORT | grep LISTEN

හෝ IPv4 බැලීමට පමණක්:

lsof -nP -i4TCP:$PORT | grep LISTEN

පැරණි අනුවාද වල, පහත දැක්වෙන ආකාර වලින් එකක් භාවිතා කරන්න:

lsof -nP -iTCP:$PORT | grep LISTEN
lsof -nP -i:$PORT | grep LISTEN

$PORTවරාය අංකය හෝ කොමා මඟින් වෙන් කරන ලද වරාය අංක සමඟ ආදේශ කරන්න.

sudo# 1024 ට අඩු වරායන් පිළිබඳ තොරතුරු අවශ්‍ය නම් සූදානම් කරන්න (ඉඩක් අනුගමනය කරන්න ).

මෙම -nධජය IP ලිපිනයන් වෙනුවට සත්කාරක නාම ප්රදර්ශනය සඳහා වේ. මෙය විධානය වඩා වේගයෙන් ක්‍රියාත්මක කරයි, මන්ද ධාරක නාම ලබා ගැනීම සඳහා DNS සෙවීම මන්දගාමී විය හැකි බැවිනි (බොහෝ ධාරකයන් සඳහා තත්පර කිහිපයක් හෝ විනාඩියක්).

මෙම -Pධජය අමු තොට අංක, වෙනුවට වැනි නම් විසඳා ප්රදර්ශනය සඳහා http, ftpහෝ ඊට වඩා වැඩි විරල වැනි සේවා නම් dpserve, socalia.

තවත් විකල්ප සඳහා අදහස් බලන්න.

සම්පූර්ණත්වය සඳහා, නිතර නිතර එකට භාවිතා වන නිසා:

PID kill ාතනය කිරීමට:

kill -9 <PID>
# kill -9 60401

154
sudoඔබට අයිති නැති ක්‍රියාවලි බැලීමට මෙය උපසර්ගය කරන්න.
ගෝර්ඩන් ඩේවිසන්

30
සිංහයා මත, වෙනසක් සමඟ වැඩ කළේයsudo lsof -i TCP:$PORT | grep LISTEN
ධවාල්

58
කඳුකර සිංහයා මත, ඔබට අවශ්‍ය නැත grep:sudo lsof -iTCP:$PORT -sTCP:LISTEN
සියු චිං පොං-අසූකා කෙන්ජි-

16
බොහෝ සෙවීම් වලින් පසු මෙය හොඳම වේ. command ජුවම විධානය පිටපත් කිරීමට කැමති අය port PORT සත්‍ය වරාය අංකය සමඟ ප්‍රතිස්ථාපනය කළ යුතුය, නැතහොත් PORT විචල්‍යය නිර්වචනය කළ යුතුය. lsof -n -i4TCP: OR PORT
siddhusingh

2
විමර්ශනය කිරීමට වරාය 1024 ට වඩා වැඩි නම්
යමෙකුට

643

හිම දිවියා (10.6), මොජාවේ (10.14) සහ කැටලිනා (10,15) දක්වා , මැකෝස් හි සෑම අනුවාදයක්ම මෙයට සහය දක්වයි:

sudo lsof -iTCP -sTCP:LISTEN -n -P

පුද්ගලිකව මම මගේ මෙම සරල කාර්යය අවසන් කර ඇත ~/.bash_profile:

listening() {
    if [ $# -eq 0 ]; then
        sudo lsof -iTCP -sTCP:LISTEN -n -P
    elif [ $# -eq 1 ]; then
        sudo lsof -iTCP -sTCP:LISTEN -n -P | grep -i --color $1
    else
        echo "Usage: listening [pattern]"
    fi
}

එවිට listeningවිධානය මඟින් ඔබට යම් වරායක සවන් දෙන ක්‍රියාවලි ලැයිස්තුවක් ලබා දෙයිlistening smth යම් රටාවක් සඳහා මෙය ග්‍රහණය කරයි.

මෙය තිබීම, විශේෂිත ක්‍රියාවලියක් ගැන විමසීම පහසුය, උදා: listening dropboxහෝ වරාය, උදා listening 22.

lsofවරාය, ප්‍රොටෝකෝලය, ක්‍රියාවලිය යනාදිය ගැන විමසීමට විධාන වලට විශේෂිත විකල්ප කිහිපයක් ඇත. නමුත් පෞද්ගලිකව මා ඉහත ක්‍රියාකාරිත්වය වඩා පහසු බව සොයාගෙන ඇත, මන්ද මේ සියලු පහත් මට්ටමේ විකල්ප මතක තබා ගැනීමට මට අවශ්‍ය නැත. lsofතරමක් ප්‍රබල මෙවලමක් වන නමුත් අවාසනාවකට එය භාවිතා කිරීමට එතරම් පහසු නැත.


7
මෙය මගේ තිත් ලිපිගොනු තුළ සිදු වේ. මම සෑම මාස කිහිපයකට වරක් සොයන අතර සෑම විටම මෙම පිළිතුරට පැමිණේ.
danemacmillan

1
OP ඔහු පැවසූ පරිදි මෙය පිළිගත යුතු පිළිතුරක් විය යුතු යැයි මට හැඟේ -pntl. පිළිගත් පිළිතුර දුරස්ථව සමාන නොවන වරාය අංක එකක් හෝ කිහිපයක් නියම කිරීමට ඉල්ලා සිටී.
seeafish

441

ඔබට මෙයද භාවිතා කළ හැකිය:

sudo lsof -i -n -P | grep TCP

මෙය Mavericks හි ක්රියා කරයි.


3
මෙම -iවිකල්පය එය සැලකිය යුතු වේගයකින් වේ. තත්පර 0.02 එදිරිව තත්පර 2 යි. මගේ යෙදුමේ මෙය බෙහෙවින් වෙනසක් ඇති කළේය.
එරික් බොහ්ස්

එම විශේෂිත කොඩි කරන්නේ කුමක්ද -i, -n, -P. ඔවුන් හරියටම අදහස් කරන දේ මට කොතැනකවත් සොයාගත නොහැක
චැඩ් වොට්කින්ස්

sudo lsof -i -n -P | grep TCP | grep $ PORT - මම මෙම විධානය සමඟ අන්වර්ථයක්
සෑදුවා

"| Grep $ PORT" හෝ "| grep LISTEN" එකතු කිරීමට මම යෝජනා කරමි
KC Baltz

මහා! මොජාවේ ද වැඩ කරයි.
ජෙෆිල්ට් මාළු

294

යාවත්කාලීන කිරීම 2016 ජනවාරි

කිසිවෙකු යෝජනා නොකිරීම ඇත්තෙන්ම පුදුමයට කරුණකි:

lsof -i :PORT_NUMBER

අවශ්‍ය මූලික තොරතුරු ලබා ගැනීමට. උදාහරණයක් ලෙස, 1337 වරාය පරීක්ෂා කිරීම:

lsof -i :1337

තත්වයන් අනුව වෙනත් වෙනස්කම්:

sudo lsof -i :1337
lsof -i tcp:1337

PID උපුටා ගැනීම සඳහා ඔබට මෙය පහසුවෙන් ගොඩනගා ගත හැකිය. උදාහරණයක් වශයෙන්:

lsof -t -i :1337

එය මෙම විධානයට සමාන වේ (ප්‍රති result ලයක් ලෙස):

lsof -i :1337 | awk '{ print $2; }' | head -n 2 | grep -v PID

ඉක්මන් නිදර්ශනය:

රූප විස්තරය මෙහි ඇතුළත් කරන්න

සම්පූර්ණත්වය සඳහා, නිතර නිතර එකට භාවිතා වන නිසා:

PID kill ාතනය කිරීමට:

kill -9 <PID>
# kill -9 60401

හෝ එක් ලයිනර් ලෙස:

kill -9 $(lsof -t -i :1337)

2
මෙම විධානය මඟින් සවන්දෙන්නන් නොවන PID ද පෙන්වන අතර පැහැදිලිවම අසනු ලබන ප්‍රශ්න අසන්නන් සඳහා පමණි.
pts

3
ඔබට ද ධාවනය කළ හැකිය lsof -t -i :1338. -tක්‍රියාවලි හැඳුනුම්පත නැවත ලබා දෙනු ඇත, එබැවින් ඔබට අවදි වීමට / හිස එසවීමට සිදු නොවේ.
KFunk

kill -9 $(lsof -t -i :5000)එල්
කැපිටන්

මේක නියමයි. මම එය මරා දැමීමට පෙර එහි ඇති දේ දැන ගැනීමට කැමැත්තෙමි, එබැවින් (මේ මත පදනම්ව) මම මගේ bashrc වෙත එක් කළෙමි:, whatsonport() { ps -ef | grep `lsof -t -i :$1` }එසේ:⇒ whatsonport 3000 --> 501 14866 14865 0 6:07AM ttys006 0:01.73 node .
Sigfried

1
ස්තූතියි, lsof -i :PORT_NUMBERමට රැකියාවක් කළා.
marika.daboja


53

සවන් දුන්, ස්ථාපිත සහ වසා දැමූ වරායන් සඳහා

sudo lsof -n -i -P | grep TCP

LISTEN වරායන් සඳහා පමණි

sudo lsof -n -i -P | grep LISTEN

නිශ්චිත LISTEN වරායක් සඳහා, උදා: වරාය 80

sudo lsof -n -i -P | grep ':80 (LISTEN)'

නැතහොත් ඔබට සංයුක්ත සාරාංශයක් අවශ්‍ය නම් [කිසිදු සේවාවක් / යෙදුම් විස්තර කර නැත], NETSTAT වෙත යන්න. මෙහි හොඳ පැත්ත නම්, සූඩෝ අවශ්‍ය නොවේ

netstat -a -n | grep 'LISTEN '

භාවිතා කළ අයිතම පැහැදිලි කිරීම:

-n ධාරක නාමය යටපත් කරන්න

-i IPv4 සහ IPv6 ප්‍රොටෝකෝල සඳහා

-P වරාය නම් අතහරින්න

-a [over netstat] සියලුම සොකට් සඳහා

-n [නෙට්ස්ටැට් හරහා] නම් නිරාකරණය නොකරන්න, ජාල ලිපින අංක ලෙස පෙන්වන්න

මත පරීක්ෂා මහ සියෙරා 10.13.3 හා මොජාවි 10.14.3

  • අන්තිම සින්ටැක්ස් නෙට්ස්ටැට් ලිනක්ස් වලද ක්‍රියා කරයි

සවිස්තරාත්මක පැහැදිලි කිරීම් ඇත්ත වශයෙන්ම මා වැනි ආරම්භකයින් සඳහා ඉතා ප්‍රයෝජනවත් වේ. ස්තූතියි @PYK
වැන්ග්

46

OS X හි ඔබට නෙට්ස්ටැට් සඳහා -v විකල්පය භාවිතා කර සම්බන්ධිත පිඩ් ලබා දිය හැකිය.

වර්ගය:

netstat -anv | grep [.]PORT

ප්‍රතිදානය මේ වගේ වනු ඇත:

tcp46      0      0  *.8080                 *.*                    LISTEN      131072 131072   3105      0

PID යනු අවසාන තීරුවට පෙර අංකය වන අතර මෙම නඩුව සඳහා 3105 වේ


grep LISTENසවන්දෙන්නන්ට පමණක් පෙන්වීමට ඔබ එකතු කළ යුතුය.
pts

3
මට අවශ්‍ය වූයේ මෙයයි! lsofවරාය සොයාගත නොහැකි විය. නමුත් netstatඑය විවෘත බව පෙන්නුම් කළා. -vමට නැති රහස් සෝස් එක.
ආරොන් මැක්මිලින්

32

මැකෝස් හි, නෙට්ස්ටැට් සමඟ නිශ්චිත වරායක සවන් දෙන ක්‍රියාවලි හැඳුනුම්පත ලබා ගැනීමට පහසු ක්‍රමයක් මෙන්න . මෙම උදාහරණය වරාය 80 හි අන්තර්ගතයට සේවය සපයන ක්‍රියාවලියක් සොයයි:

වරාය 80 හි ධාවනය වන සේවාදායකය සොයා ගන්න

netstat -anv | egrep -w [.]80.*LISTEN

නියැදි ප්‍රතිදානය

tcp4  0 0  *.80       *.*    LISTEN      131072 131072    715      0

අවසාන තීරුවේ දෙවැන්න PID ය. ඉහත එය 715 කි කි.

විකල්ප

-a - සේවාදායකයන් භාවිතා කරන සියලුම වරායන් පෙන්වන්න

-n- අංක පෙන්වන්න, නම් බලන්න එපා. මෙය විධානය බොහෝ වේගවත් කරයි

-v ක්‍රියාවලි හැඳුනුම්පත් ලබා ගැනීම සඳහා වාචික ප්‍රතිදානය

-w- වචන සොයන්න. එසේ නොමැතිනම් විධානය මඟින් "80" පමණක් නොව 8000 සහ 8001 වරායන් සඳහා තොරතුරු ලබා දෙනු ඇත

LISTEN - තොරතුරු LISTEN මාදිලියේ, එනම් සේවාදායකයන් සඳහා පමණක් ලබා දෙන්න


2
-v ධජය එය සාදන ලදි
user9869932

18

නවතම මැකෝස් අනුවාදයේ ඔබට මෙම විධානය භාවිතා කළ හැකිය:

lsof -nP -i4TCP:$PORT | grep LISTEN

ඔබට මතක තබා ගැනීම දුෂ්කර නම් සමහර විට ඔබ a නිර්මාණය කළ යුතුය bash ශ්‍රිතයක් එය මිත්‍රශීලී නමකින් අපනයනය

vi ~/.bash_profile

ඉන්පසු එම ගොනුවට පහත පේළි එකතු කර සුරකින්න.

function listening_on() {
    lsof -nP -i4TCP:"$1" | grep LISTEN
}

දැන් ඔබට listening_on 80ඔබේ පර්යන්තය ටයිප් කර වරායේ සවන් දෙන්නේ කුමන ක්‍රියාවලියදැයි බලන්න 80.


13

හිම දිවියා (OS X 10.6.8) මත, 'man lsof' ධාවනය කරයි:

lsof -i 4 -a

(සත්‍ය අත්පොත 'lsof -i 4 -a -p 1234' වේ)

පෙර පිළිතුරු හිම දිවියා මත ක්‍රියා කළේ නැත, නමුත් පිළිතුරෙන් 'lsof' භාවිතය pts මගින් දකින තුරු මම 'netstat -nlp' භාවිතා කිරීමට උත්සාහ කළෙමි.


10

මම ලිනක්ස් කොල්ලෙක්. ලිනක්ස් netstat -ltpnවලදී එම අක්ෂර සමඟ ඕනෑම සංයෝජනයක් සමඟ එය අතිශයින්ම පහසුය . නමුත් මැක් ඕඑස් එක්ස් netstat -an | grep LISTENහි වඩාත්ම මානුෂික ය. අනෙක් ඒවා දෝශ නිරාකරණයේදී මතක තබා ගැනීම ඉතා කැත සහ ඉතා අපහසුය.


2
ප්‍රශ්නය නිශ්චිත TCP වරායක් සඳහා පැහැදිලිවම ඉල්ලා ඇති අතර, ඔබේ විධානයන් සියලු වරායන්හි සවන්දෙන්නන්ට පෙන්වයි.
pts

7
lsof -n -i | awk '{ print $1,$9; }' | sort -u

කවුද කරන්නේ කුමක්ද යන්න මෙයින් පෙන්නුම් කෙරේ. ධාරක නාම බැලීමට -n ඉවත් කරන්න (ටිකක් මන්දගාමී).


1
ඔබේ පිළිතුර නරක නැත, නමුත් එය වසර ගණනාවකට පෙර සිට ඉහළ මට්ටමේ පිළිතුරු කිහිපයක් සහ පිළිගත් පිළිතුරක් සහිත ප්‍රශ්නයකි. අනාගතයේදී, වඩාත් මෑත ප්‍රශ්න වලට අවධානය යොමු කිරීමට උත්සාහ කරන්න, විශේෂයෙන් තවමත් පිළිතුරු නොලැබුණු ප්‍රශ්න.

මෙම විධානය TCP නොවන වරායන් මෙන්ම අසන්නන් නොවන අයද පෙන්වයිද? ප්‍රශ්නය පැහැදිලිවම අසන්නේ TCP වරායන්හි පමණක් සවන්දෙන්නන් සඳහා ය.
pts

(8) මෑන් පිටුවට අනුව: If no address is specified, this option [-i] selects the listing of all Internet and x.25 (HP-UX) network files.
මිෂා තව්කෙලිඩ්ස්

Is මිෂා තව්කෙලිඩ්ස්: එබැවින් එය අසන්නන් නොවන අයද ප්‍රදර්ශනය කරයි, එබැවින් එය ප්‍රශ්නයට පිළිතුරු සපයන්නේ නැත.
pts

එකතු -sTCP:LISTENකිරීමටlsof
Misha Tavkhelidze


1

කවුරුන් සවන් දෙන්නේ කොතැනට පමණක් නොව, ස්ථාපිත සම්බන්ධතා පෙන්වීමට සහ කුමන රටවලටද යන්න බැලීමට මම කුඩා පිටපතක් සාදන ලදී. OSX Siera මත ක්‍රියා කරයි

#!/bin/bash
printf "\nchecking established connections\n\n"
for i in $(sudo lsof -i -n -P | grep TCP | grep ESTABLISHED | grep -v IPv6 | 
grep -v 127.0.0.1 | cut -d ">" -f2 | cut -d " " -f1 | cut -d ":" -f1); do
    printf "$i : " & curl freegeoip.net/xml/$i -s -S | grep CountryName | 
cut -d ">" -f2 | cut -d"<" -f1
done

printf "\ndisplaying listening ports\n\n"

sudo lsof -i -n -P | grep TCP | grep LISTEN | cut -d " " -f 1,32-35

#EOF

Sample output
checking established connections

107.178.244.155 : United States
17.188.136.186 : United States
17.252.76.19 : United States
17.252.76.19 : United States
17.188.136.186 : United States
5.45.62.118 : Netherlands
40.101.42.66 : Ireland
151.101.1.69 : United States
173.194.69.188 : United States
104.25.170.11 : United States
5.45.62.49 : Netherlands
198.252.206.25 : United States
151.101.1.69 : United States
34.198.53.220 : United States
198.252.206.25 : United States
151.101.129.69 : United States
91.225.248.133 : Ireland
216.58.212.234 : United States

displaying listening ports

mysqld TCP *:3306 (LISTEN)
com.avast TCP 127.0.0.1:12080 (LISTEN)
com.avast TCP [::1]:12080 (LISTEN)
com.avast TCP 127.0.0.1:12110 (LISTEN)
com.avast TCP [::1]:12110 (LISTEN)
com.avast TCP 127.0.0.1:12143 (LISTEN)
com.avast TCP [::1]:12143 (LISTEN)
com.avast TCP 127.0.0.1:12995 (LISTEN)
com.avast [::1]:12995 (LISTEN)
com.avast 127.0.0.1:12993 (LISTEN)
com.avast [::1]:12993 (LISTEN)
Google TCP 127.0.0.1:34013 (LISTEN)

ඔබ උතුරු කොරියාවට සම්බන්ධ දැයි පරීක්ෂා කිරීමට මෙය ප්‍රයෝජනවත් විය හැකිය! ;-)


0

මැකෝස් හයි සියෙරා සඳහා මෙය හොඳ ක්‍රමයකි:

netstat -an |grep -i listen

ඒක හරි! පිළිගත් පිළිතුර ඇත්ත වශයෙන්ම නිවැරදි ක්‍රමයයි ... මැක් ඕඑස් x හි නෙට්ස්ටැට් වරාය සිතියම්ගත කිරීම සඳහා පියන පෙන්වන්නේ නැත.
tr4nc3

0

පරිශීලක බ්‍රෙන්ට් සෙල්ෆ් විසින් දේවානුභාවයෙන්:

lsof -i 4 -a | grep LISTEN


0

මැකෝස් සඳහා යන්ත්‍රයේ සවන්දීමේ ක්‍රියාවලීන් සහ දුරස්ථ සේවාදායකයන්ට සම්බන්ධ වීමේ ක්‍රියාවලිය පිළිබඳ තොරතුරු පෙන්වීමට මම විධාන දෙකක් එකට භාවිතා කරමි. වෙනත් වචන වලින් කිවහොත්, ධාරකයක සවන්දීමේ වරාය සහ වත්මන් (TCP) සම්බන්ධතා පරීක්ෂා කිරීමට ඔබට පහත විධානයන් දෙක එකට භාවිතා කළ හැකිය

1. netstat -p tcp -p udp 

2. lsof -n -i4TCP -i4UDP 

මම මගේ ආදානය එකතු කරාවි යැයි සිතුවෙමි, එය යමෙකුට උපකාර කිරීම අවසන් කළ හැකිය.

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.