Score:0

เหตุใด Test-NetConnection จึงระบุว่าสามารถทำการเชื่อมต่อได้ แต่ฉันไม่สามารถเยี่ยมชมไซต์ได้

ธง jp

ฉันต้องพิจารณาว่าไซต์หนึ่งๆ สามารถเข้าถึงได้บนพอร์ตใดพอร์ตหนึ่งหรือไม่ เนื่องจากข้อจำกัดของไฟร์วอลล์มีอยู่บนเครือข่าย

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

ฉันต้องการทราบว่าฉันสามารถดึงที่เก็บจาก Github โดยใช้ https URL ของ repo ตัวอย่าง https URL : https://github.com/git-for-windows/git.git. สามารถใช้กับ โคลน และเครื่องมืออื่นๆ

เพื่อดูว่าฉันจะไปถึงได้ไหม Github และตามส่วนขยาย โคลน repo ฉันรันคำสั่งต่อไปนี้: ทดสอบ NetConnection - ชื่อคอมพิวเตอร์ github.com - พอร์ต 443 | ค้นหา "TcpTestSucceeded"

ในระบบ คำสั่งนี้ส่งคืนสิ่งต่อไปนี้ ซึ่งบ่งชี้ว่าฉันสามารถเข้าถึงได้ github.com ผ่านพอร์ต 443 (https)

TcpTest สำเร็จ : จริง

อย่างไรก็ตาม จากนั้นฉันก็เปิดเว็บเบราว์เซอร์และเข้าไปที่ https://github.comและเว็บเบราว์เซอร์ระบุว่าไม่สามารถทำการเชื่อมต่อได้ https อยู่เหนือพอร์ต 443 และโดเมนคือ github.com เช่นเดียวกับที่ฉันใส่ในการทดสอบ

คำถามของฉันคือ:

  • เหตุใดจึงมีความแตกต่างระหว่างการทดสอบทั้งสองนี้
  • ฉันจะทดสอบได้อย่างแม่นยำได้อย่างไร ซม หรือ พาวเวอร์เชลล์ ฉันมีสิทธิ์เข้าถึงโดเมนเฉพาะผ่านพอร์ตใดพอร์ตหนึ่งหรือไม่

เห็นได้ชัดว่า ทดสอบ-NetConnection คำสั่งไม่ได้ให้ผลลัพธ์ที่แม่นยำ เนื่องจากเว็บเบราว์เซอร์ไม่สามารถเข้าถึงได้ github.com.

dave_thompson_085 avatar
jp flag
หาก 'ข้อจำกัดไฟร์วอลล์' เป็นเพราะคุณอยู่ในเครือข่ายของธุรกิจหรือองค์กรที่ 'ตรวจสอบ' การรับส่งข้อมูลเพื่อความปลอดภัยและ/หรือเหตุผลทางกฎหมาย อาจมีพร็อกซีที่ชัดเจนซึ่งเบราว์เซอร์ใช้และ PowerShell ไม่ใช้ หรือพร็อกซีโปร่งใสที่ ทั้งสองใช้ แต่เตะเหนือเลเยอร์ TCP เท่านั้น การลองใช้ iwr (หรือเรียกอีกอย่างว่า invoke-webrequest) อาจเป็นประโยชน์และดูว่าได้อะไร
Score:2
ธง cv

เห็นได้ชัดว่า คำสั่ง Test-NetConnection ไม่ถูกต้อง เนื่องจากเว็บเบราว์เซอร์ไม่สามารถเข้าถึง github.com ได้

นั่นไม่ใช่ข้อความที่ถูกต้อง

ในความเป็นจริง Test-NetConnection ทำการเชื่อมต่อ TCP กับพอร์ต 443 ของเซิร์ฟเวอร์ปลายทาง โดยตรวจสอบว่าพอร์ต TCP 443 บนเซิร์ฟเวอร์ระยะไกลอยู่ในสถานะรับฟัง การทดสอบ NetConnection ไม่ได้ทดสอบว่าแอปพลิเคชัน/บริการใดกำลังทำงาน/กำลังฟังบนพอร์ต 443

โดยพื้นฐานแล้ว Test-NetConnection ไม่สามารถบอกคุณได้ว่าอะไรกำลังทำงาน/กำลังฟังอยู่ที่เลเยอร์ 7 แต่สามารถบอกคุณได้ว่าพอร์ต 443 อยู่ในสถานะกำลังฟัง

Score:1
ธง bd

ข้อความสองข้อความ "สามารถทำการเชื่อมต่อได้" และ "ฉันสามารถดำเนินการตามที่ฉันตั้งใจจะทำต่อไปได้" นั้นยังห่างไกลจากสิ่งที่เทียบเท่ากัน และการทดสอบการเชื่อมต่อ TCP อย่างง่ายเช่น ทดสอบ-NetConnection ไม่ได้ทดสอบสิ่งเดียวกับของจริงเลย โคลนคอมไพล์.

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

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

หากฉันไม่สามารถเข้าถึงไซต์บนพอร์ตใดพอร์ตหนึ่งได้ นั่นหมายความว่าฉันจะต้องแก้ไขไฟร์วอลล์ก่อนดำเนินการต่อ

และ

มิฉะนั้น ถ้าฉันสามารถไปถึงไซต์ได้ ฉันก็จะสามารถทำสิ่งที่ฉันตั้งใจจะทำต่อไปได้

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

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

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

โพสต์คำตอบ

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