คู่มือการตั้งค่าบริการรีเวิร์สพร็อกซี frp ใน ServBay
frp (Fast Reverse Proxy) เป็นเครื่องมือรีเวิร์สพร็อกซีประสิทธิภาพสูง ที่ช่วยให้คุณสามารถเปิดเผยบริการในเครือข่ายท้องถิ่นอย่างปลอดภัยไปยังอินเทอร์เน็ตสาธารณะได้ ServBay ได้ผสานการทำงานของไคลเอนต์ frp (frpc) เพื่อให้คุณเชื่อมต่อกับเซิร์ฟเวอร์ frp (frps) ที่คุณจัดการเอง และใช้โดเมนที่คุณกำหนดในการเข้าถึงเว็บไซต์ท้องถิ่นที่โฮสต์บน ServBay วิธีนี้ทำให้คุณควบคุมเซิร์ฟเวอร์อุโมงค์ของคุณได้อย่างเต็มที่
คู่มือนี้จะอธิบายอย่างละเอียดถึงวิธีตั้งค่าไคลเอนต์ frp ใน ServBay และเชื่อมต่อกับเซิร์ฟเวอร์ frps ของคุณ
ภาพรวม
แตกต่างจากบริการอุโมงค์ที่โฮสต์ให้ใน ServBay อื่น ๆ การใช้ frp นั้น จำเป็นต้องตั้งค่าและเปิดใช้งาน frps server บนเซิร์ฟเวอร์ของคุณเองล่วงหน้า ServBay จะทำหน้าที่เป็นไคลเอนต์ frp (frpc) ในการส่งข้อมูลจากเว็บไซต์ท้องถิ่นของคุณไปสู่ frps server เพื่อเผยแพร่ต่อสาธารณะ เหมาะกับนักพัฒนาที่ต้องการความยืดหยุ่นและการควบคุมอุโมงค์ในระดับสูง
กรณีการใช้งาน
- ควบคุมเซิร์ฟเวอร์อุโมงค์ได้โดยสมบูรณ์: คุณมีอิสระปรับแต่งและจัดการความปลอดภัยและประสิทธิภาพของ frps server ของคุณเองได้เต็มที่
- ใช้งานโดเมนและ SSL ที่กำหนดเอง: กำหนดชื่อโดเมนใดก็ได้สำหรับโปรเจกต์ท้องถิ่นของคุณ และผสานการออก ACME SSL Certificate ที่ ServBay ดูแล ได้อย่างง่ายดาย
- ปรับแต่งโครงข่ายขั้นสูง: frp สนับสนุนหลายประเภทของพร็อกซีและการตั้งค่าขั้นสูงสำหรับเคสที่ซับซ้อน
- โฮสต์ในองค์กร/ส่วนตัว: เหมาะสำหรับผู้ที่ไม่ต้องการพึ่งพาบริการอุโมงค์บุคคลที่สาม
ข้อกำหนดเบื้องต้น
- ติดตั้ง ServBay แล้ว: ตรวจสอบให้แน่ใจว่า macOS ของคุณได้ติดตั้งและรัน ServBay สำเร็จแล้ว
- เซิร์ฟเวอร์
frps
โฮสต์เอง:- คุณต้องมีเซิร์ฟเวอร์ที่สามารถเข้าถึงจากอินเทอร์เน็ตได้ และได้ติดตั้งและรัน
frps
สำเร็จแล้ว - จดบันทึก IP สาธารณะหรือชื่อโดเมนของเซิร์ฟเวอร์
frps
- จดบันทึกค่าที่ตั้งในไฟล์คอนฟิกของ
frps
(frps.toml
หรือfrps.ini
) เช่นbindPort
(พอร์ตสำหรับการสื่อสารระหว่าง frpc และ frps) และtoken
(รหัสผ่านสำหรับยืนยันตัวตน)
- คุณต้องมีเซิร์ฟเวอร์ที่สามารถเข้าถึงจากอินเทอร์เน็ตได้ และได้ติดตั้งและรัน
- โดเมนและการตั้งค่า DNS:
- คุณต้องมีชื่อโดเมนสาธารณะ (เช่น
your-frp-server.com
) และตั้งค่า DNS A Record ชี้ไปที่ IP ของเซิร์ฟเวอร์frps
คุณจะใช้โดเมนนี้ในการเข้าถึงเว็บไซต์ท้องถิ่นภายหลัง
- คุณต้องมีชื่อโดเมนสาธารณะ (เช่น
- ACME SSL Certificate บน ServBay:
- หากต้องการเข้าถึงด้วย HTTPS คุณต้องสร้างขอใบรับรอง ACME SSL สำหรับโดเมนนี้ล่วงหน้าในฟีเจอร์ SSL Certificates ของ ServBay (เช่น หากจะใช้
project.your-frp-server.com
ก็ต้องขอใบรับรองสำหรับโดเมนนั้น)
- หากต้องการเข้าถึงด้วย HTTPS คุณต้องสร้างขอใบรับรอง ACME SSL สำหรับโดเมนนี้ล่วงหน้าในฟีเจอร์ SSL Certificates ของ ServBay (เช่น หากจะใช้
- หลายโดเมนย่อยและ SSL Certificate:
- หากต้องการใช้หลายโดเมนย่อยโดยไม่ต้องสร้าง A Record หลายอัน สามารถใช้ wildcard ได้: สร้าง A Record แบบ
*.your-frp-server.com
ชี้ไปที่ IP สาธารณะของfrps
และขอใบรับรอง ACME ที่ครอบคลุม wildcard (ขณะขอใน ServBay กรอกyour-frp-server.com, *.your-frp-server.com
ในช่อง Domain โดยใส่*
เป็นรายการสุดท้าย คั่นด้วย comma ภาษาอังกฤษ) เพียงเท่านี้ก็สามารถเพิ่มโดเมนย่อยใน ServBay ทีหลังได้โดยไม่ต้องสร้างหลาย A Record และแชร์ใบรับรองเดียวกันได้ - ใช้วิธีนี้ร่วมกับ ServBay คุณสามารถกำหนดโดเมนย่อยใด ๆ เช่น
company-project.your-frp-server.com
,personal.your-frp-server.com
,customer-1.your-frp-server.com
ได้ทันทีเพื่อเผยแพร่โดยไม่ต้องตั้งค่าซ้ำหลายรอบ
- หากต้องการใช้หลายโดเมนย่อยโดยไม่ต้องสร้าง A Record หลายอัน สามารถใช้ wildcard ได้: สร้าง A Record แบบ
ขั้นตอนการตั้งค่า
1. ติดตั้งแพ็กเกจ frp ใน ServBay
- เปิดแอป ServBay
- ในแถบด้านซ้าย คลิกที่ Packages (แพ็กเกจ)
- ในรายชื่อแพ็กเกจ ค้นหาและเลือก
frp
- คลิกปุ่มติดตั้งถัดจาก
frp
- หลังติดตั้งเสร็จ เนื่องจากยังไม่ได้ตั้งค่า การพยายามสตาร์ท frp จะล้มเหลว ซึ่งเป็นเรื่องปกติ
2. เตรียมเซิร์ฟเวอร์และตั้งค่า frps
ของคุณ
คุณต้องติดตั้งและรัน frps
บนเซิร์ฟเวอร์สาธารณะด้วยตัวเอง ServBay สามารถสร้างไฟล์เท็มเพลตคอนฟิก frps.toml
(สำหรับ frp เวอร์ชันใหม่) ให้คุณได้เพื่อเริ่มต้น
ที่ ServBay ไปที่ Tunnel -> frp
ค้นหาและคลิกไอคอนลูกศรข้าง frp server config (frps.toml)
ServBay จะแสดงตัวอย่างไฟล์คอนฟิก
frps.toml
ตัวอย่างเช่น:toml# The frps configuration file automatically generated by ServBay # is intended for direct use on the server. # Please adjust the configuration parameters according # to your specific needs. bindPort = 12345 auth.method = "token" auth.token = "myserverpassword" vhostHTTPPort = 80 vhostHTTPSPort = 443 log.to = "/tmp/frps.log" log.level = "info" log.maxDays = 3 log.disablePrintColor = true # สำหรับเวอร์ชันใหม่ของ frps (เช่น 0.52.0+) ใช้ webServer.port, webServer.addr, webServer.user, webServer.password ตั้งค่าแดชบอร์ด # webServer.port = 7500 # webServer.addr = "0.0.0.0" # webServer.user = "admin" # webServer.password = "admin_password"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21คำอธิบายการตั้งค่าสำคัญ:
bindPort
: พอร์ตที่ frpc จะใช้เชื่อมต่อกับ frps ต้องเปิดพอร์ตนี้ใน firewall ของเซิร์ฟเวอร์ ขอแนะนำให้ป้องกันพอร์ตนี้อย่างเข้มงวด เช่น จำกัดเฉพาะ IP ที่เชื่อถือได้auth.method = "token"
กับauth.token
: ใช้สำหรับ authenticate การเชื่อมต่อของไคลเอนต์ จำเป็นต้องเปลี่ยนเป็นรหัสผ่านที่แข็งแรงของคุณเองvhostHTTPPort = 80
และvhostHTTPSPort = 443
: frps จะ listen คำขอ HTTP/HTTPS ที่พอร์ตเหล่านี้- 【สำคัญ】ServBay ถูกปรับแต่งเป็นพิเศษสำหรับกรณีที่ให ้frps ใช้พอร์ต 80 และ 443 เป็น vhostHTTPPort และ vhostHTTPSPort ทำให้ ServBay สามารถส่งต่อ ACME SSL certificate ที่ขอมาจากเครื่องท้องถิ่นโดยตรงให้ frps ใช้งาน
- หากเซิร์ฟเวอร์ frps ของคุณไม่สามารถใช้พอร์ต 80/443 ได้ (เช่น ถูกบริการอื่นยึดพอร์ตอยู่) จำเป็นต้องมีพร็อกซีด้านหน้า เช่น Nginx หรือ Caddy คอยฟัง 80/443 แล้วส่งต่อไปยังพอร์ตที่ frps ใช้งานจริง SSL certificate ในกรณีนี้จะต้องถูกติดตั้งบนพร็อกซีนั้น แทนที่จะใช้การ passthrough จาก ServBay
log.to
: ตำแหน่งไฟล์บันทึก log ของ frps- การตั้งค่า Dashboard (เช่น
webServer.port
): สำหรับเข้าถึงแดชบอร์ดของ frps เป็นทางเลือก
ก๊อปปี้คอนฟิกที่ได้ไปวางบนเซิร์ฟเวอร์ frps ของคุณ บันทึกในชื่อ
frps.toml
(หรือfrps.ini
แล้วแต่เวอร์ชัน/ความถนัดของคุณ) และแก้ไขค่าต่าง ๆ ให้ตรงกับความต้องการสตาร์ท frps server ของคุณ
3. ตั้งค่าไคลเอนต์ frp ใน ServBay
กลับมาที่แอป ServBay กำหนดค่าการเชื่อมต่อ frpc ตามนี้
ไปที่ Tunnel -> frp
กรอกข้อมูลเซิร์ฟเวอร์ frps ดังนี้:
- Server Address (ที่อยู่เซิร์ฟเวอร์): กรอกชื่อโดเมนหรือ IP สาธารณะของเซิร์ฟเวอร์ frps (เช่น
my.test.frp.server.host
) - Server Port (พอร์ตเซิร์ฟเวอร์): ใส่ค่า
bindPort
ที่ตั้งในfrps.toml
เช่น12345
- Auth Token (โทเค็นยืนยัน): ใส่
auth.token
ที่ตั้งในfrps.toml
เช่นmyserverpassword
- Server Address (ที่อยู่เซิร์ฟเวอร์): กรอกชื่อโดเมนหรือ IP สาธารณะของเซิร์ฟเวอร์ frps (เช่น
ตั้งค่าการแมปอุโมงค์:
- Local Domain (เว็บไซต์ท้องถิ่น): คลิกดรอปดาวน์เพื่อเลือกเว็บที่โฮสต์อยู่บน ServBay ที่ต้องการเผยแพร่ (เช่น
servbay.demo
) - External Domain (โดเมนภายนอก): พิมพ์ชื่อโดเมนที่ต้องการให้ผู้ใช้ภายนอกเข้าถึงเว็บนี้ (เช่น
test.ks.do
) โดยโดเมนนี้ต้องมี DNS A Record ชี้ไป IP ของเซิร์ฟเวอร์ frps แล้ว- หมายเหตุสำคัญ: ไม่เหมือน Tunnel อื่น ๆ ใน ServBay (เช่น Ngrok, Cloudflared) ที่นี่คุณต้องกรอกเป็นโดเมนเต็ม
- ACME Certificates (ใบรับรอง ACME): คลิกเมนูเลือกใบรับรอง ACME SSL ที่คุณได้ขอไว้ใน ServBay สำหรับ External Domain ดังกล่าว (เช่น เลือกใบรับรองสำหรับ
test.ks.do
)- สำคัญ: หากต้องการใช้ HTTPS เข้าถึง External Domain ต้องเลือกใบรับรองให้ถูกต้อง ServBay จะส่ง certificate นี้ให้ frpc เพื่อใช้กับการตอบสนอง HTTPS ผ่าน frps โดยคุณไม่จำเป็นต้องติดตั้ง SSL เพิ่มบน frps เอง
- Local Domain (เว็บไซต์ท้องถิ่น): คลิกดรอปดาวน์เพื่อเลือกเว็บที่โฮสต์อยู่บน ServBay ที่ต้องการเผยแพร่ (เช่น
เพิ่มอุโมงค์หลายรายการ:
- หากต้องการเผยแพร่หลายเว็บไซต์หรือหลายโดเมน ให้คลิกปุ่ม
+
ข้างรายการอุโมงค์เพื่อเพิ่มการตั้งค่าใหม่
- หากต้องการเผยแพร่หลายเว็บไซต์หรือหลายโดเมน ให้คลิกปุ่ม
4. บันทึกและสตาร์ทบริการ frp
- เสร็จสิ้นทุกการตั้งค่า กด Save (บันทึก) ที่มุมขวาล่าง
- ServBay จะบันทึกไฟล์คอนฟิก frpc และพยายามสตาร์ท frp service
- ตรวจสอบไฟแสดงสถานะข้างรายการ
frp
ในหน้ารายการ Tunnel หากทุกอย่างถูกต้องไฟควรจะเป็นสีเขียว หมายความว่าทำงานปกติ - ทดสอบการเข้าถึง:
- ขณะนี้คุณควรจะเข้าถึงเว็บท้องถิ่นผ่าน External Domain ที่ตั้งค่าไว้ได้จากภายนอก (เช่น
https://test.ks.do
) - สามารถคลิกปุ่มคัดลอกลิงก์ หรือเปิดเบราว์เซอร์ที่ไอคอนข้างชื่อโดเมนเพื่อลองได้ทันที
- ขณะนี้คุณควรจะเข้าถึงเว็บท้องถิ่นผ่าน External Domain ที่ตั้งค่าไว้ได้จากภายนอก (เช่น
หมายเหตุสำคัญ
- การดูแลเซิร์ฟเวอร์ frps: คุณต้องรับผิดชอบการติดตั้ง ปรับแต่ง และดูแลความปลอดภัย/บำรุงรักษา frps server ด้วยตัวเอง
- ความปลอดภัยของ
bindPort
ใน frps: ควรใช้auth.token
ที่แข็งแรง และพิจารณาตั้ง firewall เพื่ออนุญาตเฉพาะ IP ที่เชื่อถือได้เท่านั้นในการเข้าถึง port นี้ - การเลือก
vhostHTTPPort
กับvhostHTTPSPort
:- แนะนำให้ frps listen ที่พอร์ต 80 กับ 443 โดยตรง เพื่อใช้ฟีเจอร์ passthrough SSL certificate ของ ServBay ได้อย่างง่ายที่สุด
- หาก frps listen ที่พอร์ตอื่น (ไม่ได้ใช้ 80/443) ต้องตั้ง reverse proxy เช่น Nginx หรือ Caddy ด้านหน้าบนพอร์ต 80/443 และตั้งค่าตรงนี้เป็นผู้รับผิดชอบจัดการใบรับรอง SSL แทน
- ความจำเป็นของ ACME certificate: หากต้องการให้ External Domain ใช้งาน HTTPS ต้องขอ certificate ตัวนั้นใน ServBay และเลือกให้ถูกต้องใน frp config
- การเผยแพร่ DNS: ตรวจสอบให้แน่ใจว่า A Record ของ External Domain ได้ชี้ไปที่ IP frps เรียบร้อยและ DNS ได้เผยแพร่ทั่วโลกแล้ว
FAQ (คำถามที่พบบ่อย)
- ถาม: ทำไม frp ใน ServBay สตาร์ทไม่ได้ ไฟเป็นสีแดง/ส้ม?
- ตอบ: ตรวจสอบค่าต่าง ๆ ใน ServBay ว่า
Server Address
,Server Port
,Auth Token
ตรงกับที่ตั้งไว้ในfrps.toml
หรือไม่ ตรวจสอบว่า frps server ทำงานตามปกติ และพอร์ตbindPort
ได้รับการเปิด firewall ให้เข้าถึงจากเครื่องที่รัน ServBay ดูบันทึก log ของ frp เพื่อดูรายละเอียดข้อผิดพลาด
- ตอบ: ตรวจสอบค่าต่าง ๆ ใน ServBay ว่า
- ถาม: เข้าถึงผ่าน External Domain ได้ แต่เป็น HTTP ไม่ใช่ HTTPS?
- ตอบ: ให้แน่ใจว่าเลือก ACME certificate ที่ถูกต้องสำหรับ External Domain ในการตั้งค่า frp ของ ServBay และใน
frps.toml
ต้องตั้งvhostHTTPSPort
ให้ถูก (แนะนำใช้ 443)
- ตอบ: ให้แน่ใจว่าเลือก ACME certificate ที่ถูกต้องสำหรับ External Domain ในการตั้งค่า frp ของ ServBay และใน
- ถาม: เซิร์ฟเวอร์ frps ของฉันต้องใช้ vhost port ไม่ใช่ 80/443 จะจัดการ SSL ยังไง?
- ตอบ: ต้องตั้ง reverse proxy (เช่น Nginx หรือ Caddy) ฟังพอร์ต 80/443 บนเครื่อง frps แล้วใช้ certificate ของตัวเอง proxy request ต่อไปยัง frps's vhostHTTPSPort โดย ServBay จะไม่จัดการตรงนี้ให้ certificate ต้องติดตั้งบน reverse proxy
- ถาม: ทำไมไฟล์
frps.toml
ที่ ServBay สร้าง กับไฟล์ที่ฉันใช้ (.ini) ถึงไม่เหมือนกัน?- ตอบ: frp อัปเดตฟอร์แมตไฟล์จาก .ini เป็น .toml ServBay ให้เท็มเพลต .toml หากคุณใช้ .ini หรือเวอร์ชันเก่า สามารถแปลงเองโดยอ้างอิงคู่มือ frp หลักได้ ค่าหลัก ๆ จะเหมือนกัน
สรุป
ServBay ให้เครื่องมือทรงพลังสำหรับนักพัฒนา macOS ที่ต้องการควบคุมและปรับแต่งระบบ reverse proxy (ทะลุผ่านเครือข่าย) self-hosted อย่างละเอียด เพียงเปิดใช้เซิร์ฟเวอร์ frps ร่วมกับการตั้งค่า frpc ใน ServBay ผสานการจัดการ ACME SSL certificate คุณก็สามารถแชร์เว็บไซต์ท้องถิ่นของคุณสู่ภายนอกได้อย่างปลอดภัยและยืดหยุ่น อย่าลืมตรวจสอบค่าพอร์ต รหัสผ่าน และความปลอดภัยทั้งฝั่ง frps และ frpc เพื่อประสบการณ์ที่เสถียรและปลอดภัยสูงสุด