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


410

8000මගේ පරිගණකයේ වරායේ වැඩසටහනක් සවන් දෙන බවට මම සැක කරමි.

මම පහත විධානය ක්‍රියාත්මක කරන විට, මට මෙම දෝෂය ලැබේ:

> python -m SimpleHTTPServer
# Lots of python error
socket.error: [Errno 98] Address already in use

මම වෙනත් වරායක් භාවිතා කරන්නේ නම් ( 8000පෙරනිමිය වේ), වෙබ් සේවාදායකය හොඳින් ක්‍රියාත්මක වේ.

මම wget localhost:8000විධාන රේඛාවෙන් ධාවනය කළහොත් එය නැවත පැමිණේ 404 Not Found.

වරායේ සවන් දෙන්නේ කුමන වැඩසටහනද 8000, සහ එතැන් සිට එම වැඩසටහන වින්‍යාස කර ඇති ස්ථානය සොයා ගැනීමට මට කුමක් කළ හැකිද (හෝ ලබා ගත හැකි මෙවලම්) ?

Answers:


368

ඔබේ පර්යන්තය විවෘත කර ටයිප් කරන්න

lsof -i :8000

එම විධානය මඟින් එම වරාය භාවිතා කරන යෙදුම PID සමඟ ලැයිස්තුගත කරනු ඇත. ( sudoසමහර ක්‍රියාදාමයන්ට ඔබට අවසර නොමැති බැවින් ප්‍රති results ල ක්‍රියාත්මක නොවන්නේ නම් )

උදාහරණයක් ලෙස, වරාය 8000 ( python3 -m http.server) සමඟ:

$ lsof -i :8000
COMMAND  PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
python3 3269 user    3u  IPv4 1783216      0t0  TCP *:8000 (LISTEN)

සහ වරාය 22 (SSH):

$ sudo lsof -i :22
COMMAND  PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
sshd     998 root    3u  IPv4 1442116      0t0  TCP *:ssh (LISTEN)
sshd     998 root    4u  IPv6 1442118      0t0  TCP *:ssh (LISTEN)

උපකාරවත් වන බලාපොරොත්තුව.


3
මෙය OSX හි ද එහි වටිනාකම සඳහා ක්‍රියා කරයි .....
reevesy

3
එකතු කිරීමෙන් ප්‍රති -s TCP:LISTENresult ලය සත්‍ය සවන්දීමේ සොකට්ටුවට සහ එහි ක්‍රියාවලියට සීමා වේ.
ජර්මන්

2
ඔබ වරාය 8000 සොයන්නේ නම් එය නැවත පැමිණේ PID 1889? වොට්
කෝඩි බග්ස්ටයින්

1
ඔව්, 8881 වරාය භාවිතා කරමින් PID 1889 සමඟ සේවාවක් තිබේ. මට කිසිවක් මග හැරී තිබේද?
rɑːdʒɑ

2
88 උදාහරණ 8881 වරාය සෙවීම උදාහරණ ලෙස දක්වන්න. PID තීරුවේ ක්‍රියාවලි හැඳුනුම්පත් අඩංගු වන අතර NAME තීරුවේ වරාය අඩංගු වේ.
ෆ්‍රීක් ඩි බ ru යින්

391

කුමන ක්‍රියාවලියට සවන් දෙන්නේ කුමන වරායද යන්න බැලීමට ඔබට නෙට්ස්ටැට් භාවිතා කළ හැකිය.

සම්පූර්ණ විස්තරයක් ලබා ගැනීමට ඔබට මෙම විධානය භාවිතා කළ හැකිය:

sudo netstat -peanut

8000 වරායේ සවන් දෙන්නේ කුමක්දැයි ඔබට හරියටම දැන ගැනීමට අවශ්‍ය නම් ඔබට මෙය භාවිතා කළ හැකිය:

sudo netstat -peanut | grep ":8000 "

නෙට්ස්ටැට් වෙතින් සැඟවිය හැකි ක්‍රියාවලියක් නොමැත.


121
netstat -peanutමතක තබා ගැනීම පහසුය netstat -taupen!
ඩග්ලස් බී. ස්ටැපල්

10
හොඳ එකක්! - ඔබේ අදහස පිළිබිඹු කිරීම සඳහා පිළිතුර සංස්කරණය කරන්න. ඔබට ස්තුතියි.
ඇන්ටොයින් රොඩ්රිගස්

4
එම වරාය නිදහස් කිරීම සඳහා 'fuser -k 8000 / tcp'
ජේ මෝඩි

4
"PID / Program name" තීරුවේ ඔබට ක්‍රියාවලි නාමයක් වෙනුවට
ඉරක් පෙනේ

4
ඒ නිසා එය රටකජු ඊ
ප්‍රස්වාන්

175

8 33833 මගින් පිළිතුර පැහැදිලි කිරීම සඳහා ඔබට ඉතා සවිස්තරාත්මක තොරතුරු ලබා ගත හැකිය, උදාහරණයක් ලෙස:

$ lsof -i :8000
COMMAND  PID  USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
squid3  1289 proxy   15u  IPv6 14810490      0t0  TCP *:8000 (LISTEN)

$ ps -fp 1289
UID        PID  PPID  C STIME TTY          TIME CMD
proxy     1289     1  0 09:48 ?        00:00:00 /usr/sbin/squid3 -N -f /etc/squid-deb-proxy/squid-deb-proxy.conf

දැල්ලන් යනු ක්‍රියාවලිය squid-deb-proxyබව මට එතැනම පෙනේ , නමුත් එය ඇත්ත වශයෙන්ම මගේ වරාය භාර ගැනීමයි.

ජාවා යෙදුමක තවත් හොඳ උදාහරණයක්:

$ lsof -i :4242
COMMAND  PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
java    3075 root   86u  IPv4    12019      0t0  TCP *:4242 (LISTEN)

$ ps -fp 3075
UID        PID  PPID  C STIME TTY          TIME CMD
root      3075     1 15 May24 ?        3-16:07:25 /usr/local/crashplan/jre/bin/java -Dfile.encoding=UTF-8 -Dapp=CrashPlanService -DappBaseName=CrashPl

ඔබට lsof(LiSt Open Files) එය ජාවා බව දැක ගත හැකිය , එය ප්‍රයෝජනවත් වීමට වඩා අඩුය. psPID සමඟ විධානය ක්‍රියාත්මක කිරීමෙන් අපට එය ක්‍රෑෂ් ප්ලාන් බව එකවරම දැකිය හැකිය.


10
එක් විධානයකින්:lsof -t -i :8000 | xargs ps -fp
බ්‍රෙට් වයි

8
මට උපසර්ගය යෙදීමට සිදු වූ sudo නමුත් ඉන් පසුව එය මට වැඩ කළේය. ස්තූතියි.
ඩ්වේන් ක්‍රූක්ස්

4
සටහන: sudoඔබට දෝෂයක් නොලැබේ නම්, ඔබට සරල ලෙස ප්‍රතිචාරයක් ලෙස කිසිවක් නොලැබෙනු ඇත.
ෆ්‍රෑන්ක් නොක්

14

උත්සාහ කරන්න ssසිට iproute2පැකේජය:

ss -nlp | grep 8000

5
ssඑහි පෙරීමේ හැකියාවන් ද ඇත : ss -nlp '( sport = :8000 )'.
GnP

8

භාවිතා කරන තවත් ක්රමයක් socklistසිට procinfoපැකේජය:

man socklist

විස්තරය
socklistයනු පර්ල් පිටපතක් වන අතර එය ඔබට විවෘත සොකට්, ගණන් කිරීමේ වර්ග, වරාය, ඉනෝඩ්, යූඩ්, පිඩ්, එෆ්ඩී සහ එය අයත් වැඩසටහනේ ලැයිස්තුවක් ලබා දේ.

sudo socklist

type  port      inode     uid    pid   fd  name
tcp     53      28749       0   1721    5  dnsmasq
tcp    631      29190       0   2433   11  cupsd
tcp  42376      82230    1000   1345   84  firefox
tcp  49048      71686    1000   1345   67  firefox
tcp  41248      81672    1000   1345  119  firefox
tcp  54676      84558    1000   1345   73  firefox
udp  56107      66258       0   3268   20  dhclient
udp  40804      17857     107    679   14  avahi-daemon
udp     53      28748       0   1721    4  dnsmasq
udp     68      67427       0   3268    6  dhclient
udp    631      19692       0    765    8  cups-browsed
udp   5353      17855     107    679   12  avahi-daemon

2

ඔබට nmap භාවිතා කළ හැකිය.

ඔබේ පරිගණකයේ විවෘත කර ඇති වරායන් මොනවාදැයි දැන ගැනීම ඇත්තෙන්ම වැදගත්ය, මෙය ලිනක්ස් සඳහා පමණක් නොව අනෙකුත් මෙහෙයුම් පද්ධති සඳහාද ප්‍රයෝජනවත් වේ, ලිනක්ස් සතුව කුමන වරායන් විවෘතදැයි පරීක්ෂා කිරීමට මෙවලම් රාශියක් ඇත, වඩාත් සුලභ වන්නේ එන්එම්ඒපී ය විධාන රේඛා මෙවලම, නමුත් ඔබ ඒ ආකාරයට කැමති නම් ඒ සඳහා චිත්‍රක පෙරමුණක් ද ඇත. 1

එය ස්ථාපනය කිරීමට, ටර්මිනලය විවෘත කිරීමට ඔබගේ යතුරුපුවරුවේ Ctrl+ Alt+ ඔබන්න T. එය විවෘත වූ විට, පහත විධානය ක්‍රියාත්මක කරන්න:

sudo apt-get install nmap

Nmap සහ වෙනත් උපයෝගිතා පිළිබඳ වැඩි විස්තර සඳහා මෙතැනට යන්න

1 මූලාශ්‍රය: garron.me


nmap මඟින් ඔබට කියනුයේ වරායක් විවෘතව ඇති බව මිස එය විවෘත කළ ක්‍රියාවලිය නොවේ.
ඇන්ඩ rew බර්න්ස්

1
[nmap] tries to guess which service is listening on each port, but it can make mistakesසොකට් එක අයිති වන්නේ කුමන ක්‍රියාවලියදැයි සොයා ගැනීමට සත්‍ය ක්‍රමයක් යෝජනා කිරීමට පෙර මම ඔබේ මූලාශ්‍රය හරහා නිවැරදිව කියවීමට ක්ලික් කළෙමි .
GnP

ඔබ ද දිහා කිරීමට ඔබට අවශ්ය විය හැක @gnp මෙම .
මිච්

Ich මිච් මම කළා. දේශීය පද්ධතියේ ක්‍රියාවලියක නිශ්චිත PID එක OP දැන සිටිය යුතුය. Nmap මෙහි නිවැරදි මෙවලම නොවේ, සේවාව සහ අනුවාදය අනාවරණය කිරීම සමඟ පවා නොවේ. එක්කෝ එය nmaps දත්ත ගබඩාවේ ඇති අයිතමයකට ගැලපෙනු ඇත, එමඟින් kill ාතනය කිරීමට හෝ නැවත සකස් කිරීමට කුමන ක්‍රියාවලියක් පිළිබඳව OP ට තවමත් අඳුරේ ඉඩ දෙයි, නැතහොත් එය සිදු නොවනු ඇති අතර OP හට හොඳ ඇඟිලි සලකුණු සහ අනාරක්ෂිත
වෙබ් අඩවියට

0

ප්‍රජාවේ අඩු ස්ථානයක් නිසා මට මෙහි අදහස් දැක්විය නොහැක. sudoඉහත සියලු විධානයන් නොමැතිව ඔබට ක්‍රියාවලි හැඳුනුම්පත / වැඩසටහන් නාමය ලබා නොදේ.

එබැවින්, ඔබට පහත සඳහන් දෑ ටයිප් කළ යුතුය:

sudo lsof -i :8000

හෝ

sudo netstat -lntup

ඔබ හරහා එම විධානය විස්තර පරීක්ෂා කර ගත හැක man, helpහෝ මගේ ප්රියතම සහකාරියක්

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.