ฉันต้องการใช้ Raspberry Pi ในกระท่อมสุดสัปดาห์ของฉัน Raspberry Pi อยู่ที่นั่นเพื่อบันทึกอุณหภูมิและส่งไปยังเซิร์ฟเวอร์ระยะไกลที่มี IP คงที่บันทึกข้อมูลและแสดงไว้ในเว็บไซต์ที่เรียบง่าย
อย่างไรก็ตามสถานการณ์อาจเกิดขึ้นที่ฉันต้องการเปลี่ยนบางสิ่งบางอย่างใน Raspberry Pi ตัวอย่างเช่นการอัปเดตระบบหรือการเปลี่ยนแปลงโปรแกรมที่ส่งข้อมูลไปยังเซิร์ฟเวอร์หรืออะไรก็ตาม
ด้วยการตั้งค่าที่เสนอฉันจะไม่สามารถเชื่อมต่อกับ Raspberry Pi จากด้านนอกของ LAN
หมายเหตุ:ฉันไม่ต้องการเปลี่ยนเครือข่ายและเราเตอร์ที่มีอยู่ไม่มีความสามารถในการส่งต่อพอร์ต dynDNS หรือ VPN
ฉันเพิ่งอ่านมากกว่าการเจาะรู UDP แนวคิดพื้นฐานคือว่าไคลเอนต์ส่งแพคเกจ UDP ไปยังที่อยู่เซิร์ฟเวอร์ที่รู้จัก (เช่นด้วย IP สาธารณะหรือ dynDNS เปิดใช้งาน) ไคลเอนต์ B ซึ่งต้องการเชื่อมต่อกับไคลเอนต์ A ถามเซิร์ฟเวอร์สำหรับ IP สาธารณะและหมายเลขพอร์ตของลูกค้า A.
จากนั้นมันสามารถเชื่อมต่อกับลูกค้า A โดยตรงบน IP สาธารณะและพอร์ตซึ่งเป็นแบบไดนามิก เนื่องจากไคลเอ็นต์ A เชื่อมต่อกับเซิร์ฟเวอร์เป็นครั้งแรกบนพอร์ตที่ใช้ในขณะนี้ NAT จะส่งต่อแพ็คเกจไปยังไคลเอ็นต์ A
ฉันหวังว่าฉันสรุปความคิดถูกต้องมากหรือน้อย ...
ทั้งหมดนี้ฟังดูดี แต่ปัญหาคือว่านี่ไม่ใช่การกักกันเพื่อให้ทำงานกับการเชื่อมต่อ TCP เนื่องจากเราเตอร์สามารถ“ เข้าใจ” การจับมือของการเชื่อมต่อ TCP และหากไม่ได้สร้างขึ้นอย่างถูกต้องมันจะไม่ส่งต่อ แพคเกจ
ดังนั้นฉันจะเปิดเซสชัน SSH จากไคลเอนต์ B ไปยังไคลเอนต์ A โดยไม่มีไคลเอนต์ A นั่งหลังเราเตอร์ที่มี dynDNS, IP สาธารณะแก้ไขหรือความสามารถในการส่งต่อพอร์ต? การใช้เซิร์ฟเวอร์ส่วนกลางที่มีสาธารณะแก้ไข IP หรือชื่อโดเมนอาจเป็นไปได้ยาก
-w
แต่เขาพูดว่า udp มากกว่า tcp (อาจเป็นเพราะเขา รวมถึงความพยายามใด ๆ ที่จะส่งต่อ udp ด้วย ssh), เกี่ยวข้องกับปัญหาต่าง ๆ เช่นเวลาในการตอบสนองสูงและการส่งสิ่งที่คุณไม่ต้องการอีกต่อไป ฉันคิดว่ามันยังคงเป็นสิ่งที่น่าสนใจที่จะลอง ฉันเห็น vpn นี้ผ่าน ssh และ -w พูดถึงที่นี่ด้วยwiki.archlinux.org/index.php/VPN_over_SSH