หากคุณโชคดีพอที่จะให้ผู้ให้บริการอินเทอร์เน็ต (ISP) ระบุที่อยู่ IP เฉพาะ คุณสามารถตั้งค่าโฮมเซิร์ฟเวอร์และทำให้พร้อมใช้งานบนอินเทอร์เน็ตโดยการเพิ่มกฎการส่งต่อพอร์ตสองสามข้อ . การส่งต่อ ) ให้กับเราเตอร์ แต่ถ้า ISP ของคุณบังคับให้คุณแบ่งปัน IP นั้นกับเพื่อนบ้าน การส่งต่อพอร์ตจะไม่ช่วยอะไร ผู้ให้บริการรายอื่นเพียงแค่บล็อกการเชื่อมต่อขาเข้าผ่านกฎไฟร์วอลล์
ผู้ใช้สามารถเอาชนะข้อจำกัดเหล่านี้ได้ด้วยความช่วยเหลือของเซิร์ฟเวอร์ส่วนตัวเสมือน ทุกอย่างจะทำงานได้โดยใช้ RAM น้อยกว่า 512MB เพราะสิ่งที่ต้องทำคือเปลี่ยนเส้นทางการรับส่งข้อมูลเครือข่าย ไม่ใช้ RAM และ CPU มากนัก เซิร์ฟเวอร์จะได้รับการเชื่อมต่อขาเข้าและเปลี่ยนเส้นทางไปยังคอมพิวเตอร์ผ่าน " อุโมงค์ SSH แบบย้อนกลับ " ด้วยวิธีนี้ คุณสามารถตั้งค่าโฮมเซิร์ฟเวอร์ประเภทใดก็ได้ โดยมีค่าใช้จ่ายรายเดือนเพียงเล็กน้อย
ลองนึกภาพคุณสร้างเซิร์ฟเวอร์ NextCloud เพื่ออัพโหลดหรือซิงโครไนซ์ไฟล์ คุณจะปกป้องความเป็นส่วนตัวของไฟล์ของคุณเมื่อไฟล์เหล่านั้นอยู่บนโฮมเซิร์ฟเวอร์ของคุณ และหากจำเป็น คุณสามารถซื้อฮาร์ดไดรฟ์ขนาด 6TB เพื่อเพิ่มความจุในการจัดเก็บข้อมูลได้ ค่าไฟฟ้ารายเดือนน้อยกว่า $5/เดือน (115,000 VND) สำหรับเซิร์ฟเวอร์ส่วนตัวเสมือน ถูกกว่าบิลรายเดือนสำหรับเซิร์ฟเวอร์ที่มีความจุ 6TB
หมายเหตุ : วิธีการนี้ใช้เพื่อเปลี่ยนเส้นทางการรับส่งข้อมูลเครือข่าย TCP เท่านั้น เว็บเซิร์ฟเวอร์ใช้ TCP (พอร์ต 80/tcp) UDP ถูกใช้โดยเซิร์ฟเวอร์เกมบางแห่ง (แต่ไม่ใช่ทั้งหมด) เช่น Counter Strike (พอร์ต 27015/UDP) การทำอุโมงค์ UDP ก็เป็นไปได้เช่นกัน แต่ต้องใช้เทคนิคบางอย่าง
อนุญาตการเชื่อมต่อภายนอกกับพีซี
ขณะนี้ Windows 10 มีไคลเอ็นต์ SSH ในตัวแล้ว
ไม่จำเป็นต้องใช้ PuTTYอีกต่อไปเพื่อเริ่มต้นการเชื่อมต่อ SSH ในบทช่วยสอนนี้ เราจะใช้ไคลเอนต์ SSH ในตัวเพื่อตั้งค่าทันเนล อ่านบทความ: วิธีติดตั้ง OpenSSH บน Windows 10โดย LuckyTemplates เพื่อเรียนรู้เพิ่มเติม
เตรียมเซิร์ฟเวอร์ส่วนตัวเสมือนสำหรับการเชื่อมต่อทันเนล
สร้างเซิร์ฟเวอร์ส่วนตัวเสมือนกับผู้ให้บริการที่คุณชื่นชอบ สิ่งที่สำคัญที่สุดคือการเลือกที่ตั้งเซิร์ฟเวอร์ให้ใกล้ที่สุดเพื่อลดเวลาแฝงของเครือข่าย ลองตั้งค่าเซิร์ฟเวอร์ในลักษณะที่คุณสามารถเข้าสู่ระบบบัญชีรูทได้โดยตรง ควรใช้คีย์ SSH เนื่องจากมีความปลอดภัยมากกว่า สิ่งนี้จำเป็นหากคุณต้องการให้เซิร์ฟเวอร์ "รับฟัง" สำหรับการเชื่อมต่อขาเข้าบนพอร์ตที่ต่ำกว่า 1024 หรือที่เรียกว่าพอร์ตสิทธิพิเศษ
เปิด Command prompt (หรือเทอร์มินัลหากใช้ Linux) และเข้าสู่ระบบเซิร์ฟเวอร์ผ่าน SSH
แก้ไขการตั้งค่าเซิร์ฟเวอร์ OpenSSH:
nano /etc/ssh/sshd_config
หากคุณไม่ได้เข้าสู่ระบบในฐานะ root แต่เป็นผู้ใช้ทั่วไป คุณจะต้องใช้คำสั่งนี้เพื่อให้สามารถบันทึกไฟล์ได้:
sudo nano /etc/ssh/sshd_config
เลื่อนลงจนกว่าคุณจะพบตัวแปรชื่อGatewayPortsบรรทัดนี้อาจมีลักษณะดังนี้:
#GatewayPorts no
ลบ# (เพื่อเปลี่ยนจากความคิดเห็นเป็นส่วนหนึ่งของโปรแกรม) และเปลี่ยนบรรทัดเป็น:
GatewayPorts yes
หากคุณไม่พบบรรทัดนี้ ให้เลื่อนลงไปด้านล่างและเพิ่มบรรทัดด้วยตนเอง:
GatewayPorts yes
กดCtrl + Xจากนั้นกดyและสุดท้ายEnterเพื่อบันทึกไฟล์
โหลด SSH daemon อีกครั้งเพื่อให้รับการตั้งค่าใหม่
systemctl reload ssh.service
ออกจากเซสชัน SSH
exit
วิธีการตั้งค่า Reverse SSH Tunnel
พารามิเตอร์คำสั่งจะเหมือนกันบน Linux, Windows และแม้แต่ BSD ไวยากรณ์ทั่วไปคือ:
ssh -R remote_port:host:localport your_username@IP-of-server
- remote_portบอกให้เซิร์ฟเวอร์เปลี่ยนเส้นทางการเชื่อมต่อไปยังพอร์ตนั้น
- โฮสต์บอกเซิร์ฟเวอร์ถึงที่อยู่ IP ที่จะเปลี่ยนเส้นทางการเชื่อมต่อ127.0.0.1จะถูกใช้ที่นี่เพื่อเปลี่ยนเส้นทางไปยังคอมพิวเตอร์ของผู้ใช้เอง
- localportสั่งให้แพ็กเก็ตพอร์ตใดที่ควรเปลี่ยนเส้นทางไป ที่นี่ ผู้ใช้ควรตั้งค่าหมายเลขพอร์ตที่แอปพลิเคชันที่ติดตั้งบนเครื่องคอมพิวเตอร์กำลัง "กำลังฟัง"
ตัวอย่างเช่น หากต้องการส่งต่อการเชื่อมต่อทั้งหมดบนพอร์ต 80 (ไปยังเซิร์ฟเวอร์) และส่งไปยังพอร์ต 8080 บนเครื่องคอมพิวเตอร์ คำสั่งจะเป็น:
ssh -R 80:127.0.0.1:8080 [email protected]
ซึ่งจะถือว่าคุณมีเว็บเซิร์ฟเวอร์ เช่น Apache หรือ Nginx ที่กำลังฟังบนพอร์ต 8080 ภายในเครื่อง แต่ถ้า Apache/Nginx กำลังฟังบนพอร์ตเริ่มต้น 80 ก็ไม่มีปัญหาในการใช้พอร์ตเดียวกันสองครั้งในคำสั่งก่อนหน้า (เนื่องจากพอร์ตเหล่านั้นอ้างถึงพอร์ต 80 ในเซิร์ฟเวอร์อื่น)
ssh -R 80:127.0.0.1:80 [email protected]
ณ จุดนี้ หากมีใครป้อนที่อยู่ IP ของเซิร์ฟเวอร์ส่วนตัว เสมือนของคุณ ลงในแถบที่อยู่บนเบราว์เซอร์ของพวกเขา การเชื่อมต่อของพวกเขาจะถูกเปลี่ยนเส้นทางและจัดการโดยเครื่องคอมพิวเตอร์ของคุณ
ในภาพด้านบน มีการใช้เว็บเซิร์ฟเวอร์แบบธรรมดาสำหรับ Chrome ซึ่งรับฟังพอร์ต 8887 เป็นค่าเริ่มต้น ผู้ใช้สามารถลองตั้งค่านี้ได้ด้วยตนเองโดยติดตั้งแอปแล้วใช้คำสั่งดังแสดงในภาพ
เป็นเรื่องที่ควรกล่าวถึงว่าเพื่อให้ทันเนลทำงานต่อไป เซสชัน SSH จะต้องยังคงทำงานอยู่ หากต้องการปิดอุโมงค์ ให้เข้าสู่ทางออกในหน้าต่าง Terminal หรือ Command Prompt
อย่างที่คุณเห็น การสร้างอุโมงค์ SSH แบบย้อนกลับไม่ใช่เรื่องยาก แต่การรักษาความปลอดภัยเว็บไซต์นั้นแตกต่างออกไป ดังนั้น หากคุณเลือกที่จะนำแนวคิดไปใช้ เช่น เซิร์ฟเวอร์ NextCloud ในเครื่อง ให้แยกแนวคิดนั้นอย่างน้อยในเครื่องเสมือน ด้วยวิธีนี้ หากเว็บไซต์ถูกแฮ็ก อย่างน้อยระบบปฏิบัติการที่เหลือจะไม่ได้รับอันตราย
และสิ่งสำคัญอีกประการหนึ่งที่ต้องจำไว้คือสำรองข้อมูลสิ่งที่คุณไม่ต้องการเสี่ยงต่อการสูญเสียอยู่เสมอ!
หวังว่าคุณจะประสบความสำเร็จ