ตัวแทน Tencent Cloud: การเจาะเครือข่ายภายในของ Tencent Cloud และการตั้งค่าการเข้าถึงเครือข่ายสาธารณะ
ในงานพัฒนาประจำวันเรามักจะพบกับสถานการณ์เช่นนี้: คุณเขียนพื้นหลังของเว็บไซต์หรือโปรแกรมขนาดเล็กบนคอมพิวเตอร์ในเครื่องและต้องการส่งให้ลูกค้าสาธิตหรือต้องการทดสอบบนโทรศัพท์จริงบนโทรศัพท์ของคุณอย่างไรก็ตามคอมพิวเตอร์ภายในเครื่องของคุณซ่อนอยู่หลังเราเตอร์ที่บ้านหรือบริษัทของคุณหากไม่มี IP เครือข่ายสาธารณะเครือข่ายภายนอกจะไม่สามารถเข้าถึงได้เลย
ในเวลานี้ "การเจาะอินทราเน็ต" มีประโยชน์
มือใหม่หลายคนจะเลือกใช้เครื่องมือสำเร็จรูปของบุคคลที่สามเช่นเปลือกถั่วลิสงและ Ngrok แต่ชื่อโดเมนฟรีไม่เพียงแต่จำกัดความเร็วและกระแสเท่านั้นแต่ยังยากที่จะได้ยินอีกด้วยจริงๆแล้วถ้าคุณมีอยู่ในมือ
Tencent Cloud Server (แอพพลิเคชั่นเซิร์ฟเวอร์น้ำหนักเบาหรือ CVM)
คุณสามารถใช้สิ่งประดิษฐ์โอเพ่นซอร์สได้
Frp
ใช้เวลา5นาทีในการสร้างบริการเจาะอินทราเน็ตของคุณเองความเร็วไม่จำกัดปริมาณการใช้งานเต็มและคุณสามารถผูกชื่อโดเมนของคุณเองได้
บทช่วยสอนของวันนี้จะตัดไปที่หัวข้อโดยตรงและจะนำคุณไปสู่การกำหนดค่าเซิร์ฟเวอร์ Tencent Cloud และไคลเอนต์ในพื้นที่และเปิดการเข้าถึงเครือข่ายสาธารณะอย่างสมบูรณ์
หลักการสำคัญ: การเจาะอินทราเน็ตคืออะไร?
ก่อนเริ่มให้ใช้เวลา10วินาทีเพื่อทำความเข้าใจหลักการและคุณจะไม่เวียนหัวเมื่อกำหนดค่าในภายหลัง:
การเจาะเครือข่ายภายในเป็นหลัก
หาคนกลางส่งข้อความ
。
เซิร์ฟเวอร์ (frps): ทำงานบนเซิร์ฟเวอร์ Tencent Cloud ที่คุณมี IP เครือข่ายสาธารณะมีหน้าที่ตรวจสอบคำขอของผู้ใช้เครือข่ายภายนอกในเครือข่ายสาธารณะ
ไคลเอนต์ (frpc): ทำงานบนเครื่องคอมพิวเตอร์ที่คุณไม่มี IP สาธารณะมันจะเริ่มต้นการเชื่อมต่อกับเซิร์ฟเวอร์ Tencent Cloud และสร้าง "ช่องทางลับ" พิเศษ
เมื่อผู้ใช้เครือข่ายภายนอกเข้าถึงเซิร์ฟเวอร์ Tencent Cloud ของคุณ Tencent Cloud จะส่งคำขอไปยังคอมพิวเตอร์ภายในเครื่องของคุณตามช่องทางนี้และคอมพิวเตอร์ในเครื่องจะกลับไปที่วิธีการเดิมหลังจากประมวลผล
ขั้นตอนแรก: การกำหนดค่าเซิร์ฟเวอร์ Tencent Cloud (frps)
ก่อนอื่นเราต้องกำหนดค่าเซิร์ฟเวอร์คลาวด์ของ Tencent ให้เป็น "คนกลาง" ที่มีคุณสมบัติเหมาะสมนี่คือตัวอย่างของระบบ Linux(Ubuntu/CentOS)
1.ดาวน์โหลดซอฟต์แวร์ frp
เชื่อมต่อกับเซิร์ฟเวอร์ Tencent Cloud ของคุณก่อนอื่นไปที่ GitHub เพื่อดู frp เวอร์ชันล่าสุด
เรียกใช้คำสั่งต่อไปนี้เพื่อดาวน์โหลดเวอร์ชันของ Linux frp (ตามสถาปัตยกรรมเซิร์ฟเวอร์ของคุณโดยทั่วไป amd64)
แบช
Wget https://github.com/fatedier/frp/releases/download/v0.60.0/frp_0.60.0_linux_amd64.tar.gz
คลายการบีบอัดไฟล์และเข้าสู่ไดเร็กทอรี:
แบช
Tar-zxvffrp_0.60.0_linux_amd64.tar.gz
Cd frp_0.60.0_linux_amd64
2. แก้ไขไฟล์กำหนดค่า
Frps.toml
ในฝั่งเซิร์ฟเวอร์เราต้องใส่ใจกับ
S
ไฟล์ที่ลงท้ายด้วย (Server) การใช้งาน
นาโน
หรือ
Vi
ซ่อม
เปลี่ยน
ฟรีพีเอส.โตมัล
:
แบช
Nano frps.toml
ล้างเนื้อหาเริ่มต้นภายในและแก้ไขเป็นการกำหนดค่ามาตรฐานต่อไปนี้:
# Frps.toml
Bind_port = 7000 # พอร์ตที่เซิร์ฟเวอร์สื่อสารกับลูกค้า
# หากคุณต้องการดูสถานะการเจาะผ่านหน้าเว็บคุณสามารถกำหนดค่าแผง (อุปกรณ์เสริม)
Dashboard_port = 7500 # พอร์ตคอนโซล
Dashboard_user = "admin" # ชื่อผู้ใช้คอนโซล
Dashboard_pwd = "รหัสผ่านที่แข็งแกร่งของคุณ"
# การตรวจสอบความปลอดภัย (ขอแนะนำให้เพิ่มเพื่อป้องกันไม่ให้ผู้อื่นขโมยเซิร์ฟเวอร์ของคุณเพื่อเจาะ)
Auth.method = "token"
Auth.token = "สร้าง Token ที่ซับซ้อนด้วยตัวเอง"
บันทึกและออกจาก
3.เริ่มเซิร์ฟเวอร์
เรียกใช้คำสั่งต่อไปนี้เพื่อเริ่มต้น:
แบช
./Frps-c frps.toml
ดูการส่งออกบนหน้าจอ
Frps started successfully
แสดงว่าเซิร์ฟเวอร์พร้อมแล้ว
💡เคล็ดลับการป้องกันการแตกหักในพื้นหลัง: เรียกใช้สิ่งนี้โดยตรงเมื่อปิดบริการหน้าต่าง SSH บริการจะถูกตัดการเชื่อมต่อแนะนำให้ใช้ nohup. /Frps-c frps.toml >/dev/ null 2>& 1 & โยนมันลงในพื้นหลัง
ขั้นตอนที่สอง: ปล่อย Tencent Cloud Security Group (มือใหม่เหยียบหลุมได้ง่ายที่สุด)
หลายคนพบว่าไม่สามารถเชื่อมต่อชีวิตและความตายได้หลังจากกำหนดค่า90% เป็นเพราะ Tencent Cloud
ไฟร์วอลล์/กลุ่มความปลอดภัย
ประตูถูกล็อค Frp ใช้พอร์ตหลายพอร์ตและต้องไปที่คอนโซลเพื่อปล่อยด้วยตนเอง
ลงชื่อเข้าใช้ Tencent Cloud Console และเข้าสู่หน้าการจัดการเซิร์ฟเวอร์คลาวด์ของคุณ
คลิกไฟร์วอลล์ (แอ็พพลิเคชันเซิร์ฟเวอร์ที่มีน้ำหนักเบา) หรือกลุ่มความปลอดภัย (CVM) ในแถบเมนูด้านซ้าย
คลิกเพิ่มกฎ: พอร์ต: กรอก7000 (พอร์ตการสื่อสาร frp), นโยบาย: อนุญาตพอร์ต: กรอก7500 (พอร์ตแผงหากไม่ตรงกันคุณสามารถเพิ่มได้) นโยบาย: อนุญาตพอร์ต: กรอก80หรือ8080เป็นต้น (คุณต้องการใช้เป็นพอร์ตสำหรับการเข้าถึงเว็บไซต์บนเครือข่ายภายนอก)
คลิกตกลงบันทึก
ขั้นตอนที่สาม: การกำหนดค่าลูกค้าท้องถิ่น (frpc)
ตอนนี้เราต้องปล่อยให้คอมพิวเตอร์ในพื้นที่ที่ซ่อนอยู่ในอินทราเน็ตริเริ่มที่จะ "รู้จักญาติ" ตามระบบคอมพิวเตอร์ท้องถิ่นของคุณ (Windows/Mac) ไปที่ frp GitHub เพื่อดาวน์โหลดแพ็กเกจที่บีบอัดที่เกี่ยวข้องนี่คือตัวอย่างของคอมพิวเตอร์ Windows
1.เตรียมเอกสาร
หลังจากดาวน์โหลดเวอร์ชันของ Windows แล้วคุณจะเห็นไฟล์ที่คล้ายกันเนื่องจากเป็นลูกค้าเราจึงเหลือเพียง
ซี
(C
Lient) ไฟล์ที่ลงท้าย:
Frpc.exe
และ
Frpc.toml
。
2.แก้ไขโปรไฟล์ท้องถิ่น
Frpc.toml
เปิดด้วย Notepad หรือ VS Code
Frpc.toml
, เปลี่ยนเป็นสิ่งต่อไปนี้:
นี่, TOML
# Frpc.toml
Server_addr = "Tencent Cloud Server IP สาธารณะของคุณ"
Server_port = 7000
วิธีการรับรองความถูกต้อง = "โทเค็น"
Auth.token = "ต้องเหมือนกับ token ใน frps.toml บนคลาวด์"
# ตัวอย่างที่1: แมปเว็บไซต์ในเครื่อง (เช่นพอร์ต8080ในเครื่อง) กับเครือข่ายสาธารณะ
[[Proxies]]
Name = "my_local_website"
Type = "tcp"
Local_ip = "127.0.0.1"
Local_port = 8080 # พอร์ตใดที่บริการท้องถิ่นของคุณทำงาน
Remote_port = 8080 # พอร์ตใดที่แมปกับเซิร์ฟเวอร์ Tencent Cloud
# ตัวอย่างที่2: แผนที่เดสก์ท็อประยะไกล (ต้องการควบคุมระยะไกลคอมพิวเตอร์ Windows ที่บ้านของคุณในเครือข่ายภายนอก)
[[Proxies]]
Name = "windows_remote_desktop"
Type = "tcp"
Local_ip = "127.0.0.1"
Local_port = 3389 # Windows Remote Desktop พอร์ตเริ่มต้น
Remote_port = 33890 # พอร์ตที่กำหนดเองสำหรับการเข้าถึงเครือข่ายภายนอก (อย่าลืมปล่อย33890ใน Tencent Cloud Firewall)
3.เปิดไคลเอนต์ในเครื่อง
บนคอมพิวเตอร์ Windows,
อย่า
ดับเบิลคลิกโดยตรง
Frpc.exe
!จากนั้นหน้าต่างจะกะพริบ
ในช่องว่างของโฟลเดอร์ frp ให้กดปุ่ม Shift บนแป้นพิมพ์ค้างไว้และคลิกปุ่มเมาส์ขวาเพื่อเลือกเปิดหน้าต่าง PowerShell (หรือเทอร์มินัล) ที่นี่
ป้อนคำสั่งต่อไปนี้และกด Enter: PowerShell./ frpc.exe -c frpc.toml
ดูเอาต์พุตคอนโซล start proxy success อธิบายว่าท่อลับเปิดอย่างเป็นทางการ!
ขั้นตอนที่สี่: ทดสอบการเข้าถึงเครือข่ายสาธารณะ
ตอนนี้ถึงเวลาแห่งการเป็นพยานต่อความมหัศจรรย์แล้ว
หากคุณเรียกใช้เว็บไซต์กับ Tomcat, Node.js หรือ Python บนคอมพิวเตอร์ของคุณพอร์ตคือ
8080
。
ตอนนี้คุณสามารถใช้โทรศัพท์มือถือที่สามารถเข้าถึงอินเทอร์เน็ตตัดการใช้เครือข่ายเซลลูลาร์ของ Wi-Fi และป้อนในแถบที่อยู่ของเบราว์เซอร์:
http:// Tencent ของคุณ
IP เครือข่ายสาธารณะของเซิร์ฟเวอร์คลาวด์: 8080
คุณจะพบว่าหน้าเว็บในคอมพิวเตอร์ของคุณเปิดโดยตรงบนโทรศัพท์ของคุณ! ในเวลานี้ไม่ว่าจะเป็นการดีบักเครื่องจริงของโปรแกรม WeChat Mini หรือการแสดงโค้ดให้กับลูกค้าในที่อื่นๆก็สามารถทำได้โดยไม่มีข้อจำกัด
การเล่นขั้นสูง: ผูกชื่อโดเมนกับพอร์ตที่ซ่อนอยู่ (บอกลาหมายเลขพอร์ตที่น่าเกลียด)
ทุกครั้งที่คุณเยี่ยมชมคุณต้องเพิ่มหลัง IP
: 8080
หางแบบนี้ไม่เพียงแต่น่าเกลียดแต่เครือข่ายของหลายๆบริษัทจะปิดกั้นพอร์ตที่ไม่ได้มาตรฐานด้วยเราหวังว่าจะใช้งานได้
http://api.yourdomain.com
ชื่อโดเมนที่สะอาดนี้สามารถเข้าถึงได้โดยตรง
แนวทางปฏิบัติที่ดีที่สุดคือการเพิ่มเลเยอร์ให้กับ Tencent Cloud Server
ตัวแทนย้อนกลับ Nginx
:
ชี้บันทึกความละเอียดของชื่อโดเมนของคุณ (เช่น * .yourdomain.com) ไปที่ IP เซิร์ฟเวอร์ Tencent Cloud ของคุณ
ติดตั้ง Nginx บน Tencent Cloud Server
แก้ไขการกำหนดค่า Nginx และส่งต่อคำขอชื่อโดเมนจากพอร์ต80 (พอร์ตเว็บมาตรฐานมาตรฐาน) ไปยังพอร์ตการทำแผนที่ frp:
รีบูต Nginx:sudo systemctl restart nginx 。
หลังจากการกำหนดค่านี้ไฟร์วอลล์ของ Tencent Cloud จะต้องถูกปล่อยออกมาเท่านั้น
7000
(สำหรับ frp) และ
80
(สำหรับ Nginx) เพียงป้อนชื่อโดเมนโดยตรงสำหรับการเข้าถึงเครือข่ายภายนอก
: 8080
ประหยัดปลอดภัยและสง่างาม
สรุปและหลีกเลี่ยงหลุม
การใช้ Tencent Cloud เพื่อสร้างการเจาะอินทราเน็ตเป็นเทคโนโลยีที่ใช้งานได้จริงและคุ้มค่าสุดท้ายสรุปเป็นสูตรสี่ประโยคและตรวจสอบปัญหาที่พบ:
ทั้งสองเวอร์ชันควรเหมือนกัน: หมายเลขเวอร์ชัน frp ของ Tencent Cloud และคอมพิวเตอร์ในระบบควรเหมือนกันทุกประการมิฉะนั้นจะตัดการเชื่อมต่อได้ง่าย
การป้องกันความปลอดภัยต้องไม่ลืม: คุณต้องเพิ่มโทเค็นในไฟล์กำหนดค่ามิฉะนั้นเซิร์ฟเวอร์ของคุณจะถูกใช้เป็นกระดานกระโดดน้ำฟรีโดยคนเลวทุกนาที
ต้องปล่อยพอร์ตคลาวด์: ตราบใดที่มีการเพิ่ม remote_port ใหม่ให้ไปที่ "ไฟร์วอลล์" ของคอนโซล Tencent Cloud เพื่อเปิดประตูโดยเร็วที่สุด
Nohup สำหรับการทำงานในพื้นหลัง: อย่าลืมเพิ่ม nohup หรือกำหนดค่าเป็นบริการ systemd เมื่อเซิร์ฟเวอร์กำลังทำงานเพื่อให้แน่ใจว่าการเจาะอินทราเน็ตยังคงออนไลน์อยู่หลังจากที่ SSH ถูกตัดการเชื่อมต่อ

