socat (Socket CAT: netcat บนสเตียรอยด์) เป็นการถ่ายทอดสำหรับการถ่ายโอนข้อมูลแบบสองทิศทางระหว่างสองช่องข้อมูลอิสระ แต่ละช่องข้อมูลเหล่านี้อาจเป็นไฟล์ ไปป์ อุปกรณ์ (บรรทัดอนุกรม ฯลฯ หรือเทอร์มินัลหลอก) ซ็อกเก็ต (UNIX, IP4, IP6 - raw, UDP, TCP), ซ็อกเก็ต SSL, การเชื่อมต่อพร็อกซี CONNECT, ไฟล์ descriptor (stdin เป็นต้น), โปรแกรมแก้ไขบรรทัด GNU (readline), โปรแกรม หรือทั้งสองอย่างรวมกัน โหมดเหล่านี้รวมถึงการสร้างซ็อกเก็ต "การฟัง" ไปป์ที่มีชื่อ และเทอร์มินัลหลอก
ตัวอย่างของการใช้ socat คือ:
รีเลย์ TCP (one-shot หรือ daemon)
ถุงเท้าภายนอก
ส่วนต่อประสานเชลล์กับซ็อกเก็ต Unix
รีเลย์ IPv6
การเปลี่ยน Netcat และ rinetd
การเปลี่ยนเส้นทางโปรแกรมที่มุ่งเน้น TCP ไปยังบรรทัดอนุกรม
การสร้างสภาพแวดล้อมที่ค่อนข้างปลอดภัย (su และ chroot) สำหรับการรันสคริปต์ไคลเอนต์หรือเซิร์ฟเวอร์เชลล์ภายในการเชื่อมต่อเครือข่าย
http://www.dest-unreach.org/socat/doc/socat.html#EXAMPLES
socat 1.8.0.1-x86_64 สำหรับ Windows 7, 8.1, 10 & 11 & เซิร์ฟเวอร์ [2024-08-24]
ขั้นตอนสำหรับผู้ที่ต้องการคอมไพล์จากไฟล์ต้นฉบับ
มิฉะนั้นสำหรับไฟล์อื่น ๆ จะมีไฟล์สำเร็จรูปหนึ่งไฟล์ 'socat-1.8.0.1.7z' คุณสามารถดาวน์โหลดได้โดยไปที่: socat-1.8.0.1.7z และดำเนินการต่อด้วยแป้นพิมพ์ลัด (Ctrl + Shift + s)
ก่อนอื่น หากยังไม่เสร็จสิ้น ให้ดาวน์โหลดและติดตั้ง Cygwin (เวอร์ชันล่าสุด) : https://www.cygwin.com/setup-x86_64.exe
– gcc-g++
– gcc-core
– cygwin32-gcc-g++
– cygwin32-gcc-core
- ทำ
– gcc-ฟอร์แทรน
– gcc-objc
– gcc-objc++
– libkrb5-การพัฒนา
– libkrb5_3
– libreadline-การพัฒนา
– libssl-devel
– libwrap-การพัฒนา
– tcp_wrappers
เพื่อทำเช่นนี้ ให้เราลองตอบคำถามต่อไปนี้: จะติดตั้งแพ็คเกจบน Cygwin ได้อย่างไร? ดาวน์โหลดตัวติดตั้ง Cygwin และเรียกใช้ setup.exe คลิกถัดไปผ่านค่าเริ่มต้นและเลือกมิเรอร์สำหรับการดาวน์โหลดแพ็คเกจ ค้นหาแต่ละแพ็คเกจ เปิดหมวดหมู่ที่เหมาะสม (เช่น Net หรือ PHP หรืออื่นๆ) แล้วคลิก ข้าม ถัดจากแต่ละแพ็คเกจเพื่อเลือกสำหรับการติดตั้ง
โปรดอย่าลืมดาวน์โหลดซอร์ส socat จาก http://www.dest-unreach.org/socat/
เรียกใช้ Cygwin ผ่าน (Windows + R, 'mintty') และดำเนินการคำสั่งต่อไปนี้:
cd / && cd cygdrive/c/Users//Desktop [หรือ cd / && cd %USERPROFILE%/Desktop หากคุณใช้ (Windows + R, 'cmd')] รับ http://www.dest-unreach.org/socat/download/socat-1.8.0.1.tar.gz tar -xvzf socat-1.8.0.1.tar.gzcd socat-1.8.0.1 ./กำหนดค่า ทำ ทำการติดตั้ง
หลังจากการคอมไพล์ ให้คัดลอกไดเร็กทอรี 'socat-1.8.0.1' ไปที่ %ProgramFiles% หรือตำแหน่งอื่น คุณต้องคัดลอกไดเร็กทอรีทั้งหมดและไม่ใช่แค่ 'socat.exe' เท่านั้น ไม่เช่นนั้นมันจะไม่ทำงาน
ข้อควรระวัง : เพิ่มเส้นทางของ socat จากตัวแปรสภาพแวดล้อมด้วย (Windows + R, 'sysdm.cpl', การตั้งค่าระบบขั้นสูง) ปิด 'mintty' แล้วเปิดใหม่อีกครั้ง
หมายเหตุ (จาก 'mintty' [cygwin] เพื่อตรวจสอบหมายเลขเวอร์ชัน):
$ โซกัต -V socat โดย Gerhard Rieger และผู้มีส่วนร่วม - ดู www.dest-unreach.org socat เวอร์ชัน 1.8.0.1 เมื่อวันที่ 24 ส.ค. 2567 21:18:20 น. ทำงานบน CYGWIN_NT-10.0-26100 เวอร์ชัน 2024-04-03 17:25 UTC เปิดตัว 3.5.3-1.x86_64 เครื่อง x86_64 คุณสมบัติ: #define WITH_HELP 1 #define WITH_STATS 1 #define WITH_STDIO 1 #define WITH_FDNUM 1 #define WITH_FILE 1 #define WITH_CREAT 1 #define WITH_GOPEN 1 #define WITH_TERMIOS 1 #define WITH_PIPE 1 #define WITH_SOCKETPAIR 1 #define WITH_UNIX 1 #undef WITH_ABSTRACT_UNIXSOCKET # กำหนด WITH_IP4 1 #define WITH_IP6 1 #define WITH_RAWIP 1 #define WITH_GENERICSOCKET 1 #undef WITH_INTERFACE #define WITH_TCP 1 #define WITH_UDP 1 #undef WITH_SCTP #undef WITH_DCCP #undef WITH_UDPLITE #define WITH_LISTEN 1 #undef WITH_POSIXMQ #define With_SOCKS4 1 #define ซ็อค4เอ 1 #define WITH_SOCKS5 1 #undef WITH_VSOCK #undef WITH_NAMESPACES #define WITH_PROXY 1 #define WITH_SYSTEM 1 #define WITH_SHELL 1 #define WITH_EXEC 1 #define WITH_READLINE 1 #undef WITH_TUN #define WITH_PTY 1 #define WITH_OPENSSL 1 #undef WITH_FIPS #define With_LIBWRAP 1 #define WITH_SYCLS 1 #define WITH_FILAN 1 #define WITH_RETRY 1 #undef WITH_DEVTESTS #define WITH_MSGLEVEL 0 /*debug*/ #define WITH_DEFAULT_IPV 4
จากความคิดเห็นของ Mugane :
อาจต้องการเพิ่มว่าวิธีที่ดีที่สุดคือใช้ Powershell (ในฐานะผู้ดูแลระบบ) เพื่อติดตั้งแพ็คเกจเหล่านี้สำหรับ cygwin หากใช้ cyg-get :
cyg-get gcc-g++ gcc-core สร้าง gcc-fortran gcc-objc gcc-objc++ libkrb5-devel libkrb5_3 libreadline-devel libssl-devel libwrap-devel tcp_wrappers
หากคุณไม่ได้ใช้ PowerShell และพยายามติดตั้งจาก cygwin เอง (แม้ในฐานะผู้ดูแลระบบ) คุณอาจพบข้อผิดพลาด dll ที่หายไปอย่างลึกลับและท้ายที่สุดจำเป็นต้องลบ/ติดตั้ง cygwin ใหม่เพื่อแก้ไขปัญหา
หากผู้ใช้ไม่มี cygwin ฉันขอแนะนำ Chocolatey (อีกครั้งจาก Powershell ในฐานะผู้ดูแลระบบ):
choco ติดตั้ง -y cygwin cyg-get