จะตรวจสอบพอร์ตที่เปิด / ปิดบนคอมพิวเตอร์ของฉันได้อย่างไร


135

จะตรวจสอบพอร์ตที่เปิด / ปิดบนคอมพิวเตอร์ของฉันได้อย่างไร

ฉันใช้netstat -aบรรทัดคำสั่ง

  • สถานะพอร์ต "LISTENING" ระบุว่าพอร์ตเปิดอยู่หรือไม่
  • พอร์ตใด ๆ ที่ไม่แสดงในเอาต์พุตปิดหรือไม่


2
@Justgivemeaname: nmapเป็นเครื่องมือในการตรวจสอบพอร์ตที่เปิดอยู่บนโฮสต์อื่น หากคุณสามารถเรียกใช้netstatบนเครื่องมันจะเร็วกว่าและน่าเชื่อถือมากที่จะใช้มัน
David Foerster

@DavidFoerster: ไม่ทราบเกี่ยวกับnetstatดังนั้นฉันได้เรียนรู้ว่า มันบอกว่าในลิงค์ที่ควรใช้จากโฮสต์อื่นแม้ว่า ขอบคุณ!
Justgivemeaname

คำตอบ:


163

มีพารามิเตอร์บางอย่างnetstatที่มีประโยชน์สำหรับสิ่งนี้:

  • -lหรือ--listeningแสดงเฉพาะซ็อกเก็ตที่กำลังฟังอยู่เพื่อเชื่อมต่อขาเข้า
  • -aหรือ--allแสดงซ็อกเก็ตทั้งหมดที่ใช้อยู่ในปัจจุบัน
  • -tหรือ--tcpแสดงซ็อกเก็ต tcp
  • -uหรือ--udpแสดง udp sockets
  • -nหรือ--numericแสดงโฮสต์และพอร์ตเป็นตัวเลขแทนการแก้ไขใน dns และค้นหาใน / etc / services

คุณใช้การผสมผสานเหล่านี้เพื่อให้ได้สิ่งที่คุณต้องการ หากต้องการทราบว่าหมายเลขพอร์ตใดที่ใช้งานอยู่ให้ใช้หนึ่งในจำนวนเหล่านี้:

netstat -atn           # For tcp
netstat -aun           # For udp
netstat -atun          # For both

ในเอาต์พุตพอร์ตทั้งหมดที่กล่าวถึงถูกใช้งานไม่ว่าจะเป็นการฟังเพื่อการเชื่อมต่อขาเข้าหรือการเชื่อมต่อกับเพียร์ ** อื่น ๆ ทั้งหมดจะถูกปิด พอร์ต TCP และ UDP มีความกว้าง 16 บิต (จาก 1-65535)

** พวกเขายังสามารถเชื่อมต่อ / ตัดการเชื่อมต่อจากเพื่อน


71

คุณสามารถใช้คำสั่งนี้:

netstat -tulnp | grep <port no>

หากมันแสดงให้เห็นถึงกระบวนการบางอย่างที่ใช้ มันปิด (ไม่ได้ใช้) ถ้าไม่มีเอาท์พุท


20

บรรทัดคำสั่งทางเลือกอื่นที่ใช้งานง่ายเพื่อค้นหาว่ากระบวนการใดกำลังใช้พอร์ต:

lsof -n -i4TCP:$PORT | grep LISTEN

ฉันได้เพิ่มฟังก์ชั่นถัดไปใน. bash_profile ของฉัน

function pslisten {
    echo `lsof -n -i4TCP:$1 | grep LISTEN`
}

และตอนนี้เรียกใช้ "pslisten 5060" เพื่อดูว่าใครกำลังคว้าพอร์ต SIP ของฉัน

มันทำงานร่วมกับ Apple Mac OS X ได้เช่นกัน


13

สถานะพอร์ต "LISTENING" ระบุว่าพอร์ตถูกเปิดหรือไม่

ใช่. หมายความว่าบริการบางอย่างกำลังฟังพอร์ตนั้นบนคอมพิวเตอร์ของคุณสำหรับการเชื่อมต่อขาเข้านั่นคือพอร์ตนี้เปิดให้ทำการเชื่อมต่อใหม่

พอร์ตใด ๆ ที่ไม่ได้แสดงในเอาต์พุตระบุว่าปิดอยู่หรือไม่

ใช่. จำไว้ว่าnetstat -aจะแสดงการเชื่อมต่อที่ใช้งานอยู่ ( ฟัง ) และแฝง ( ไม่ฟัง ) เช่นพอร์ตที่ทำหน้าที่เป็นเซิร์ฟเวอร์ทั้งสอง (บริการบางอย่างกำลังฟังพอร์ตเหล่านี้สำหรับการเชื่อมต่อจากเครื่อง / กระบวนการที่แตกต่างกัน) และสร้างขึ้น พอร์ตโดยไม่คำนึงถึงความจริงที่ว่าโฮสต์ / บริการสามารถเป็นเซิร์ฟเวอร์หรือไคลเอนต์)

พอร์ต TCP และ UDP ทั้งหมดเป็นของประเภทที่เรียกว่าซ็อกเก็ตและมีจำนวนมากทั้งหมด man ssหากต้องการดูข้อมูลซ็อกเก็ตคุณสามารถตรวจสอบ


ขอบคุณ คุณเขียนนั่น-aหมายถึงเซิร์ฟเวอร์และจัดตั้งขึ้น "เซิร์ฟเวอร์" หมายถึงพอร์ตที่กำลังรับฟังจากบริการบางอย่างหรือไม่ "สร้าง" หมายถึงพอร์ตที่มีการเชื่อมต่อที่มีอยู่ไม่ว่าจะเป็นไคลเอนต์หรือพอร์ตของเซิร์ฟเวอร์หรือไม่? แล้วพอร์ตประเภทใดที่-aไม่แสดง?
ทิม

ฉันไม่คิดว่า-aตัวเลือกหมายถึงซ็อกเก็ต "all active"; มันหมายถึง "ทั้งหมด" netstat จะแสดงซ็อกเก็ตที่ใช้งานอยู่ทั้งหมดตามค่าเริ่มต้น แต่จะไม่ใช้ซ็อกเก็ตแบบพาสซีฟ โดยการใช้-aตัวเลือกทั้งซ็อกเก็ตที่ใช้งานและเรื่อย ๆ จะปรากฏขึ้น
Egon Olieux

@EgonOlieux ขอบคุณ ฉันยืนแก้ไข; แก้ไขคำตอบ
heemayl

@ heemayl ส่วนที่สองของคำตอบของคุณยังไม่ถูกต้อง ซ็อกเก็ต TCP ในสถานะ "กำลังฟัง" ไม่สามารถเชื่อมต่อได้ มันไม่ได้เชื่อมต่อกับอะไรเลยมันเป็นแค่การฟังเท่านั้น การฟังซ็อกเก็ต TCP จะเรียกอีกอย่างว่าซ็อกเก็ตแบบพาสซีฟเนื่องจากสิ่งนี้ หากลูกค้าพยายามเชื่อมต่อกับซ็อกเก็ต (ฟัง) บนเซิร์ฟเวอร์ซ็อกเก็ตใหม่จะถูกสร้างขึ้นบนเซิร์ฟเวอร์เพื่อสร้างการเชื่อมต่อกับลูกค้า ซ็อกเก็ตซึ่งเป็นส่วนหนึ่งของการเชื่อมต่อที่จัดตั้งขึ้นเรียกว่าซ็อกเก็ตที่ใช้งานอยู่
Egon Olieux

3

ตัวเลือกหนึ่งคือเอสเอส มันง่ายกว่าที่จะใช้ ....

คำสั่งด้านล่างจะส่งออกรายการซ็อกเก็ตการฟังปัจจุบันเท่านั้น

root@server:~# ss -l

    Netid  State      Recv-Q Send-Q                                     Local Address:Port                                                      Peer Address:Port   


u_dgr  UNCONN     0      0                                                      * 23353                                                                * 23352                
u_dgr  UNCONN     0      0                                                      * 568                                                                  * 362                  
u_dgr  UNCONN     0      0                                                      * 14836                                                                * 14837                
u_dgr  UNCONN     0      0                                                      * 20446                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 22877                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 504                                                                  * 347                  
u_dgr  UNCONN     0      0                                                      * 16298                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 23343                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 24125                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 24617                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 23352                                                                * 23353                
u_dgr  UNCONN     0      0                                                      * 23334                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 17113                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 16957                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 14793                                                                * 362                  
u_dgr  UNCONN     0      0                                                      * 23345                                                                * 362                  
u_dgr  UNCONN     0      0                                                      * 24070                                                                * 369                  
udp    UNCONN     0      0                                                      *:sunrpc                                                               *:*                    
udp    UNCONN     0      0                                                      *:981                                                                  *:*                    
udp    UNCONN     0      0                                                     :::sunrpc                                                              :::*                    
udp    UNCONN     0      0                                                     :::981                                                                 :::*                    
tcp    LISTEN     0      128                                            127.0.0.1:85                                                                   *:*                    
tcp    LISTEN     0      128                                                    *:ssh                                                                  *:*                    
tcp    LISTEN     0      128                                                    *:3128                                                                 *:*                    
tcp    LISTEN     0      100                                            127.0.0.1:smtp                                                                 *:*                    
tcp    LISTEN     0      128                                                    *:8006                                                                 *:*                    
tcp    LISTEN     0      128                                                    *:sunrpc                                                               *:*                    
tcp    LISTEN     0      128                                                   :::ssh                                                                 :::*                    
tcp    LISTEN     0      100                                                  ::1:smtp                                                                :::*                    
tcp    LISTEN     0      128                                                   :::sunrpc                                                              :::*                    

1
ฉันไม่รู้เกี่ยวกับสิ่งนี้ขอบคุณ zee
nick fox

2

หรือสิ่งนี้อาจช่วยได้โดยใช้นาฬิกาแล้วเล่นกับสิ่งที่คุณต้องการดู

sudo watch -d -n0 "netstat -atnp | grep ESTA"

sudo watch -d -n0 "netstat -tulnp | grep ESTA"

1
-a ขัดแย้งกับ -l, -a คว้าทั้งหมดไม่ว่าจะเป็น ESTABLISHED หรือ LISTENING และ -l เพิ่งคว้า LISTENING ดังนั้นในความเป็นจริงมันคือ '-ltnp' tcp, '-lunp' udp หรือ '-ltunp' tcp + udp
ModerateJavaScriptDev

1

ที่จริงแล้วมีวิธีที่ดีกว่าในการดูพอร์ตที่คุณเปิด ปัญหาเกี่ยวกับnetstatหรือlsofว่าพวกเขาสอบถามเครือข่ายสแต็คและไม่ได้เชื่อมต่อกับเครื่อง แต่พยายามที่จะดูสิ่งที่ทำงานบนระบบแทน วิธีที่ดีกว่าคือการใช้nmapเช่น:

nmap -sT -O localhost

เพื่อดูพอร์ตที่เปิดอยู่


0
  1. ลองใช้วิธีนี้เพื่อดูรายการพอร์ตที่เปิดในช่วงนั้น

    for p in {1..1023}
    do
       (echo >/dev/tcp/localhost/$p) >/dev/null 2>&1 && echo "$p open"
    done
  2. และคำสั่งนี้จะแสดงว่ามันคืออะไร!

    cat /etc/services | grep {PORTNumber}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.