โหมด FTP ที่ใช้งานและแฝง คุณสมบัติของโปรโตคอล FTP

File Transfer Protocol ซึ่งเป็นมาตรฐานแรกในต้นปี 1970 เป็นโปรโตคอลชั้นแอปพลิเคชันที่ใช้โปรโตคอลการขนส่ง TCP เพื่อถ่ายโอนข้อมูล FTP ได้รับการพัฒนาในช่วงเวลาที่ไคลเอนต์และเซิร์ฟเวอร์สื่อสารกันโดยตรง โดยไม่มีคนกลางและมีอุปสรรคน้อยที่สุด

ปัญหา FTP ในเครือข่ายสมัยใหม่

บนเครือข่ายสมัยใหม่ (NAT, ไฟร์วอลล์, โหลดบาลานเซอร์) ฟีเจอร์ต่อไปนี้ของ FTP ไม่อนุญาตให้ทำงานอย่างถูกต้อง:

  1. การเชื่อมต่อ TCP/IP สองแบบแยกกัน: สำหรับการส่งข้อมูลและการส่งคำสั่ง
  2. การเชื่อมต่อข้อมูลสามารถสร้างได้โดยใช้หมายเลขพอร์ตแบบสุ่ม
  3. การเชื่อมต่อข้อมูลอาจมาจากเซิร์ฟเวอร์ไปยังไคลเอนต์หรือจากไคลเอนต์ไปยังเซิร์ฟเวอร์
  4. ที่อยู่ปลายทางของการเชื่อมต่อข้อมูล (การเลือกโหมดการทำงาน) จะได้รับการเจรจาระหว่างไคลเอนต์และเซิร์ฟเวอร์ผ่านการเชื่อมต่อคำสั่ง
  5. การเชื่อมต่อคำสั่งไม่ได้ใช้งานในขณะที่ข้อมูลกำลังถ่ายโอนผ่านการเชื่อมต่อข้อมูล

ปัญหาที่ 1 เกิดจากการที่อุปกรณ์กำหนดเส้นทางหรือบาลานเซอร์ต้องรักษาการเชื่อมต่อสองรายการระหว่างต้นทางและปลายทางเดียวกัน

ปัญหาที่ 2 เกิดจากการที่ FTP ไม่สามารถทำงานได้หากพอร์ตขาเข้าถูกจำกัดไว้เฉพาะพอร์ตที่รู้จักเท่านั้น เหล่านั้น. ในโหมดปกติ FTP ไม่สามารถทำงานได้โดยมีเพียงพอร์ตขาเข้า 21 พอร์ตที่เปิดอยู่ซึ่งการเชื่อมต่อใช้ในการส่งคำสั่ง และยังต้องมีชุดพอร์ตมูลค่าสูงที่เปิดอยู่ (49152-65534) เพื่อถ่ายโอนข้อมูล

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

ปัญหาที่ 5 เกิดจากการที่อุปกรณ์กำหนดเส้นทางสามารถยุติการเชื่อมต่อที่ติดอยู่เพื่อส่งคำสั่งได้

สองโหมดการถ่ายโอนข้อมูลใน FTP

FTP รองรับโหมดการทำงานสองโหมด: แอคทีฟและพาสซีฟ กลไกในการสร้างการเชื่อมต่อสำหรับการถ่ายโอนข้อมูลแตกต่างกัน:

  • ในโหมดแอ็คทีฟ เซิร์ฟเวอร์จะเชื่อมต่อจากพอร์ตที่ 20 ไปยังพอร์ตไคลเอ็นต์ที่ระบุ
  • ในโหมดพาสซีฟ ไคลเอนต์เชื่อมต่อจากพอร์ตสุ่มไปยังพอร์ตเซิร์ฟเวอร์ที่ระบุ

ดังนั้นไคลเอนต์ FTP สมัยใหม่ทั้งหมดจะเจรจากับเซิร์ฟเวอร์ที่ข้อมูลถูกถ่ายโอนและใครเป็นผู้เริ่มการเชื่อมต่อ ลูกค้าสามารถระบุการใช้งานได้ โหมดแอคทีฟ โดยการส่งคำสั่ง "PORT" ซึ่งจะบอกให้เซิร์ฟเวอร์เชื่อมต่อกับ IP และพอร์ตไคลเอ็นต์เฉพาะและเริ่มส่งข้อมูล หรือลูกค้าก็สามารถใช้งานได้ โหมดพาสซีฟ โดยการส่งคำสั่ง “PASV” ไปยังเซิร์ฟเวอร์ซึ่งจะแจ้งให้เซิร์ฟเวอร์ทราบว่าไคลเอนต์กำลังรอ IP และพอร์ตของเซิร์ฟเวอร์เพื่อเริ่มรับข้อมูล

เนื่องจากไคลเอนต์เชื่อมต่อกับเซิร์ฟเวอร์ตั้งแต่แรกเพื่อสร้างการเชื่อมต่อเพื่อส่งคำสั่ง จึงสมเหตุสมผลหากไคลเอนต์สร้างการเชื่อมต่อข้อมูลด้วย เช่น กำลังส่งคำสั่ง PASV (ในขณะเดียวกันก็แก้ไขปัญหาระหว่าง FTP และไฟร์วอลล์ด้วย) อย่างไรก็ตาม นี่ไม่ใช่กรณี ด้วยเหตุผลบางประการผู้สร้างข้อกำหนด FTP จึงตัดสินใจว่าโหมดที่ต้องการควรเป็น PORT และไม่จำเป็นต้องรองรับ PASV ในฝั่งไคลเอ็นต์ด้วยซ้ำ

FTP รองรับการเข้าสู่ระบบและการเข้าถึงรหัสผ่าน แต่ไม่ปลอดภัยเนื่องจาก... พวกเขาจะถูกส่งเป็นข้อความที่ชัดเจน เมื่อใช้เว็บเบราว์เซอร์ คุณสามารถส่งผ่านไปยัง URL ได้โดยตรง

เอฟทีพี:// :@:/

ตัวอย่างเซสชันที่ใช้โหมดการถ่ายโอนข้อมูลแบบแอคทีฟและพาสซีฟ

ตัวอย่างของโหมดที่ใช้งานอยู่ ซึ่งไคลเอนต์เชื่อมต่อโดยไม่ระบุชื่อและทำการถ่ายโอนข้อมูลที่ใช้งานอยู่หนึ่งครั้ง (การเรียกดูไดเรกทอรี)

ลูกค้า: ผู้ใช้ไม่ระบุชื่อ
เซิร์ฟเวอร์:
ลูกค้า: ผ่าน NcFTP@
เซิร์ฟเวอร์: 230 เข้าสู่ระบบโดยไม่เปิดเผยตัวตน.
ลูกค้า: พอร์ต 192,168,1,2,7,138 ลูกค้าต้องการให้เซิร์ฟเวอร์เชื่อมต่อกับพอร์ต 1930 และที่อยู่ IP 192.168.1.2
เซิร์ฟเวอร์: คำสั่ง 200 PORT สำเร็จ
ลูกค้า: รายการ
เซิร์ฟเวอร์: 150 การเปิดการเชื่อมต่อข้อมูลในโหมด ASCII สำหรับ /bin/ls เซิร์ฟเวอร์เชื่อมต่อจากพอร์ต 21 ไปยังพอร์ต 1930 และที่อยู่ IP 192.168.1.2
เซิร์ฟเวอร์: 226 รายการเสร็จสมบูรณ์ ถ่ายโอนข้อมูลเรียบร้อยแล้ว
ลูกค้า: ล้มเลิก
เซิร์ฟเวอร์: 221 ลาก่อน.

ตัวอย่างโหมดพาสซีฟ

ลูกค้า: ผู้ใช้ไม่ระบุชื่อ
เซิร์ฟเวอร์: 331 แขกเข้าสู่ระบบ ตกลง ส่งที่อยู่อีเมลของคุณเป็นรหัสผ่าน
ลูกค้า: ผ่าน NcFTP@
เซิร์ฟเวอร์: 230 เข้าสู่ระบบโดยไม่เปิดเผยตัวตน.
ลูกค้า: ปาสวี ลูกค้าร้องขอข้อมูลการเชื่อมต่อจากเซิร์ฟเวอร์
เซิร์ฟเวอร์: 227 เข้าสู่โหมดพาสซีฟ
(172,16,3,4,204,173)
เซิร์ฟเวอร์ตอบสนองต่อไคลเอนต์ที่ต้องการเชื่อมต่อกับพอร์ต 52397 และที่อยู่ IP 172.16.3.4
ลูกค้า: รายการ
เซิร์ฟเวอร์: 150 ยอมรับการเชื่อมต่อข้อมูลจาก
172.16.3.4:52397; เริ่มต้นการโอน
ไคลเอนต์เชื่อมต่อกับเซิร์ฟเวอร์บนพอร์ต 52397 และที่อยู่ IP 172.16.3.4
เซิร์ฟเวอร์: 226 รายการเสร็จสมบูรณ์ ถ่ายโอนข้อมูลเรียบร้อยแล้ว
ลูกค้า: ล้มเลิก
เซิร์ฟเวอร์: 221 ลาก่อน.

ปัญหาส่วนตัว:

    โหมด PORT - ไคลเอนต์ FTP ด้านหลัง NAT หรือไฟร์วอลล์

    ปัญหาใหญ่ที่สุดที่ไคลเอนต์ FTP เผชิญโดยใช้โหมดแอคทีฟก็คือเซิร์ฟเวอร์นั้นจะต้องเชื่อมต่อกับที่อยู่ IP ของไคลเอนต์ หากมีไฟร์วอลล์อยู่ในเส้นทางที่ตัดการเชื่อมต่อขาเข้าทั้งหมด เซสชัน FTP จะไม่เกิดขึ้น ปัญหาอีกประการหนึ่งคือหากไคลเอนต์อยู่เบื้องหลัง NAT และใช้ที่อยู่ IP ภายใน โดยการสื่อสารที่อยู่ภายในไปยังเซิร์ฟเวอร์ ลูกค้าจะประณามว่าไม่สามารถเชื่อมต่อได้

    โซลูชันที่ 1: ต้องกำหนดค่าไคลเอนต์ FTP ให้ใช้โหมดพาสซีฟ

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

    โหมด PASV - เซิร์ฟเวอร์ FTP หลังไฟร์วอลล์

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

    โซลูชันที่ 1: ผู้ดูแลระบบสามารถเปิดกลุ่มพอร์ตบนไฟร์วอลล์ซึ่งสามารถเชื่อมต่อกับเซิร์ฟเวอร์ FTP ได้

    โซลูชันที่ 2: หากมีการรองรับไฟร์วอลล์ ผู้ดูแลระบบสามารถกำหนดค่าพอร์ตให้เปิดโดยอัตโนมัติเพื่อสร้างการเชื่อมต่อแบบพาสซีฟไปยังเซิร์ฟเวอร์ FTP การตั้งค่านี้คล้ายกับที่อธิบายไว้สำหรับไคลเอ็นต์ที่ใช้งานอยู่เบื้องหลัง NAT ดังนั้น เมื่อไฟร์วอลล์ตรวจสอบการตอบสนองของเซิร์ฟเวอร์ FTP ต่อคำขอไคลเอ็นต์แบบพาสซีฟ ไฟร์วอลล์จะเปิดพอร์ตที่ระบุในการตอบกลับเป็นการชั่วคราว และสำหรับ IP ที่เป็นที่มาของคำขอแบบพาสซีฟเท่านั้น

    โหมด PASV - เซิร์ฟเวอร์ FTP ที่อยู่เบื้องหลัง NAT

    ในโหมด PASV FTP เซิร์ฟเวอร์จะตอบสนองต่อไคลเอนต์ด้วยที่อยู่ IP ภายในและพอร์ต ซึ่งจะประณามไคลเอนต์ที่ไม่สามารถเชื่อมต่อได้

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

    โหมด PASV - เซิร์ฟเวอร์ FTP ด้านหลังโหลดบาลานเซอร์

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

    โซลูชันที่ 1. กำหนดที่อยู่ IP ที่ถูกต้องตามกฎหมายที่สามารถเข้าถึงได้จากภายนอกให้กับเซิร์ฟเวอร์ FTP แต่ละตัวที่อยู่ด้านหลังบาลานเซอร์ ในกรณีนี้ เซิร์ฟเวอร์ FTP จะสามารถให้บริการไคลเอนต์ FTP ได้อย่างอิสระในโหมดพาสซีฟ โดยข้ามบาลานเซอร์

    โซลูชันที่ 2: กำหนดค่าบาลานเซอร์เพื่อตรวจสอบการเชื่อมต่อ FTP สำหรับการถ่ายโอนข้อมูล เมื่อเซิร์ฟเวอร์ส่งการตอบสนองในโหมดพาสซีฟ บาลานเซอร์จะต้องเขียนที่อยู่ภายในของเซิร์ฟเวอร์ใหม่และแทนที่ด้วยที่อยู่ภายนอกของบาลานเซอร์ จากนั้นการเชื่อมต่อสำหรับการถ่ายโอนข้อมูลจากไคลเอนต์ FTP เมื่อมาถึงที่อยู่ภายนอกของบาลานเซอร์แล้วจะถูกส่งต่อไปยังที่อยู่ภายในของเซิร์ฟเวอร์ FTP ด้านหลังบาลานเซอร์

    โซลูชันที่ 3: กำหนดค่าเซิร์ฟเวอร์ FTP เพื่อให้การตอบสนองในโหมดพาสซีฟมีที่อยู่ภายนอกของบาลานเซอร์ ไม่ใช่เซิร์ฟเวอร์ และหวังว่าบาลานเซอร์จะเปลี่ยนเส้นทางการเชื่อมต่อไปยังเซิร์ฟเวอร์ที่รอ

    ปัญหาที่แก้ไม่ได้ - ไฟร์วอลล์ทั้งสองด้าน

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

    เซิร์ฟเวอร์ FTP บนพอร์ตที่ไม่ได้มาตรฐาน

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

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

    ปัญหาที่เกิดจากไฟร์วอลล์ยุติเซสชัน FTP ก่อนเวลาอันควร

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

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

  • ใช้โหมดพาสซีฟทุกครั้งที่เป็นไปได้ (ซึ่งเป็นค่าเริ่มต้นในเว็บเบราว์เซอร์)
  • หากการเชื่อมต่อกับเซิร์ฟเวอร์ FTP สำเร็จ แต่การเรียกดูไดเร็กทอรีหรือการถ่ายโอนไฟล์จบลงด้วยความล้มเหลวในการเชื่อมต่อ ปัญหาน่าจะอยู่ที่ตัวจับเวลากิจกรรมการเชื่อมต่อบนไฟร์วอลล์
  • ใช้อุปกรณ์ที่รองรับคุณสมบัติ FTP
โหมดแอคทีฟคืออะไรและมีไว้เพื่ออะไร?
โหมดแอ็กทีฟและโหมดพาสซีฟเป็นการเชื่อมต่อสองประเภทที่แตกต่างกันซึ่งกำหนดวิธีที่คุณจะเชื่อมต่อกับผู้ใช้รายอื่นและลำดับที่คุณได้รับไฟล์

โหมดพาสซีฟนั้นใช้งานง่ายที่สุดและควรใช้งานได้ในเกือบทุกสภาวะ แต่ความเรียบง่ายมาพร้อมกับราคา โหมดพาสซีฟมีข้อจำกัดในการเชื่อมต่อ (ผู้ใช้พาสซีฟไม่สามารถเชื่อมต่อกับผู้ใช้พาสซีฟรายอื่นได้) และยังทำให้เกิดภาระเพิ่มเติมบนฮับ เนื่องจากการเชื่อมต่อโหมดพาสซีฟทั้งหมดผ่านฮับ ควรใช้โหมดนี้เมื่อไม่สามารถใช้โหมดแอคทีฟเท่านั้น

การเปรียบเทียบ

ตารางต่อไปนี้แสดงความแตกต่างระหว่างโหมดการเชื่อมต่อทั้งสองโหมด


การตั้งค่าโหมดแอคทีฟ

ด้านล่างนี้คือคำอธิบายวิธีกำหนดค่าโหมดแอคทีฟโดยขึ้นอยู่กับโทโพโลยีเครือข่าย

โทโพโลยีเอ

คอมพิวเตอร์ที่เชื่อมต่อโดยตรงกับอินเทอร์เน็ตผ่าน “โมเด็ม” (แอนะล็อก, ISDN, DSL ฯลฯ) ด้วย IP แบบไดนามิกหรือแบบคงที่

ในกรณีนี้ ไม่จำเป็นต้องมีการตั้งค่าเพิ่มเติมนอกเหนือจากการเปิดใช้งานตัวเลือกโหมดแอคทีฟในการตั้งค่า DC++ จะตรวจจับที่อยู่ IP ของคุณโดยอัตโนมัติและใช้พอร์ตที่ว่าง

หากคุณใช้ไฟร์วอลล์ ให้เลือกพอร์ตเฉพาะใน DC++ ในการตั้งค่าไฟร์วอลล์ของคุณ ให้อนุญาตการเชื่อมต่อ DC++ บนพอร์ตที่ระบุ

โทโพโลยีบี

คอมพิวเตอร์ซึ่งเป็นส่วนหนึ่งของเครือข่ายที่เชื่อมต่อกับอินเทอร์เน็ตผ่านเราเตอร์ คอมพิวเตอร์มีที่อยู่ IP ภายนอกแบบคงที่หรือแบบไดนามิก ไม่ใช้เทคโนโลยีการแปลที่อยู่ (เช่น NAT)


โหมดแอคทีฟได้รับการกำหนดค่าคล้ายกับโทโพโลยี A

โทโพโลยีซี

คอมพิวเตอร์ที่เชื่อมต่อกับอินเทอร์เน็ตผ่านเราเตอร์หรือเกตเวย์ที่ใช้เทคโนโลยี NAT (Network Address Translation) NAT เป็นเทคโนโลยีที่ช่วยให้คอมพิวเตอร์หลายเครื่องสามารถเข้าถึงเครือข่ายผ่านที่อยู่ IP เดียว ในกรณีนี้ คอมพิวเตอร์มี IP อินทราเน็ตของตัวเอง (ที่อยู่ที่เริ่มต้นด้วย 192.168.*.*, 10.*.*.* หรือ 172..*.*)

เครือข่ายในบ้านมักจะใช้การเชื่อมต่อประเภทนี้


การตั้งค่าโหมดแอคทีฟต้องใช้สองขั้นตอน:

* การกำหนดค่าการส่งต่อพอร์ตบนเราเตอร์/เกตเวย์
* การตั้งค่าโหมดแอคทีฟใน DC++

การตั้งค่าการส่งต่อพอร์ต

น่าเสียดายที่กระบวนการตั้งค่าการส่งต่อนั้นเรียกแตกต่างกันไปตามผู้ผลิตเราเตอร์แต่ละราย มันอาจจะเรียกว่า: การแมปพอร์ต, เซิร์ฟเวอร์เสมือน หรือคำพ้องความหมายอื่น ๆ จะเรียกว่าอะไรก็ใช้หลักการเดียวกันหมด แนวคิดมีดังนี้: เราเตอร์ได้รับการกำหนดค่าในลักษณะที่การเชื่อมต่อกับพอร์ตเฉพาะบนเราเตอร์ (พอร์ตที่คุณเลือก) จะถูกส่งต่อไปยังเครื่องเฉพาะภายในเครือข่าย

การตั้งค่า DC++

ในเมนู "การตั้งค่า - การตั้งค่าการเชื่อมต่อ" ให้เลือกโหมดที่ใช้งานอยู่ ป้อนที่อยู่ IP ภายนอก ป้อนหมายเลขพอร์ต ซึ่งควรเป็นพอร์ตที่กำหนดค่าสำหรับการส่งต่อในส่วนก่อนหน้า

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


มาแก้ไขความเข้าใจผิดนี้กัน


อย่าลืมบันทึกไฟล์ต้นฉบับ termsrv.dll มาเปิดใช้บรรทัดคำสั่งในฐานะผู้ดูแลระบบและดำเนินการ

คัดลอก c:\Windows\System32\termsrv.dll termsrv.dll_old

จากนั้นเราจะดูเวอร์ชันของคุณ คลิกขวาที่ไฟล์ c:\Windows\System32\termsrv.dll และเลือกคุณสมบัติ


ดาวน์โหลดไฟล์ที่แก้ไขแล้วซึ่งสอดคล้องกับเวอร์ชันของคุณ

หากคุณต้องการแก้ไขทุกอย่างด้วยตัวเอง ให้คัดลอกไฟล์ termsrv.dll จากโฟลเดอร์ c:\Windows\System32\ ไปที่เดสก์ท็อป เปิดด้วยโปรแกรมแก้ไข hex เช่น HxD ฟรี และแทนที่ไบต์ในบรรทัดที่ระบุ

ในคอลัมน์แรกเป็นค่าที่ควรเป็น ในคอลัมน์ที่สองเป็นค่าต้นฉบับ

วินโดวส์ 7 SP1 64 บิต:

173C0:B8 8B
173C1: 00 87
173C2:01 38
173C3: 00 06
173C5: 90 00
173C6:89 39
173C8: 38 3C
173ซีซี: 90 0F
173ซีดี: 90 84
173CE: 90 ก.พ
173CF: 90 C2
173D0: 90 00
173D1: 90 00
176FA: 00 01
5AD7E:EB 74
สำหรับ Windows 8.1 (64 บิต) ให้เปลี่ยนทั้งบรรทัด !
ในเวอร์ชัน 6.3.9600.16384
เส้น
8B 81 38 06 00 00 39 81 3C 06 00 00 0F 84 1B 70 00 00
บน
B8 00 01 00 00 89 81 38 06 00 00 90 90 90 90 90 90 90

เป็น 6.3.9600.16384 ถึง 6.3.9600.17095
เส้น
39 81 3C 06 00 00 0F 84 9E 31 05 00
บน

6.3.9600.17095 ถึง 6.3.9600.17415
เส้น
39 81 3C 06 00 00 0F 84 D3 1E 02 00
บน
B8 00 01 00 00 89 81 38 06 00 00 90
มาใช้เครื่องมือแทนที่ด้วยค่าเลขฐานสิบหกประเภท

หลังจากเปลี่ยนแล้ว ให้บันทึกการเปลี่ยนแปลง

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



ถัดไป หยุดบริการเดสก์ท็อประยะไกล


แทนที่ไฟล์ termsrv.dll เพื่อดาวน์โหลด หรือเปลี่ยนแปลง

คุณต้องเปลี่ยนค่าของคีย์ในรีจิสทรีด้วย HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\fSingleSessionPerUser ถึง 0!

และเรากำลังเริ่มให้บริการอีกครั้ง!

มาเชื่อมต่อและชื่นชมยินดีกันเถอะ! ขณะนี้ผู้ใช้ภายในเครื่องไม่ได้ถูกไล่ออกจากระบบ!

สำหรับวินโดวส์เอ็กซ์พี
1) แก้ไขไฟล์
termsrv.dll (SP2 5.1.2600.2180) 295,424 ไบต์

128BB: 75 -> 74
217D3: 8B -> 33
217D4: C7 -> C0
2192D: 8B -> 33
2192E: C7 -> C0
225B7: 54 -> 20
termsrv.dll (SP3 5.1.2600.5512) 295,424 ไบต์
22A17: 74 -> 75
22A69: 7F -> 90
22A6A: 16 -> 90
2) แทนที่ไฟล์ในไดเร็กทอรี ค:\Windows\System32\คุณต้องใช้ Safe Mode เนื่องจากมีการเปิดใช้งานการป้องกันไฟล์ระบบตามค่าเริ่มต้น เมื่อต้องการทำเช่นนี้ ให้รีสตาร์ทคอมพิวเตอร์ในขณะที่กดค้างไว้ F8ให้เลือกเซฟโหมด
3) เพิ่มคีย์รีจิสทรี

เปิดใช้งานเซสชันพร้อมกัน”=dword:00000001

เปิดใช้งานเซสชันพร้อมกัน”=dword:00000001
อนุญาต MultipleTSSessions”=dword:00000001

4) เริ่มถัดไป -> เรียกใช้ gpedit.msc ในหน้าต่างตัวแก้ไขนโยบายกลุ่ม การกำหนดค่าคอมพิวเตอร์ -> เทมเพลตการดูแลระบบ -> ส่วนประกอบของ Windows -> บริการเทอร์มินัล เปิดใช้งาน จำกัดจำนวนการเชื่อมต่อและตั้งค่าจำนวนการเชื่อมต่อเป็น 3 หรือมากกว่า
5) รีบูทและเชื่อมต่อ!

    โหมดแอคทีฟ- สถานะของอุปกรณ์ที่เปิดและเชื่อมต่อกับเครือข่ายวิทยุเพื่อแลกเปลี่ยนข้อมูลผู้ใช้ (เสียงหรือข้อมูล) ยังถูกกำหนดให้เป็นโหมดการรับส่งข้อมูล (ITU T K.49) -