ยูทิลิตี้สำหรับเปิดพอร์ต TCP เพื่อรับฟังสถานะ


24

มียูทิลิตี้พื้นฐานเพื่อเปิดพอร์ต TCP เครือข่ายเฉพาะบนเครื่องของฉันหรือไม่?

ฉันต้องทดสอบว่าโปรแกรมของฉันเกี่ยวข้องกับพอร์ตในสถานะฟังอย่างไร


ครอบครองคุณหมายถึงเกี่ยวกับให้พอร์ต TCP ที่เฉพาะเจาะจงตรงข้ามกับสถานะฟัง?
Diogo

1
คำถามนี้ไม่เข้าท่า พอร์ตจะ "ปิด" โดยค่าเริ่มต้นเมื่อไม่มีสิ่งใดฟังอยู่
Ingmar Hupp

2
นี่คือสิ่งที่ฉันต้องการ - ยูทิลิตี้บางอย่างที่จะฟังบนพอร์ตที่ฉันเลือกและไม่ทำอะไรเลย
Vic

คำตอบ:


10

netcatควรทำในสิ่งที่คุณต้องการ ให้ฟังเครื่องของคุณและสะท้อนสิ่งที่ต้องการไปยัง STDOUT:

nc -4 -k -l -v localhost 1026

เมื่อคุณต้องการให้มันปิดเมื่อการเชื่อมต่อสิ้นสุดลงอย่าใช้ -k


2
มันทำงานบน Windows ??? ฉันลองคำสั่งนี้ที่นี่และไม่เป็นที่รู้จัก
Diogo

4
ฉันจะโพสต์สิ่งนี้เป็นคำตอบของฉัน! = p คุณสามารถดาวน์โหลด netcat ได้ที่นี่: joncraton.org/files/nc111nt.zipมันเป็นเครื่องมือที่ค่อนข้างเก่า แต่ฉันคิดว่าผู้คนไม่ได้ตระหนักถึงประโยชน์ที่จะได้รับ
cutrightjm

@Diogo Rocha คุณรู้หรือไม่ว่ามันเป็นโปรแกรมที่ดาวน์โหลดมาใช่ไหม?
cutrightjm

3
ฉันไม่รู้ ... มันคงจะดีถ้าผู้ตอบตอบโพสต์ลิงค์เพื่อดาวน์โหลด ...
Diogo

@DiogoRocha - ฉันลบลิงก์ปลอมไปยัง netcat เว็บไซต์อย่างเป็นทางการอยู่ที่ sourceforge มันเป็นส่วนหนึ่งของที่เก็บบรรจุภัณฑ์แทบทุกอันที่นั่นดังนั้นฉันไม่ได้ติดตั้งจากแหล่งมานานถึง 10 ปีติดต่อกัน
Florenz Kley

6

คุณมี

ฟัง TCP: http://www.allscoop.com/tcp-listen.php

พอร์ต Peeker: http://www.linklogger.com/portpeeker.htm

โปรแกรมอรรถประโยชน์บรรทัดคำสั่งของ Microsoft Portqry.exe


1
ฟัง TCP - โปรแกรม GUI ตัวน้อยไม่ต้องติดตั้ง! ;-)
hoggar

1
Port Peeker ไซต์ไม่มีอยู่อีกต่อไปหรือไม่สามารถเข้าถึงได้ (ม.ค. 2019)
shawty

ที่นี่คุณไปแล้วภาพรวมล่าสุดของ InternetArchive: web.archive.org/web/20180616055542/http://www.linklogger.com/?hl=th ลิงก์ดาวน์โหลดบางรายการยังคงใช้งานได้
nelson.t.cunha

4

ลอง iperf มีรุ่นสำหรับ Windows คุณสามารถเรียกใช้งานได้iperf -s -p 1234และจะฟังบนพอร์ต 1234 จากนั้นคุณสามารถเชื่อมต่อกับพอร์ตนั้นจากเครื่องระยะไกลได้โดยทำสิ่งต่อไปนี้

telnet 192.168.1.1 1234

iperf -c 192.168.1.1 1234

portqry -n 192.168.1.1 -e 1234

คุณจะต้องได้รับiperf.exeหรือportqry.exeสำหรับสองคนสุดท้าย iPerf ไม่ได้ออกแบบมาสำหรับงานนี้ แต่มันยอดเยี่ยมสำหรับการแก้ไขปัญหาการเชื่อมต่อ, ความพร้อมใช้งานแบนด์วิดท์, ลิงค์ทดสอบความเครียด ฯลฯ


2

ดูเหมือนว่ายูทิลิตี้นี้จะทำสิ่งที่คุณต้องการอย่างแน่นอนแม้จะแสดงข้อมูลที่ได้รับหากคุณต้องการ: http://www.drk.com.ar/builder.php

มันมี GUI มากกว่าแค่บรรทัดคำสั่งซึ่งเป็นข้อได้เปรียบสำหรับบางคน


1

netpipesเครื่องมือก๊อกน้ำและท่อได้ทำหน้าที่เสมอฉันดีลดความซับซ้อนstdinและstdoutสำหรับโปรแกรมของฉันที่จะใช้ผ่านเครือข่าย

คล้ายกับnetcat

คำอธิบายของ Ubuntu:

แพ็คเกจ netpipes ทำให้กระแส TCP / IP สามารถใช้งานได้ในเชลล์สคริปต์ นอกจากนี้ยังสามารถทำให้รหัสไคลเอนต์ / เซิร์ฟเวอร์ง่ายขึ้นโดยอนุญาตให้โปรแกรมเมอร์ข้ามบิตการเขียนโปรแกรมที่น่าเบื่อทั้งหมดที่เกี่ยวข้องกับซ็อกเก็ตและเน้นการเขียนตัวกรองหรือบริการอื่น ๆ

EXAMPLES
       This creates a TCP-IP socket on the local machine bound to port 3000.

       example$ faucet 3000 --out --verbose tar -cf - .

       Every  time  some process (from any machine) attempts to connect to port 3000 on this machine the faucet program will fork(2) a process and the child
       will exec(2) a

       tar -cf - .

ขอบคุณ แต่ฉันจำเป็นต้องใช้สำหรับ Windows ...
วิก

ไม่แม้แต่ Cygwin?
Marcos

0

นี่คือการใช้งานที่สมบูรณ์แบบสำหรับWiresharkซึ่งเป็นตัววิเคราะห์แพ็คเก็ตและโปรโตคอลซึ่งอยู่ในระหว่างสแต็กเครือข่าย Windows / Linux

จะช่วยให้คุณสามารถดูแพ็คเก็ต TCP / UDP ทั้งหมดที่ได้รับจากเครื่องทั้งหมดของคุณโดยไม่คำนึงถึงพอร์ต นอกจากนี้คุณยังสามารถบอกให้โปรแกรมกรองเฉพาะแพ็กเก็ตที่ส่งข้ามพอร์ตที่แน่นอนสำหรับการวิเคราะห์เพิ่มเติม ข้อได้เปรียบของ Wireshark ก็คือมันให้ข้อความที่มีรายละเอียดมากสำหรับแต่ละแพ็กเก็ต - แหล่งที่มาปลายทางพอร์ตที่อยู่ MAC ข้อมูลวันที่ checksums ฯลฯ เครื่องมือที่มีประโยชน์มาก (และฟรี!)


6
อารมณ์ขันฉัน - ตั้งแต่เมื่อไหร่ที่ Wireshark จะทำตัวเหมือนฟังการบริการที่พอร์ต? มันบันทึกการจราจรอย่างอดทน
Florenz Kley

@FlorenzKley ถูกต้องใช่มั้ย ... ฉันตีความคำถามของเขาว่าจะดูการรับส่งข้อมูลเครือข่ายบนพอร์ตที่กำหนดได้อย่างไรเนื่องจากมันไม่สำคัญสำหรับ OP ที่จะเรียกใช้โปรแกรมของเขาสองชุดที่ หนึ่งครั้งบนพอร์ตเดียวกัน (เพื่อดูว่าเกิดอะไรขึ้นถ้าโปรแกรมอื่นกำลังฟังพอร์ตอยู่)
พัฒนา

0

ฟัง TCP เป็นคำตอบที่ดีที่สุด IMHO ฉันดูและชอบตัวสร้าง TCP แต่คุณต้องมีสิทธิ์ของผู้ดูแลระบบในการเรียกใช้แอพนั้นคุณไม่จำเป็นต้องใช้กับตัวรับฟัง TCP และคุณต้องติดตั้งตัวสร้าง TCP หรือเปิดเครื่องรูดและคัดลอกไฟล์จำนวนหนึ่ง EXE ไม่มีอะไรเพิ่มเติม

ฟัง TCP ยังไม่จำเป็นต้องมีสิทธิ์ผู้ดูแลและเมื่อฉัน AV สแกนมันไม่มีอะไรบอกว่ามันเป็นอันตราย Builder มี 1 AV บน Virustotal บอกว่ามันไม่ดี แต่มันกลับกลายเป็นว่าเป็นผลบวกที่ผิด (ฉันหวังว่า) :)

ในขณะที่ฉันได้รับตัวสร้างเพื่อเรียกใช้สิทธิ์ผู้ดูแลระบบ Sans มันไม่สามารถขอซ็อกเก็ตในขณะที่ฟังได้ เมื่อฉันทำการทดสอบทั้งหมดของฉันฉันก็สามารถลบ 1 ไฟล์ของ Listener และทั้งหมดก็เหมือนเมื่อก่อน

Netcat น่าจะดี แต่ฉันไม่พบรุ่นที่สามารถใช้กับเซิร์ฟเวอร์ 2012 หรือใหม่กว่าได้ ดังนั้นเพื่อทดสอบว่าไฟร์วอลล์เครือข่ายและไฟร์วอลล์ในเครื่องอนุญาตให้พอร์ต TCP ที่เฉพาะเจาะจงเชื่อมต่อได้หรือไม่ฟัง TCP จะเป็นเครื่องมือที่ดีที่สุดสำหรับงานนี้

สนุก!


0

คุณสามารถใช้เวอร์ชัน Windows ของ netcat :

nc -l -v localhost -p 7

หมายเหตุ: ซอฟต์แวร์รักษาความปลอดภัยมัลแวร์หรือไฟร์วอลล์บางอย่างอาจตั้งค่าสถานะไฟล์นี้ว่าเป็นไวรัส เนื่องจากโปรแกรมนี้สามารถทำสิ่งนี้ได้อาจรวมอยู่ในโปรแกรมมัลแวร์ แต่ไม่ได้เป็นมัลแวร์เองและ ณ วันที่ 2017-10-04 ไฟล์นี้ถูกสแกนว่าปลอดจาก VirusTotal (ทำเครื่องหมายเป็น "riskware" โดยสแกนเนอร์ตัวเดียวเท่านั้น) ดูบันทึกของชุมชนเกี่ยวกับ urlและไฟล์สแกนเอง
Mokubai

0

ฉันชอบ netcat บน Windows แต่การดาวน์โหลดและติดตั้งเนื้อหาจากอินเทอร์เน็ตนั้นเป็นไปไม่ได้เสมอไป บางทีคุณกำลังตั้งค่าเซิร์ฟเวอร์ที่ใช้งานจริงและคุณต้องการทดสอบกฎไฟร์วอลล์ของคุณก่อน (และไม่มี) ติดตั้งอะไรก็ได้

เซิร์ฟเวอร์ Windows ส่วนใหญ่ (ทั้งหมด) มี JScript.net คอมไพเลอร์ คุณสามารถเขียนธรรมดาเก่าแบทช์ไฟล์ Windows ที่ยังเป็นโปรแกรมที่ถูกต้อง JScript.net เป็นโปรแกรมพูดได้หลายภาษา

TL; DR;

แนวคิดคือการค้นหาสิ่งที่jsc.exeเรียกใช้งานได้บนระบบของคุณ:

for /f "tokens=* delims=" %%v in ('dir /b /s /a:-d /o:-n "%SystemRoot%\Microsoft.NET\Framework\*jsc.exe"') do (
   set "jsc=%%v"
)

และใช้มันเพื่อรวบรวมไฟล์แบทช์

"!jsc!" /nologo /out:"%APPDATA%\listener.exe" "%~dpsfnx0"

ไฟล์แบตช์มีรหัส JScript.Net พื้นฐานที่สร้างซ็อกเก็ตแบบซิงโครนัสฟังยอมรับการเชื่อมต่อและวางทุกอย่างที่เกี่ยวข้อง:

listener.Bind(localEndPoint);  
listener.Listen(10);  

// Start listening for connections.  
while (true) {  
    var data:byte[] = new byte[1024];

    Console.WriteLine("Waiting for a TCP connection on {0}:{1}...", ipAddress, port);  
    var handler = listener.Accept();  

    Console.WriteLine("Connected to {0}", handler.RemoteEndPoint);  

    try {
        // An incoming connection needs to be processed.  
        while (handler.Receive(data) > 0);  
    } finally {
        Console.WriteLine("Disconected\n");
    }

    handler.Shutdown(SocketShutdown.Both);  
    handler.Close();  
}

%APPDATA%\listener.exeโปรแกรมรวบรวมจะถูกบันทึกเป็น มันสามารถทำงานได้ด้วยตัวเองคัดลอกบนเซิร์ฟเวอร์ แต่การรวบรวมจากไฟล์แบตช์หลายภาษาจะทำงานโดยไม่คำนึงถึงอุปสรรคด้านความปลอดภัยในทางของคุณ


-2

TCPViewจากชุดเครื่องมือ Sysinternals ให้ภาพรวมที่ดีมาก


เครื่องมือนี้อนุญาตให้เปิดพอร์ต TCP บนเครื่องที่ใช้งานอยู่หรือไม่
Pimp Juice IT

ฉันไม่ทราบว่า .. มันเป็นเพียงมุมมองตามชื่อแนะนำ
Patrik Mihalčin

แต่คำถามคือ / "มียูทิลิตี้พื้นฐานบางอย่างเพื่อเปิดพอร์ต TCP เครือข่ายเฉพาะบนเครื่องของฉันหรือไม่" ใน TCPView คุณสามารถปิดการเชื่อมต่อได้ แต่นั่นเป็นสิ่งเดียวที่สามารถเปลี่ยนแปลงได้ในระบบ
Peter Mortensen
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.