วิธีทำให้เว็บเซิร์ฟเวอร์ในพื้นที่สามารถมองเห็นได้จากอินเทอร์เน็ต * โดยไม่ต้องตั้งค่าการส่งต่อพอร์ตบนเราเตอร์


12

ฉันพัฒนาเว็บไซต์บนแล็ปท็อป (ระดับไฮเอนด์) ของฉันและฉันทำงานจากที่ตั้งทางกายภาพที่หลากหลาย

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

ฉันได้ใช้ DynDNS แล้วในการเลือกชื่อโดเมนของฉันไปยังเซิร์ฟเวอร์บนเดสก์ท็อปผ่านเราเตอร์ที่ฉันได้ตั้งค่า ... แต่อย่างที่ฉันบอกว่าฉันอยากจะทิ้งขั้นตอนการใช้เซิร์ฟเวอร์เดสก์ท็อปนี้

ฉันหวังว่าบริการ reverse-proxy ที่จ่าย (การเรียกเก็บค่าธรรมเนียมรายเดือนสำหรับบัญชี) จะจัดหาซอฟต์แวร์ "reverse proxy" สำหรับลูกค้าระดับซ็อกเก็ต / เซิร์ฟเวอร์ที่สามารถใช้เพื่อจุดประสงค์นี้ได้ ฉันหาไม่เจอ ฉันใช้ TeamViewer และ LogMeIn อยู่แล้วซึ่งให้บริการที่คล้ายคลึงกัน ในความเป็นจริงฉันพยายามใช้ LogMeIn Hamachi VPN เพื่อทำให้สิ่งนี้เป็นไปได้โดยทำให้เดสก์ท็อปของฉัน(ปรากฏบนอินเทอร์เน็ตแล้ว) ส่งต่อการรับส่งข้อมูล IP ที่ร้องขอพอร์ต 80 พร้อมผ่าน VPN ไปยังแล็ปท็อปของฉัน อย่างไรก็ตามดูเหมือนจะเป็นไปไม่ได้ที่จะตั้งค่า Hamachi / Windows แบบนี้ (แต่ฉันอาจผิด)

ฉันหวังว่าจะมีวิธีที่ง่ายและมีประสิทธิภาพในการทำสิ่งนี้ให้สำเร็จ


คุณสามารถตั้งค่าเว็บเซิร์ฟเวอร์พื้นฐานโดยใช้เว็บเบราว์เซอร์ Opera (Opera unite) ได้ แต่นี่เป็นวิธีแก้ปัญหาเฉพาะในกรณีของแอปพลิเคชัน HTML + JavaScript ซึ่งฉันเชื่อว่าไม่เหมาะกับความต้องการของคุณ
jakub.g

ปัจจุบันฉันมีเว็บเซิร์ฟเวอร์ที่ใช้งานได้ - Apache (ตั้งค่าเป็นส่วนหนึ่งของการติดตั้ง XAMPP สำหรับ Windows) เว็บเซิร์ฟเวอร์นี้ทำงานได้ดีและเมื่อทำงานบนเดสก์ท็อปของฉันหลังเราเตอร์ถาวรไม่มีปัญหาในการมองเห็นได้จากอินเทอร์เน็ตเพราะฉันตั้งค่าการส่งต่อพอร์ตบนเราเตอร์ของฉัน ฉันสนใจที่จะหาวิธีที่จะทำให้เว็บเซิร์ฟเวอร์ในพื้นที่ของฉันเปิดเผยต่อสาธารณะจากอินเทอร์เน็ตเมื่อฉันไม่สามารถเข้าถึงเราเตอร์เพื่อตั้งค่าการส่งต่อพอร์ต
Dan Nissenbaum

คำตอบ:


8

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

สิ่งที่ต้องการ: ssh root@your.server.tld -g -R 11.22.33.44:80:127.0.0.1:80จะเชื่อมต่อและรับรองความถูกต้องเมื่อทำพอร์ต 80 ใน 11.22.33.44 (สมมติว่าเป็นที่อยู่สาธารณะของเซิร์ฟเวอร์) ใช้การเชื่อมต่อที่จะถูกส่งต่อไปยังพอร์ตท้องถิ่น 80 ของคุณคุณต้องเปิดใช้งานตัวเลือก GatewayPorts บนเซิร์ฟเวอร์ เพื่อฟังที่อยู่ที่ไม่ใช่ localhost ด้วยวิธีนี้และจำเป็นต้องเข้าสู่ระบบในฐานะ root เพื่อฟังบนพอร์ตที่ต่ำกว่า 1024 และหากมีบริการฟังบนพอร์ต 80 อยู่แล้วคุณจะต้องเลือกอย่างอื่นแทน -Cขอแนะนำให้เพิ่มตัวเลือกในการเปิดใช้งานการบีบอัดสตรีมผ่าน SSH โดยเฉพาะอย่างยิ่งหากคุณเชื่อมต่อแล็ปท็อปผ่านเครือข่ายที่ช้า (อาจติดอยู่ในที่ที่ไม่มีการเชื่อมต่อมือถือ GPRS เท่านั้น)

ในการใช้ ssh บน Windows คุณมีตัวเลือกน้อย คุณสามารถติดตั้งพอร์ตของ cygwin [จากนั้นคำสั่งที่ฉันให้ไว้ข้างต้นควร JustWork (tm)] หรือใช้ไคลเอนต์อื่น ๆ PuTTYเป็นตัวเลือกยอดนิยมและรองรับการสร้างช่องทางพอร์ตระยะไกล

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

แทนที่จะใช้เซิร์ฟเวอร์ที่บ้านหรือที่ทำงานสำหรับเรื่องนี้ซึ่งอาจทำให้ช้าลงอีกเว้นแต่คุณจะมีการเชื่อมต่อที่รวดเร็วทั้งสองทิศทางคุณอาจได้รับผลลัพธ์ที่ดีขึ้นโดยการเช่า Linux VPS ขนาดเล็กที่ไหนสักแห่ง (โดยเฉพาะในประเทศเดียวกัน) จุดประสงค์นี้ คุณต้องการเพียงเครื่องที่เล็กที่สุดตราบใดที่มีแบนด์วิดท์เพียงพอดังนั้นค่าใช้จ่ายเพียง $ 2-3 ต่อเดือนเท่านั้น

เช่นเดียวกับ SSH คุณสามารถพิจารณาเครื่องมือ VPN เช่น OpenVPN และใช้กฎ iptables อย่างง่าย ๆ บนเซิร์ฟเวอร์เพื่อส่งต่อการเชื่อมต่อไปยังเครื่องของคุณเมื่อเชื่อมต่อ นี่อาจมีประสิทธิภาพมากกว่าและยุ่งยากน้อยลงเมื่อตั้งค่าแล้ว แต่อาจเพิ่มความยุ่งยากเล็กน้อยในการกำหนดค่าหากคุณไม่คุ้นเคยกับมันและการกำหนดเส้นทางโดยทั่วไปแล้ว VPS ราคาถูกอีกครั้งหรือเซิร์ฟเวอร์สำนักงาน / ที่บ้านของคุณเองจะทำเช่นเดียวกับจุดสิ้นสุดของ VPN


+1: ฉันเพิ่งจะแนะนำอุโมงค์ SSH แต่คุณเอาชนะฉันและอธิบายได้ชัดเจนกว่าที่ฉันมีในการบูต
Dave Sherohman

คำตอบที่ยอดเยี่ยมขอบคุณ ฉันมี WinSSHD (จาก Bitvise - โปรแกรมที่ต้องชำระเงินแล้ว) ดังนั้นฉันจึงควรใช้มัน ฉันอาจลองใช้ iptables เพื่อหาเส้นทางข้อมูล (เริ่มแรกเมื่อคิดถึงเรื่องนี้ฉันสับสนเพราะฉันรู้ว่าข้อมูลมาถึงคอมพิวเตอร์บนเครือข่ายท้องถิ่นที่แชร์กับเราเตอร์ แต่ไม่ใช่ในเครือข่ายท้องถิ่นที่แชร์กับ VPN - ไม่ใช่ว่าสิ่งนี้จะทำให้ฉันสับสน) ทุกคนที่ต้องการโพสต์ตัวอย่างของรายการ iptable ที่จำเป็นซึ่งทำงานกับเราเตอร์และส่งผ่านข้อมูลไปยังเครือข่าย VPN จะได้รับการต้อนรับและชื่นชมมากที่สุด!
Dan Nissenbaum

1

IPV6 tunneling บนแล็ปท็อปรวมกับ ipv4 ถึง 6 proxy - gogo6 มีบริการฟรีที่ดีกับลูกค้าที่จะอัปเดตอัตโนมัติโดยเป็นส่วนหนึ่งของfreenet6 - รวมเข้ากับระเบียน AAAA และพร็อกซีที่แปลจาก ipv6 เป็น 4 ( sixxsเรียกใช้แบบสาธารณะ) หรือสำหรับโซลูชันที่หรูหรากว่านั้นพร็อกซีเซิร์ฟเวอร์ของคุณเอง ( polipoอาจทำงานได้) ซึ่งการแปลทำงานบนที่อยู่เดียวกัน

ตั้งค่าอย่างถูกต้องซึ่งควรจะโปร่งใสส่วนใหญ่นอกเหนือจากเวลาแฝงเล็กน้อยจากการถูกเด้งหลายครั้ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.