ලිනක්ස් සේවාදායකයක වරාය විවෘතව හෝ වසා තිබේදැයි පරීක්ෂා කරන්න?


229

වරායක් ලිනක්ස් සේවාදායකයක සවන්දෙන්නේ දැයි පරීක්ෂා කරන්නේ කෙසේද?


2
ඔබ ඉල්ලන්නේ කුමක්ද යන්න පැහැදිලි නැත. "විවෘත" යන්නෙන් ඔබ අදහස් කරන්නේ කුමක්ද? ඔබ අදහස් කරන්නේ සමහර සේවාදායකයන් එම වරායට සවන් දෙන බවයි? නැතහොත් ඔබ සිතන්නේ එය පද්ධතියේ ෆයර්වෝලය මඟින් අවසර දී ඇති බවයි? නැත්තම් මොකද්ද?
ඩේවිඩ් ෂ්වාට්ස්

මම හිතන්නේ මගේ සේවාදායකයේ වරායක් අවහිර වී ඇති අතර එය නැවත අවහිර කිරීමට / විවෘත කිරීමට අවශ්‍යයි.
ජේම්ස් ඇන්ඩර්සන්

14
netstat -an | grep PORTNUMBER | grep -i listenප්‍රතිදානය හිස් නම්, වරාය භාවිතයේ නොමැත.
ස්වයංක්‍රීය

1
nc -w5 -z -v <ip_address> <port_number>, ඔබ වැනි දෙයක් ලබා ගත යුතුය Connection to 127.0.0.1 9000 port [tcp/*] succeeded!, එසේ නොමැතිනම් වරාය වසා ඇත.
සර්හි පොපොව්

Answers:


196

ක්‍රියාවලියක් TCP හෝ UDP වරාය සමඟ සවන් දෙයිදැයි ඔබට පරීක්ෂා කළ හැකිය netstat -tuplen.

සමහර වරාය පිටත සිට පිවිසිය යන්න පරීක්ෂා කිරීමට (මෙය ඔබට අවශ්ය දේ බොහෝ විට මිල) ඔබ වැනි වරාය ස්කෑනරයක් භාවිතා කළ හැකි Nmap සිට තවත් පද්ධතිය. ඔබට පරීක්ෂා කිරීමට අවශ්‍ය එකම ධාරකයේම Nmap ධාවනය කිරීම ඔබේ අරමුණු සඳහා තරමක් නිෂ් less ල ය.


55
GNU netstat පරාමිතීන් දන්නා -t, -u, -p, -l, -e, සහ -n. විකල්ප විග්‍රහයට ස්තූතියි එය ලෙස ප්‍රකාශ කළ හැකිය -tuplen. linux.die.net/man/8/netstat
joschi

3
එසේම, telnetවිධානය සාමාන්‍යයෙන් TCP සඳහා පමණක් සහය දක්වයි, එබැවින් ඔබට පරීක්ෂා කිරීමට අවශ්‍ය සේවාව වෙනත් ප්‍රොටෝකෝලයක් මත ක්‍රියාත්මක වන්නේ නම් ඔබට වාසනාව නැත.
joschi

1
ඔව්, මම ජනේල පාවිච්චි කළේ ඒ නිසා ව්‍යාකූලත්වය.
ඩෙක්ස්ටර්

2
nc යනු ටෙල්නෙට් වලට වඩා හොඳ (වඩා හොඳ) විකල්පයකි. එය යූඩීපීයට ද සහාය වේ.
ෂ්වෙටොමීර් ඩිමිට්‍රොව්

1
සුඩෝ සමඟ එය භාවිතා කරන්න : sudo netstat -tuplen. මෙය ඔබට පමණක් නොව අනෙක් අයටද අයත් ක්‍රියාවලීන් ලබා දෙනු ඇති අතර, මූල නොවන පරිශීලකයෙකු ලෙස දැනටමත් ප්‍රදර්ශනය කර නොමැති නම් එය අතිරේක තොරතුරු (PID / Program Name වැනි) මුද්‍රණය කරනු ඇත.
ජෝන් රෙඩ්

109

TCP වරායක් විවෘතව තිබේදැයි පරීක්ෂා කිරීමට ඉක්මන්ම ක්‍රමය (ඔබ සතුව ඇති ඕනෑම දෘඩාංග ෆයර්වෝල් ද ඇතුළුව), දුරස්ථ පරිගණකයකින් ටයිප් කිරීම (උදා: ඔබේ ඩෙස්ක්ටොප් එක):

telnet myserver.com 80

එමඟින් එම සේවාදායකයේ 80 වන වරාය වෙත සම්බන්ධතාවයක් විවෘත කිරීමට උත්සාහ කරනු ඇත. ඔබට වේලාවක් ගත වුවහොත් හෝ ප්‍රතික්ෂේප වුවහොත්, වරාය විවෘත නොවේ :)


1
එය "ටෙල්නෙට්" විධානයක් ලෙස හඳුනා නොගන්නා බව පවසයි ...
ජේම්ස් ඇන්ඩර්සන්

7
ටෙල්නෙට් ග්‍රාහක පැකේජය ස්ථාපනය කිරීම සඳහා "yum install telnet".
cjc

8
ඉහත ලියා ඇත:if you get a time out or deny, the port is not open
කාර්මික

2
ඔබට ටෙල්නෙට් ස්ථාපනය කිරීමට අවසර නොමැති නම් කුමක් කළ යුතුද? තවත් සම්මත මෙවලමක් තිබේද?
කේ.සී. බෝල්ට්ස්

4
මම “ටෙල්නෙට් මයිහෝස්ට් 22” උත්සාහ කර කාලය ඉක්මවා ගියෙමි. නමුත් මට එම යන්ත්‍රයට කඩා දැමිය හැකිය. ?!
ටොරස්ටන් බ්‍රොන්ගර්

32

හරි, සාරාංශයක් ලෙස, ඔබට පිවිසිය හැකි සේවාදායකයක් ඔබ සතුව ඇත. කිසියම් වරායක යමක් අසන්නේ දැයි බැලීමට ඔබට අවශ්‍යය. මූල ලෙස, ධාවනය කරන්න:

netstat -nlp

මෙය TCP සහ UDP වරායන්හි සවන්දීමේ ක්‍රියාවලි ලැයිස්තුවක් පෙන්වනු ඇත. ඔබ උනන්දුවක් දක්වන ක්‍රියාවලිය සහ / හෝ ඔබ දැකීමට අපේක්ෂා කරන වරාය අංක සඳහා ඔබට එය පරිලෝකනය කළ හැකිය.

ඔබ අපේක්ෂා කරන ක්‍රියාවලිය නොමැති නම්, ඔබ එම ක්‍රියාවලිය ආරම්භ කර නැවත නෙට්ස්ටැට් පරීක්ෂා කළ යුතුය. ක්‍රියාවලිය තිබේ නම්, නමුත් එය ඔබ බලාපොරොත්තු නොවූ අතුරු මුහුණතක් සහ වරායක සවන් දෙන්නේ නම්, වින්‍යාස කිරීමේ ගැටලුවක් තිබේ (උදා: එය සවන්දීම විය හැකිය, නමුත් ලූප්බැක් අතුරුමුහුණත මත පමණි, එබැවින් ඔබට 127.0.0.1:3306 සහ MySQL සඳහා පෙරනිමි වින්‍යාසය සම්බන්ධයෙන් 3306 වරාය සඳහා වෙනත් රේඛා නොමැත).

ක්‍රියාවලිය ඉහළ මට්ටමක පවතී නම් සහ එය ඔබ අපේක්ෂා කරන වරායට සවන් දෙන්නේ නම්, ඔබට ඔබේ කාර්යාලයේ / නිවසේ ඇති මැක්බුක් වෙතින් එම වරායට “ටෙල්නෙට්” එකක් ධාවනය කිරීමට උත්සාහ කළ හැකිය, උදා.

 telnet xxxxxxxxxxxx.co.uk 443

එස්එස්එල් සඳහා වින්‍යාසගත කර ඇති වෙබ් සේවාදායකයක් තිබේදැයි (සම්මත වරායන් උපකල්පනය කරමින්) එය පරීක්ෂා කරනු ඇත. ටෙල්නෙට් භාවිතා කරන මෙම පරීක්ෂණය ක්‍රියාත්මක වන්නේ TCP වරායක ක්‍රියාවලිය සවන් දෙන්නේ නම් පමණක් බව සලකන්න. එය යූඩීපී වරායක් නම්, ඔබ එයට සම්බන්ධ වීමට භාවිතා කරන ඕනෑම සේවාදායකයකු සමඟ උත්සාහ කළ හැකිය. (ඔබ වරාය 224 භාවිතා කළ බව මට පෙනේ. මෙය වෙස්මුහුණු ය, එය කුමක්දැයි මට අදහසක් නැත).

සේවාව තිබේ නම්, නමුත් ඔබට එය බාහිරව ලබා ගත නොහැකි නම්, ෆයර්වෝලයක් ඔබව අවහිර කරයි. එවැනි අවස්ථාවක, ධාවනය කරන්න:

 iptables -L -n

මෙය ඔබගේ පද්ධතියේ අර්ථ දක්වා ඇති සියලුම ෆයර්වෝල් නීති පෙන්වනු ඇත. ඔබට එය පළ කළ හැකිය, නමුත්, සාමාන්‍යයෙන්, ඔබ INPUT දාමයේ ඇති සියල්ලට ඉඩ නොදෙන්නේ නම්, ඔබට බොහෝ විට සැක සහිත වරායේ ගමනාගමනයට ඉඩ දිය යුතුය:

 iptables -I INPUT -p tcp --dport 224 -j ACCEPT

හෝ එම රේඛා ඔස්සේ යමක්. සමහර ආගන්තුකයෙකු අන්තර්ජාලයේ ඔබට පවසා ඇති දේ මත පදනම්ව ඔබේ ෆයර්වෝල් විධාන අන්ධ ලෙස ක්‍රියාත්මක නොකරන්න. ඔබ කරන්නේ කුමක්දැයි සලකා බලන්න.

කොටුවේ ඇති ඔබගේ ෆයර්වෝලය ඔබට අවශ්‍ය ගමනාගමනයට ඉඩ දෙන්නේ නම්, එවිට ඔබේ සත්කාරක සමාගම ෆයර්වෝලයක් ධාවනය කරයි (උදා: ඔවුන් ඉඩ දෙන්නේ SSH (22 / tcp), HTTP (80 / tcp) සහ HTTPS (443 / tcp) සහ අනෙකුත් සියලුම ගමනාගමනය ප්‍රතික්ෂේප කිරීම). මෙම අවස්ථාවෙහිදී, මෙම ගැටළුව විසඳීම සඳහා ඔබ ඔවුන් සමඟ හෙල්ප් ඩෙස්ක් ටිකට් පතක් විවෘත කිරීමට අවශ්‍ය වනු ඇත, නමුත් ඔබේ cPanel හි එයට ඉඩ දිය හැකි යමක් තිබිය හැකි යැයි මම සිතමි.


Iptables -I විධානය අහෝසි කරන්නේ කෙසේදැයි ඔබට pls එකතු කළ හැකිද? ස්තූතියි !!
එව්ගනි

1
"iptables -D" සහ මුල් විධානයෙහි "-I" ට පසුව ඔබට ඇති වෙනත් ඕනෑම දෙයක් අනුගමනය කරන්න. මූලික වශයෙන්, ලියකියවිලි සොයා බලන්න.
cjc


8

ඔබ පද්ධතියට සම්බන්ධ වී ඇති අතර විධානයක් root ලෙස ක්‍රියාත්මක කළ හැකි නම් ඔබට iptables වල ප්‍රතිදානය පරීක්ෂා කළ හැකිය

iptables -L -vn

මෙය ෆයර්වෝල් රීති සහ විවෘත වරාය ACCEPTසහ පැහැදිලිවම වසා ඇති ඕනෑම වරාය ඉලක්කයක් ලැයිස්තුගත REJECTකරයි.


ඔබට ෆයර්වෝල්ඩ් තිබේ නම්, එය වඩාත් සරල ය firewall-cmd --query-port=port/protocol, උදා firewall-cmd --query-port=80/tcp.
ඇගොස්ටිනෝ

6

lsof -i :ssh ssh port විවෘතව ඇති සියලුම ක්‍රියාදාමයන් සවන්දීම සහ ක්‍රියාකාරී සම්බන්ධතා ලැයිස්තුගත කරයි.


sudoඑය කිසිදු ප්‍රතිදානයක් ලබා නොදෙන්නේ නම් උපසර්ගය .
එලියා ලින්

1
Li එලියා ලින්න් sudoවෙනත් පරිශීලකයින් විසින් විවෘත කරන ලද ඕනෑම සම්බන්ධතාවයක් සඳහා ඇත්ත වශයෙන්ම අවශ්‍ය වේ (සහ බොහෝ විට හෝ LISTENවැනි සේවාවන් මගින් විවෘත කරන ලද වරායන් ). sshhttp
ඇලෙක්සිස් විල්කේ

0

ඔබට එවැනි පරීක්‍ෂණයක් ස්ක්‍රිප්ට් කිරීමට අවශ්‍ය නම්, සර්හි පොපොව්ගේ විසඳුම (ප්‍රශ්න කිරීමට අදහස් බලන්න) බොහෝ විට හොඳම දෙය ncනම් සත්‍ය සම්බන්ධතාවයකට උත්සාහ කිරීම වෙනුවට විවෘත වරායක් සඳහා ටීසීපී තොගය සෙවීමේ හැකියාව ඇති බැවිනි.

සරලම ස්වරූපය:

nc -z <ip> <port>

නිශ්චිත <ip>:<port>කොම්බෝ විවෘත කර ඇති බව සොයාගතහොත් විධානය සත්‍ය වේ (එනම් ඔබේ එක් සේවාවක් සවන් දීම).

දැන් ඔබට වරාය විවෘත වන තෙක් බලා සිටීමට පිටපතක් ලිවිය හැකිය:

while ! nc -z <ip> <port>
do
    sleep 1
done

සටහන 1: මම -wවිධාන රේඛා විකල්පය උත්සාහ කළ අතර එය කිසිවක් කළ බවක් නොපෙනුණි. කෙසේ හෝ විධානය වහාම පැමිණේ. මම හිතන්නේ -wඑය ප්‍රයෝජනවත් නොවේ -z.

සටහන 2: නිදොස්කරණය සඳහා, -vවිධාන රේඛා විකල්පය සමඟ උත්සාහ කරන්න .

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.