การสร้างฟาร์มพรอกซีบนเราเตอร์ OpenWRT: คู่มือทีละขั้นตอนจนถึงผลลัพธ์
บทความ
- บทนำ
- การเตรียมการเบื้องต้น
- แนวคิดพื้นฐาน
- ขั้นตอน 1: ทำไมใช้ openwrt สำหรับพรอกซีมือถือ
- ขั้นตอน 2: สิ่งที่ต้องการ (เราเตอร์ที่เข้ากันได้ โมเด็ม)
- ขั้นตอน 3: การติดตั้ง openwrt
- ขั้นตอน 4: การตั้งค่าโมเด็มและการเชื่อมต่อเครือข่าย
- ขั้นตอน 5: โหมด raw-ip หรือ bridge
- ขั้นตอน 6: การเชื่อมต่อซอฟต์แวร์พรอกซี
- การตรวจสอบผลลัพธ์
- ข้อผิดพลาดทั่วไปและการแก้ไข
- ฟีเจอร์เพิ่มเติม
- คำถามที่พบบ่อย
- บทสรุป
บทนำ
ในคู่มือทีละขั้นตอนนี้คุณจะสามารถสร้างฟาร์มพรอกซีที่ทำงานได้จริงบนเราเตอร์ที่ใช้ OpenWRT และ USB โมเด็ม หลังจากทำเสร็จแล้วคุณจะมี HTTP(S) พรอกซีหนึ่งหรือหลายตัวที่ใช้มือถือช่องทางจากโมเด็มแต่ละตัว คุณจะได้เรียนรู้วิธีการเลือกอุปกรณ์ ที่จะติดตั้ง OpenWRT และตั้งค่าการเชื่อมต่อกับเครือข่ายมือถือในโหมด QMI หรือ MBIM รวมถึงการเปิดใช้งาน raw-IP ตามที่จำเป็น ติดตั้ง 3proxy ผูกพรอกซีแต่ละตัวเข้ากับอินเทอร์เฟซของตัวเองและตรวจสอบผลลัพธ์ตามมาตรฐาน นอกจากนี้ยังจะได้เรียนรู้วิธีขยายการกำหนดค่า อัตโนมัติการเริ่มใหม่ของโมเด็มและติดตามความเสถียร
คู่มือนี้เขียนสำหรับผู้ใช้ที่มีความชำนาญ แต่ทุกขั้นตอนมีรายละเอียดด้วยภาษาที่เข้าใจง่ายและไม่มีการข้ามขั้นตอนที่เห็นได้ชัด หากคุณไม่เคยทำงานกับ OpenWRT มาก่อน คุณก็ยังสามารถทำตามได้โดยทำตามขั้นตอนทีละขั้น หากคุณมีประสบการณ์แล้วมีตัวเลือกขั้นสูง การปรับแต่ง และส่วนที่เกี่ยวกับปัญหาทั่วไป
ก่อนเริ่มการทำงาน ควรทราบสิ่งพื้นฐาน: วิธีเข้าถึงเว็บอินเตอร์เฟซของเราเตอร์ (LuCI) วิธีเปิด SSH-client และป้อนคำสั่ง วิธีเปลี่ยนเฟิร์มแวร์ และวิธีอ่านบันทึกระบบ เราจะอธิบายคำสั่งที่สำคัญและชี้แจงว่าสิ่งใดที่ต้องคลิกในอินเทอร์เฟซ ทั้งหมดนี้จะใช้เวลาประมาณ 3–6 ชั่วโมง: อาจนานกว่านั้นถ้าคุณเป็นครั้งแรกที่แฟลชอุปกรณ์และสร้างฟาร์มที่มีหลายโมเด็ม หรือใช้เวลาน้อยกว่าหากคุณมี OpenWRT และโมเด็มหนึ่งเครื่องอยู่แล้ว
คำแนะนำ: หากคุณต้องการตรวจสอบแนวคิดอย่างรวดเร็ว เริ่มจากโมเด็มหนึ่งเครื่องและพอร์ตพรอกซีหนึ่งพอร์ต เมื่อทุกอย่างทำงานได้แล้วให้ขยายไปที่ 2–8 โมเด็ม
⚠️ ข้อควรระวัง: ใช้พรอกซีภายในกรอบของกฎหมายประเทศของคุณและเงื่อนไขของผู้ให้บริการเครือข่าย คู่มือนี้ไม่ได้รวมถึงหรือส่งเสริมวิธีการที่จะหลีกเลี่ยงการบล็อก การปฏิบัติที่ไม่ถูกกฎหมาย หรือการโจมตีเข้าสู่วงจรของบุคคลที่สาม
✅ การตรวจสอบ: เมื่อสิ้นสุดคู่มือนี้ คุณจะมีรายชื่อพรอกซีที่พร้อมใช้งานในรูปแบบ: โฮสต์:พอร์ต พร้อมชื่อผู้ใช้และรหัสผ่านที่ตรวจสอบผ่านเบราว์เซอร์หรือ curl แต่ละพรอกซีจะเชื่อมต่อกับอินเทอร์เน็ตผ่านช่องทางมือถือของตัวเองและจะมีที่อยู่ IP สาธารณะแยกจากผู้ให้บริการ
การเตรียมการเบื้องต้น
ก่อนเริ่ม ให้เตรียมเครื่องมือ ซอฟต์แวร์ และการเข้าถึง เพื่อหลีกเลี่ยงการหยุดชะงักและการเริ่มใหม่ที่ไม่จำเป็น
เครื่องมือและการเข้าถึงที่จำเป็น
- คอมพิวเตอร์หรือแล็ปท็อปพร้อมพอร์ต Ethernet หรือ USB-Ethernet-อะแดปเตอร์
- การเข้าถึงเราเตอร์ผ่านสาย Ethernet (ดีที่สุดคือโดยตรงที่ LAN-port)
- SSH-client เพื่อเชื่อมต่อกับ OpenWRT ที่อยู่ 192.168.1.1 (เช่น terminal ที่มีอยู่ใน Linux หรือ Windows Terminal) ในเว็บอินเตอร์เฟซจะใช้เบราว์เซอร์
- สิทธิ์ผู้ดูแลระบบบนเราเตอร์ (root ใน OpenWRT)
ข้อกำหนดทางระบบและความเข้ากันได้
- เราเตอร์ที่รองรับ OpenWRT และ USB 2.0 หรือ 3.0 สำหรับเชื่อมต่อโมเด็ม สำหรับ 2–8 โมเด็มให้ใช้ USB hub ที่มีพลังงานภายนอก
- พื้นที่แฟลชในเราเตอร์อย่างน้อย 16 MB และ RAM ตั้งแต่ 128 MB (สำหรับโมเด็มหลายตัวและ 3proxy — ควรเป็น 256–512 MB)
- SIM-card หนึ่งหรือหลายใบที่มี тарифข้อมูลที่ใช้งานอยู่ สอบถาม APN กับผู้ให้บริการ
- USB โมเด็มที่รองรับ QMI/MBIM/NCM หรือโหมด HiLink ตัวเลือกที่นิยม ได้แก่ Quectel EC25/EP06/EM12, Huawei E3372 (Stick และ HiLink), ZTE, Sierra Wireless สำหรับฟาร์มที่เสถียรควรเป็นโมเด็ม QMI/MBIM
สิ่งที่ต้องดาวน์โหลดและติดตั้งล่วงหน้า
- ภาพเฟิร์มแวร์ OpenWRT สำหรับโมเดลเราเตอร์ของคุณ (ส่วน Firmware Download บนเว็บไซต์ทางการของ OpenWRT) เลือกการสร้าง factory สำหรับการอัปโหลดจากเฟิร์มแวร์เดิมและ sysupgrade สำหรับการอัปเดตจาก OpenWRT
- รายชื่อแพ็คเกจ: luci, luci-proto-qmi, luci-proto-mbim, luci-proto-ncm, uqmi, umbim, comgt-ncm, kmod-usb-net, kmod-usb-net-qmi-wwan, kmod-usb-net-cdc-mbim, kmod-usb-net-cdc-ncm, kmod-usb-serial-option, usb-modeswitch, 3proxy เราจะแสดงวิธีการติดตั้งผ่าน opkg
- ข้อความแก้ไขสำหรับการเปลี่ยนแปลง config เช่น vi ที่ฝังอยู่ใน OpenWRT หรือ editor ท้องถิ่นโดยการคัดลอกผ่าน SSH
การสำรองข้อมูลและแผนการย้อนกลับ
- เชื่อมต่อคอมพิวเตอร์กับเราเตอร์ผ่านสาย Ethernet
- เปิดเบราว์เซอร์และไปที่ 192.168.1.1 หาก OpenWRT ได้ถูกติดตั้งแล้ว ให้ใส่รหัสผ่านและไปที่ System → Backup/Flash Firmware
- คลิก Generate archive เพื่อดาวน์โหลดสำรองข้อมูลจากการกำหนดค่าปัจจุบัน
- บันทึก archive บนคอมพิวเตอร์ด้วยชื่อที่เข้าใจได้และวันที่ ซึ่งจะช่วยให้กลับไปสู่สภาพการทำงานได้อย่างรวดเร็ว
⚠️ ข้อควรระวัง: ก่อนการแฟลช ให้ตรวจสอบว่าคุณมีสิทธิ์ในการเข้าถึงการกู้คืนของเราเตอร์ (เช่น โหมดการกู้คืน หรือ TFTP) ซึ่งจะช่วยรักษาอุปกรณ์เมื่อการแฟลชไม่สำเร็จ
✅ การตรวจสอบ: ตรวจสอบให้แน่ใจว่าไฟล์สำรองดาวน์โหลดและเปิดเป็น tar-archive ซึ่งภายในควรมองเห็นการตั้งค่าต่างๆ ตรวจสอบว่าคุณรู้วิธีเข้าสู่ Recovery ของเราเตอร์ตามคู่มือของผู้ผลิต
แนวคิดพื้นฐาน
คำศัพท์หลักในภาษาง่าย
- OpenWRT — เฟิร์มแวร์เปิดสำหรับเราเตอร์ที่ให้การควบคุมเต็มรูปแบบเกี่ยวกับเครือข่าย, แพ็กเกจ, และอินเทอร์เฟซ
- โมเด็มมือถือ — อุปกรณ์ USB ที่เชื่อมต่อเราเตอร์กับเครือข่ายมือถือ (3G/4G/5G) และให้ IP-address
- QMI/MBIM/NCM — โปรโตคอลที่โมเด็มใช้สื่อสารกับเราเตอร์ QMI และ MBIM ปกติจะเสถียรและเร็วกว่าในการใช้งาน LTE, NCM มักใช้กับ Huawei/ZTE บางรุ่น
- raw-IP — โหมดที่การส่งข้อมูลจะถูกส่งโดยไม่มี Ethernet-header สำหรับโมเด็ม QMI หลายๆ ตัวคือสิ่งจำเป็น; การเปิดใช้งานจะช่วยเพิ่มความเข้ากันได้
- HiLink — โหมดบางรุ่นของโมเด็มที่โมเด็มตนเองทำ NAT และให้ที่อยู่ IP ภายในแก่เราเตอร์เหมือนการ์ดเน็ตเวิร์กปกติ เริ่มต้นได้ง่าย แต่ความยืดหยุ่นน้อยลง
- พรอกซี — โปรแกรมที่รับคำขอบนเราเตอร์และส่งไปยังอินเทอร์เน็ต เราจะตั้งค่า HTTP(S) พรอกซีที่มีการรับรองความถูกต้อง
มันทำงานอย่างไร
เราเตอร์ที่ใช้ OpenWRT จะเห็นโมเด็ม USB หนึ่งหรือหลายตัวเป็นอินเทอร์เฟซเครือข่ายแยกต่างหาก สำหรับแต่ละอินเทอร์เฟซนั่นจะมาที่อยู่ IP มือถือจากผู้ให้บริการ เซิร์ฟเวอร์พรอกซีจะทำงานบนเราเตอร์และตั้งค่าให้การถ่ายโอนข้อมูลออกจากพอร์ตหนึ่งๆ ผ่านโมเด็มที่เกี่ยวข้อง ผลลัพธ์คือคุณจะมีที่อยู่ในรูปแบบโฮสต์:พอร์ต ซึ่งแต่ละพอร์ตจะตรงกับ IP มือถือของตนเอง
สิ่งที่ต้องเข้าใจก่อนเริ่ม
- โมเด็มแต่ละตัวจะมีอินเทอร์เฟซของตนเอง (เช่น wwan0, wwan1 เป็นต้น) ชื่อและหมายเลขของพวกมันอาจแตกต่างกันขึ้นอยู่กับลำดับการเชื่อมต่อ
- สำหรับโมเด็ม QMI/MBIM มักต้องการให้ตั้งค่า raw-IP; หากไม่มี ก็สามารถเชื่อมต่อได้ แต่ไม่มีการถ่ายโอนข้อมูล
- ในโหมด HiLink โมเด็มจะทำ NAT ด้วยตัวเอง มันจะง่ายกว่า แต่จะยากในการเชื่อมต่อพอร์ตพรอกซีเข้ากับ SIM ตัวเฉพาะเมื่อมีโมเด็มหลายตัว
- ต้องตั้งค่า firewall-zone และ routing table ให้ถูกต้องเพื่อแบ่งแยกข้อมูลของแต่ละพรอกซี
คำแนะนำ: หากคุณวางแผนที่จะใช้มากกว่า 3-4 โมเด็ม ควรเตรียม USB hub ที่มีพลังงานภายนอก 5 วัตต์ 3–5 แอมป์ล่วงหน้า สิ่งนี้จะช่วยแก้ปัญหา 90% เกี่ยวกับความเสถียรและการ overload ทางพลังงาน
ขั้นตอน 1: ทำไมใช้ OpenWRT สำหรับพรอกซีมือถือ
วัตถุประสงค์ของขั้นตอน: เพื่อยืนยันอย่างตั้งใจว่า OpenWRT เป็นแพลตฟอร์มที่เหมาะสมกับภารกิจของคุณและเข้าใจถึงประโยชน์ที่มันมอบให้สำหรับพรอกซีมือถือ
- กำหนดภารกิจของคุณ ตัวอย่าง: ต้องการพรอกซี HTTP(S) มือถือที่เป็นอิสระ 2–6 ตัวสำหรับการทดสอบ การวิเคราะห์ การรวมเข้ากับบริการของคุณ
- เปรียบเทียบความสามารถของ OpenWRT: การroutingที่ยืดหยุ่น การรองรับ QMI/MBIM firewall แพ็คเกจ สคริปต์ cron และการจัดการผู้ดูแลระบบที่ง่ายดายผ่าน LuCI และ SSH
- ประเมินข้อดีเมื่อเปรียบเทียบกับการสร้าง PC: การใช้พลังงานน้อยลง ความกะทัดรัด ความน่าเชื่อถือ การเริ่มต้นอัตโนมัติ และต้นทุนในการขยายตัวที่ต่ำ
- เข้าใจข้อจำกัด: CPU ที่อ่อนแอกว่า x86; RAM และแฟลชน้อยลง; ต้องมีการใส่ใจในการจัดการ logs และการตรวจสอบ
จุดสำคัญ: OpenWRT ทำงานได้อย่างเสถียรเป็นระยะเวลาหลายเดือนโดยไม่ต้องรีบูตเมื่อได้ถูกตั้งค่าอย่างถูกต้อง มันยังง่ายต่อการทำซ้ำและอัปเดต โมเด็มมือถือหลายตัวจะถูกทดสอบกับ OpenWRT
✅ การตรวจสอบ: หากเป้าหมายของคุณคือการมี HTTP(S) พรอกซีมือถือที่เสถียรพร้อมการควบคุม Routing แล้ว OpenWRT ก็เหมาะสม หากคุณต้องการการทำงานที่ซับซ้อน L7 หรือการวิเคราะห์ DPI แบบเรียลไทม์ ให้พิจารณา CPU ของเราเตอร์หรือพิจารณาที่จะใช้ x86
ขั้นตอน 2: สิ่งที่ต้องการ (เราเตอร์ที่เข้ากันได้ โมเด็ม)
วัตถุประสงค์ของขั้นตอน: เพื่อกำหนดและเตรียมเราเตอร์ที่เข้ากันได้ USB โมเด็ม ฮับ SIM-cards และพลังงานเพื่อสร้างฟาร์มที่ไม่มีจุดบอด
การเลือกเราเตอร์
- ตรวจสอบว่าเราเตอร์ของคุณรองรับ OpenWRT ในเวอร์ชันล่าสุดหรือไม่ (สาขาที่เสถียร 23.05.x หรือใหม่กว่า) ข้อแนะนำ: โมเดลที่ใช้ชิพ Mediatek หรือ Qualcomm ที่มี RAM 128–256 MB และพอร์ต USB
- หากคุณวางแผนที่จะใช้โมเด็ม 4+ เครื่อง ให้มองหาผลิตภัณฑ์ที่มี USB 3.0 และ Gigabit Ethernet ความสามารถของ CPU มีความสำคัญสำหรับ 3proxy และ NAT
- ให้แน่ใจว่าเราเตอร์มีวิธีการกู้คืนที่เข้าถึงได้ (Recovery, TFTP) สิ่งนี้สำคัญต่อการแฟลชที่ปลอดภัย
การเลือกโมเด็ม
- สำหรับ LTE โมเด็มที่มี QMI/MBIM เป็นที่ชื่นชอบ: Quectel EC25/EP06/EM12, Sierra Wireless, และบางรุ่นของ ZTE
- Huawei E3372 มักมีในแบบ Stick และ HiLink สำหรับการควบคุม Routing Stick จะเหมาะสมกว่า แต่อาจจะใช้งานง่ายกว่าใน HiLink
- สอบถามผู้ให้บริการเกี่ยวกับการสนับสนุนย่าน LTE/NR ที่จำเป็น สำหรับความเสถียรแนะนำให้มีเสาอากาศและระดับสัญญาณที่ดี
SIM-cards และ APN
- เปิดใช้งาน SIM-cards ล่วงหน้าและปิดใช้งาน PIN ในการตั้งค่าครั้งแรกเพื่อลดการบล็อกการเชื่อมต่อ
- สอบถาม APN กับผู้ให้บริการ: ตัวอย่าง apn.example หากต้องการชื่อผู้ใช้และรหัสผ่าน APN ให้เตรียมทั้งสองไว้
พลังงานและฮับ
- ใช้ USB hub ที่มีพลังงานภายนอกสำหรับโมเด็ม 2+ ตัว
- ตรวจสอบสายเคเบิล: หาสาย USB ที่มีคุณภาพดีซึ่งจะทำให้ลดการสูญเสียและการรบกวน
คำแนะนำ: ติดป้ายแต่ละโมเด็มและพอร์ตที่เกี่ยวข้องในฮับ เพื่อให้คุณเชื่อมต่ออินเทอร์เฟซ wwan0, wwan1 เข้ากับ SIM ที่แท้จริงได้เร็วขึ้น
✅ การตรวจสอบ: คุณต้องมีเราเตอร์ที่มี USB, โมเด็มที่เข้ากันได้, ฮับที่ดีพลังงาน, SIM-cards ที่มี APN ที่ทราบและพลังงานที่เสถียร ทุกอย่างพร้อมสำหรับการแฟลชและการตั้งค่า
ขั้นตอน 3: การติดตั้ง OpenWRT
วัตถุประสงค์ของขั้นตอน: ติดตั้งหรืออัปเดต OpenWRT บนเราเตอร์และให้การเข้าถึงเว็บอินเตอร์เฟซ LuCI และ SSH
การแฟลชจาก OS เริ่มต้น
- เชื่อมต่อ PC เข้ากับ LAN-port ของเราเตอร์ผ่านสาย
- เปิดเบราว์เซอร์ไปที่แอดมินของเฟิร์มแวร์เริ่มต้นของเราเตอร์
- หาส่วนการอัปเดตเฟิร์มแวร์ เลือกภาพ factory ของ OpenWRT สำหรับโมเดลของคุณ
- เริ่มกระบวนการแฟลช อย่าแยกการเชื่อมต่อและรอการรีบูต
การเข้าสู่ OpenWRT ครั้งแรก
- เปิด 192.168.1.1 ในเบราว์เซอร์ ตั้งรหัสผ่านสำหรับ root เมื่อเข้าสู่ LuCI ครั้งแรก
- ไปที่ System → Backup/Flash Firmware และตรวจสอบเวอร์ชัน OpenWRT และส่วนที่สามารถเข้าถึงได้
- เชื่อมต่อผ่าน SSH: ป้อนคำสั่งในเทอร์มินัล ssh root@192.168.1.1 ยืนยันกุญแจเซิร์ฟเวอร์และป้อนรหัสผ่าน
การอัปเดตแพ็คเกจ
- ใช้คำสั่ง: opkg update
- ติดตั้ง LuCI และโปรโตคอลที่จำเป็น (ถ้าหากไม่มี): opkg install luci luci-proto-qmi luci-proto-mbim luci-proto-ncm
- ติดตั้งไดรเวอร์และเครื่องมือ: opkg install kmod-usb-net kmod-usb-net-qmi-wwan kmod-usb-net-cdc-mbim kmod-usb-net-cdc-ncm kmod-usb-serial-option usb-modeswitch uqmi umbim comgt-ncm
⚠️ ข้อควรระวัง: หลังติดตั้งเทียบเคียงโมเด็ม ให้รีบูตเราเตอร์ด้วยคำสั่ง reboot ซึ่งจะรับประกันให้ USB ในการเปิดใช้งานและการกำหนดค่าเริ่มทำงานได้อย่างถูกต้อง
✅ การตรวจสอบ: ใน LuCI คุณสามารถเห็น System → Software ที่มีการติดตั้งแพ็คเกจ ใน SSH คำสั่ง dmesg จะแสดง USB-subsystem ที่พร้อมใช้งาน เวอร์ชัน OpenWRT ที่ถูกต้องและการเข้าถึง 192.168.1.1 มีเสถียรภาพ
ขั้นตอน 4: การตั้งค่าโมเด็มและการเชื่อมต่อเครือข่าย
วัตถุประสงค์ของขั้นตอน: เชื่อมต่อ USB โมเด็ม ตรวจจับมันในระบบอย่างถูกต้อง สร้างอินเทอร์เฟซสำหรับการเชื่อมต่ออินเทอร์เน็ตและตรวจสอบว่าข้อมูลเดินผ่าน
การเชื่อมต่อโมเด็มตัวแรก
- ใส่ SIM-kids เข้าไปในโมเด็ม สำหรับการตั้งค่าครั้งแรกให้ใช้ SIM ที่ไม่มี PIN
- เชื่อมต่อโมเด็มเข้ากับพอร์ต USB ของเราเตอร์หรือกับ USB-hub ที่เปิดให้พอร์ต USB เชื่อมต่อเราเตอร์
- รอประมาณ 10–30 วินาที เรียกใช้คำสั่งใน SSH: dmesg | tail — คุณควรจะเห็นบรรทัดเกี่ยวกับอุปกรณ์ USB ใหม่และเครือข่ายอินเทอร์เฟซ (เช่น wwan0 หรือ cdc-wdm0)
การสร้างอินเทอร์เฟซ QMI/MBIM/NCM ใน LuCI
- เปิด LuCI และไปที่ Network → Interfaces → Add new interface
- ป้อนชื่อเช่น LTE1
- ในช่อง Protocol เลือก QMI Cellular (หรือ MBIM Cellular, หรือ NCM ขึ้นอยู่กับโมเด็ม)
- กด Submit ระบุอุปกรณ์: สำหรับ QMI จะเป็น /dev/cdc-wdm0 สำหรับ MBIM — cdc-wdm0 เช่นเดียวกัน สำหรับ NCM — จะเป็นอะแดปเตอร์เครือข่ายแบบ wwan0 หรือ usb0
- ป้อน APN เช่น apn.example หากต้องการผู้ใช้/รหัสผ่าน APN ให้ป้อนในช่อง username/password
- ปิด PIN ที่จัดให้ในระหว่างการเริ่มต้นครั้งแรก หาก PIN เป็นสิ่งจำเป็นให้กรอกในช่องที่เกี่ยวข้อง
- บันทึกและใช้งานการตั้งค่า (Save & Apply)
การตรวจสอบการเชื่อมต่อ
- เปิด Status → Overview ค้นหาอินเทอร์เฟซใหม่ของคุณ LTE1 และสถานะ ควรได้รับ IP-address จากผู้ให้บริการ
- เรียกใช้ใน SSH: uqmi -d /dev/cdc-wdm0 --get-data-status สำหรับ QMI หรือ mbimcli -d /dev/cdc-wdm0 -p --query-ip-configuration สำหรับ MBIM ควรแสดงว่าเชื่อมต่อและ IP
- ตรวจสอบการเชื่อมต่ออินเทอร์เน็ต: opkg update — หากเสร็จสิ้นด้วยความสำเร็จ การเชื่อมต่อคือเสถียร
คำแนะนำ: หาก IP ไม่ถูกมอบหมาย ลองรีสตาร์ทอินเทอร์เฟซที่ปุ่ม Restart ใน Network → Interfaces ข้างๆ LTE1 จากนั้นตรวจสอบ System → System Log สำหรับข้อความเกี่ยวกับข้อผิดพลาดของ APN หรือการลงทะเบียนในเครือข่าย
✅ การตรวจสอบ: อินเทอร์เฟซ LTE1 มี IP-address, ping 8.8.8.8 หรือคำสั่ง opkg ทำงานได้ แสดงว่าโมเด็มและเครือข่ายถูกตั้งค่าอย่างถูกต้อง
ขั้นตอน 5: โหมด raw-IP หรือ Bridge
วัตถุประสงค์ของขั้นตอน: เปิดใช้งาน raw-IP สำหรับ QMI หรือ NCM โมเด็มบางตัว หรือเลือกโหมด Bridge/HiLink ที่ง่ายกว่าแต่สามารถเข้าใจถึงการแลกเปลี่ยนข้อดีข้อเสีย
เมื่อไหร่ที่ต้องการ raw-IP
- โมเด็ม QMI หลายตัวจะส่งผ่านข้อมูลได้อย่างถูกต้องเฉพาะเมื่ออยู่ในโหมด raw-IP มิฉะนั้นจะสามารถเชื่อมต่อได้ แต่ข้อมูลจะไม่ถูกส่ง
- ใน OpenWRT การตั้งค่า raw-IP สำหรับ QMI จะระบุในการตั้งค่าอินเทอร์เฟซหรืออุปกรณ์
วิธีเปิดใช้งาน raw-IP
- ใน LuCI ให้เปิด Network → Interfaces → LTE1 → Edit → Advanced
- ทำเครื่องหมายหรือกำหนดค่าพารามิเตอร์ raw IP mode (ถ้ามี) ในเวอร์ชัน LuCI ที่ต่างกันอาจเปลี่ยนการจัดรูปแบบ
- บันทึกการตั้งค่าและใช้งาน รีสตาร์ทอินเทอร์เฟซ LTE1 หากพารามิเตอร์ไม่สามารถใช้งานได้ ให้ใช้ UCI: uci set network.LTE1.raw_ip='1'; uci commit network; /etc/init.d/network restart
โหมด Bridge (HiLink)
- หากโมเด็ม HiLink มันทำการเชื่อมต่อเองและให้ช่วง IP ผ่าน DHCP บนอุปกรณ์ที่เหมือน eth1 หรือ usb0
- สร้างอินเทอร์เฟซแบบ DHCP Client แทนที่จะเป็น QMI/MBIM ระบุอุปกรณ์ที่เกี่ยวข้องและแอปพลิเคชั่นการกำหนดค่า
จุดสำคัญ: ใน HiLink จะเริ่มต้นง่ายกว่า แต่ยากที่จะมีการเชื่อมโยงพอร์ตพรอกซีไปยังโมเด็มที่แน่นอนเมื่อใช้หลายอุปกรณ์ QMI/MBIM จะให้การควบคุม Routing และการทำงานที่ดีกว่า
คำแนะนำ: สำหรับฟาร์มที่มีโมเด็ม 3+ ตัว QMI/MBIM กับ raw-IP จึงเป็นทางเลือกที่สำคัญ ในการเริ่มใช้งานโมเด็มตัวเดียวกลับใช้ HiLink ได้ จากนั้นค่อยเปลี่ยนไปใช้ QMI/MBIM
✅ การตรวจสอบ: เมื่อเปิดใช้งาน raw-IP การ ping และการดาวน์โหลดรายชื่อแพ็คเกจทำงานได้อย่างราบรื่น ระบบ Log ไม่มีข้อผิดพลาดเกี่ยวกับการเรียงรูปแบบหรือการหมดเวลา
ขั้นตอน 6: การเชื่อมต่อซอฟต์แวร์พรอกซี
วัตถุประสงค์ของขั้นตอน: ติดตั้งและตั้งค่า 3proxy ให้แต่ละพอร์ตพรอกซีใช้อินเทอร์เฟซมือถือที่ต้องการ ตั้งค่าการอนุญาตและความปลอดภัยพื้นฐาน
การติดตั้ง 3proxy
- ผ่าน SSH ให้ทำการอัปเดตดัชนีแพ็คเกจ: opkg update
- ติดตั้ง 3proxy: opkg install 3proxy
- ตรวจสอบให้แน่ใจว่าบันทึกไบนารีถูกติดตั้ง: which 3proxy ควรส่งคืนเส้นทาง เช่น /usr/bin/3proxy
การกำหนดค่าพื้นฐานสำหรับพรอกซีหนึ่งตัว
- สร้างไฟล์ /etc/3proxy/3proxy.cfg หากไฟล์ไม่มีอยู่ 3proxy จะสร้างขึ้นเมื่อเริ่มใช้งานครั้งแรกแนะนำให้สร้างด้วยตนเอง
- เพิ่มข้อมูลผู้ใช้: users user1:CL:pass1 นี่คือบรรทัดสำหรับการอนุญาตเบื้องต้นของ HTTP
- จำกัดการเข้าถึง: allow user1 กฎนี้จะอนุญาตให้ผู้อื่นที่เป็นผู้ใช้ user1
- กำหนดที่อยู่ภายในในการฟัง: internal 0.0.0.0 เพื่อให้รับการเชื่อมต่อจากทุกอินเทอร์เฟซใน LAN
- กำหนดอินเทอร์เฟซภายนอก: external wwan0 เปลี่ยนเป็นอินเทอร์เฟซของโมเด็มของคุณ เช่น wwan0 สำหรับ LTE1
- เริ่มการทำงาน HTTP-proxy ที่พอร์ตเช่น 3128: proxy -p3128 -a คำสั่ง -a เปิดการรองรับการอนุญาต
- บันทึกไฟล์และเริ่มบริการ: /etc/init.d/3proxy enable; /etc/init.d/3proxy start
การตั้งค่าพรอกซีหลายตัวสำหรับโมเด็มหลายตัว
- เชื่อมต่อโมเด็มที่สองและปรับแต่งอินเทอร์เฟซที่สอง (เช่น LTE2 ด้วยอุปกรณ์ /dev/cdc-wdm1 และชื่อ wwan1)
- เพิ่มบัญชีสำหรับพรอกซีที่สอง: users user1:CL:pass1, user2:CL:pass2
- สร้างบล็อกแยกสำหรับพอร์ตที่สอง: allow user2; external wwan1; proxy -p3129 -a ดังนั้นพอร์ต 3129 จะออกผ่าน wwan1
- รีสตาร์ท 3proxy: /etc/init.d/3proxy restart
Firewall และการเชื่อมต่อ Routing
- ตรวจสอบว่าอินเทอร์เฟซ LTE1, LTE2 อยู่ในโซน wan หรือในโซนแยกที่มีการทำ NAT ที่เกี่ยวข้อง (NAT) ใน LuCI: Network → Firewall → Zones
- หากคุณใช้ท่อภายนอกของ 3proxy การตั้งค่าการ Routing ที่เพิ่มไม่จำเป็น แต่อาจแนะนำเพื่อความแน่ใจ ให้ใช้ policy-based routing บนพื้นฐานของที่อยู่ออก 3proxy หรือ fwmark
- สำหรับ OpenWRT แพ็คเกจ mwan3 ที่สะดวกในการบริหารจัดการหลายอินเทอร์เฟส wan อย่างไรก็ตาม สำหรับฟาร์มที่ต้องการการเชื่อมต่อพอร์ตเครือข่ายเข้ากับอินเทอร์เฟซอย่างเข้มงวด แนะนำให้ใช้ external ใน 3proxy และกฎ ip rule ที่คงที่
คำแนะนำ: เพื่อความง่าย เริ่มต้นด้วยกลไก external ใน 3proxy หากในอนาคตคุณต้องการRouting TCP/UDP อย่างละเอียดยิ่งขึ้น ให้เพิ่มกฎ mangle ของ iptables และกฎ ip rule
✅ การตรวจสอบ: เชื่อมต่อกับพรอกซีที่พอร์ต 3128 โดยใช้ชื่อผู้ใช้ user1 และรหัสผ่าน pass1 เรียกใช้ curl -x http://user1:pass1@ROUTER_LAN_IP:3128 https://ifconfig.me และตรวจสอบว่าที่อยู่ IP สาธารณะเข้ากับอินเทอร์เฟซ LTE1 จากนั้นตรวจสอบพอร์ต 3129 และเปรียบเทียบ IP สำหรับ LTE2
การตรวจสอบผลลัพธ์
วัตถุประสงค์ของขั้นตอน: ตรวจสอบว่าองค์ประกอบทั้งหมดทำงานได้จริง แต่ละพรอกซีออกไปยังอินเทอร์เน็ตผ่านโมเด็มของตนเอง และประสิทธิภาพและความเสถียรตรงตามความคาดหวัง
รายการตรวจสอบ
- สามารถเข้าถึง LuCI และ SSH ที่ 192.168.1.1 ได้
- อินเทอร์เฟซ LTE1, LTE2 และอื่น ๆ ถูกเปิดขึ้นและได้รับ IP จากผู้ให้บริการ
- 3proxy กำลังทำงานและฟังพอร์ต (เช่น 3128, 3129)
- การอนุญาตเข้าสู่พรอกซีได้รับการร้องขอและผ่าน
- IP สาธารณะในแต่ละพอร์ตจะแตกต่างกัน (สำหรับ SIM ที่แตกต่าง) หรือตรงกับโมเด็มที่ต้องการ
วิธีทดสอบ
- ตรวจสอบพอร์ต: จาก PC ให้เรียกใช้ telnet ROUTER_LAN_IP 3128 การเชื่อมต่อ TCP ควรเกิดขึ้น
- ตรวจสอบ IP สาธารณะ: curl -x http://user1:pass1@ROUTER_LAN_IP:3128 https://ifconfig.me และในลักษณะเดียวกันสำหรับ 3129 กับ user2
- ตรวจสอบความเร็ว: ใช้ curl ดาวน์โหลดไฟล์ทดสอบและประเมินแบนด์วิธ หรือใช้งาน speedtest-cli ผ่านพรอกซี (ถ้าเป็นไปได้)
- ตรวจสอบการคงสภา: เปิดการเชื่อมต่อยาวผ่านพรอกซีแล้วตรวจสอบว่าการเชื่อมต่อนั้นไม่ถูกตัดในระยะเวลาหลายชั่วโมง
คำแนะนำ: ถ้าไม่มีการเข้าถึงจากภายนอก ควรจำกัดการเข้าถึงพรอกซีเฉพาะภายใน เครือข่ายใน 3proxy สามารถให้ฟังภายใน 192.168.1.1 และเปิดเฉพาะพอร์ตที่ต้องการใน LAN
✅ การตรวจสอบ: IP สาธารณะถูกระบุและแตกต่างกันระหว่างพอร์ต คำสั่ง opkg และ ping เสถียร Logs ของ 3proxy ไม่มีข้อผิดพลาดเกี่ยวกับการเชื่อมต่ออย่างต่อเนื่อง
ข้อผิดพลาดทั่วไปและการแก้ไข
- ปัญหา: อินเทอร์เฟซ LTE1 เปิดขึ้น แต่ไม่มีอินเทอร์เน็ต สาเหตุ: raw-IP ไม่ถูกเปิดใช้งานสำหรับ QMI หรือ APN ที่ไม่ถูกต้อง การแก้ไข: เปิดใช้งาน raw-IP ในการตั้งค่าอินเทอร์เฟซ ตรวจสอบ APN และรีสตาร์ทเครือข่าย
- ปัญหา: 3proxy ทำงานอยู่ แต่การส่งข้อมูลผ่านโมเด็มที่ไม่ถูกต้อง สาเหตุ: ไม่มีการระบุ external สำหรับอินเทอร์เฟซที่ต้องการหรือมีการปะทะกันกับกฎการเชื่อมต่อ การแก้ไข: ระบุ external wwanX รีสตาร์ท 3proxy ถ้าต้องการให้เพิ่มกฎ ip ตาม fwmark
- ปัญหา: เมื่อใช้โมเด็มสองตัวหรือมากกว่านั้น บางครั้งการส่งข้อมูลหาย สาเหตุ: การขาดพลังงานจาก USB-hub, โมเด็มได้รับความร้อนเกินไป หรือสัญญาณอ่อน การแก้ไข: ใช้ฮับที่มีพลังงานที่ดี สายที่มีคุณภาพสูง แนะนำให้ใช้เสาอากาศ ลดจำนวนโมเด็มลงสำหรับแต่ละฮับ
- ปัญหา: ไม่สามารถเข้าสู่ LuCI หลังการแฟลช สาเหตุ: เบราว์เซอร์เก็บข้อมูลเก่าไว้หรือเราเตอร์ไม่ตั้งค่าที่อยู่ การแก้ไข: เปิดในโหมดไม่ระบุตัวตน ตรวจสอบการตั้งค่าเครือข่าย PC ของคุณ หากจำเป็นให้รีเซ็ตเราเตอร์ด้วยปุ่ม Reset ตามคู่มือของผู้ผลิต
- ปัญหา: พรอกซีไม่สามารถเข้าถึงได้จากเครือข่ายของคุณ สาเหตุ: Firewall ปิดพอร์ตหรือ 3proxy ฟังไม่ถูกที่อยู่ การแก้ไข: ตรวจสอบ internal ใน 3proxy.cfg, เปิดพอร์ตใน Zone LAN, รีสตาร์ทบริการ
- ปัญหา: ผู้ให้บริการเปลี่ยน IP บ่อยเกินไปหรือไม่สามารถแนบ IP สาเหตุ: เงื่อนไขของแพ็กเกจ, CGNAT, นโยบายของผู้ประกอบการ การแก้ไข: รีสตาร์ทอินเทอร์เฟซหรือโมเด็มตามตาราง เวลาไม่มีการสนับสนุนการเปลี่ยน IMSI ควรตรวจสอบแพ็กเกจที่ใช้ SIM ที่แตกต่างกัน
- ปัญหา: opkg ไม่ติดตั้งแพ็กเกจ สาเหตุ: ไม่มี DNS/เส้นทางหรือการเข้าถึงรีพอซิทอรีถูกบล็อก การแก้ไข: ตรวจสอบ DNS ที่ Network → Interfaces → LAN เพิ่ม 8.8.8.8 เป็น DNS-server ชั่วคราว ตรวจสอบว่าการเชื่อมต่อกับอินเทอร์เน็ตทำงานได้
คำแนะนำ: ในการวินิจฉัยปัญหาเครือข่ายให้ใช้ tcpdump บน wwan0 ติดตั้ง tcpdump: opkg install tcpdump จากนั้น tcpdump -i wwan0 host 8.8.8.8 เพื่อตรวจสอบว่าข้อมูลถูกส่งออกไปหรือไม่
ฟีเจอร์เพิ่มเติม
การขยายตัวไปยังโมเด็ม 3-8 ตัว
- ให้ชื่อสำหรับอินเทอร์เฟซ: กำหนดชื่อ LTE1, LTE2, LTE3 ใน LuCI และติดตามว่าโมเด็มไหนเชื่อมต่อกับอุปกรณ์ /dev/cdc-wdmX
- สร้างใน 3proxy บล็อกแยก สำหรับแต่ละโมเด็ม: ผู้ใช้ของตัวเอง พอร์ตของตัวเอง และ external ของตัวเอง
- แก้ไข firewall: แต่ละ WAN-zone ต้องอนุญาตให้มีข้อมูลออกและการทำ NAT หากใช้โซนแยก ตรวจสอบการส่งต่อจาก LAN ไปยังแต่ละโซน
การเชื่อมต่ออัตโนมัติและการกำหนดเวลาทำงาน
- สร้างสคริปต์ที่ตรวจสอบการเชื่อมต่อภายนอกทุก N นาทีผ่านอินเทอร์เฟซที่เฉพาะเจาะจง หากไม่มีการตอบสนอง ให้ทำการ ifdown LTE1; sleep 5; ifup LTE1
- เพิ่มงานใน cron: ใน LuCI System → Scheduled Tasks ให้เพิ่มบรรทัดในรูปแบบ */15 * * * * /usr/bin/สคริปต์ของคุณ.sh
- บันทึกกิจกรรมไปยัง /var/log/proxy-rotate.log เพื่อดูประวัติการเชื่อมต่อใหม่
การตรวจสอบและบันทึก
- เปิดใช้งานการบันทึกใน 3proxy ในไฟล์แยกกัน จำกัดการหมุนเวียนของ logs เพื่อไม่ให้เต็มพื้นที่แฟลช
- ใช้ netdata หรือ collectd เพื่อติดตาม CPU, RAM, อินเทอร์เฟซ ตรวจสอบการติดตั้งแพคเกจอย่างรอบคอบตามขีดจำกัดทางความจำ
การเพิ่มประสิทธิภาพ
- ปิดบริการที่ไม่จำเป็นออกไปเพื่อให้มี RAM ว่าง
- เมื่อมีโหลดสูง เปิดใช้งาน offloading ตามที่สามารถทำได้และปลอดภัย
- ใช้สาย USB ที่สั้นและมีคุณภาพ ตรวจสอบว่าโมเด็มไม่ทำการ throttling ด้วยความร้อน หากจำเป็นให้เพิ่มพัดลม
การเข้าถึงจากภายนอกและความปลอดภัย
- หากต้องการเชื่อมต่อพรอกซีจากเครือข่ายภายนอก ให้ตั้งค่าการส่งต่อพอร์ตในเราเตอร์ภายนอก หรือทำให้แน่ใจว่าคุณมี IP สาธารณะใน WAN
- เพิ่มการรับรองความถูกต้องใน 3proxy จำกัดการเข้าถึงให้เฉพาะ IP ที่ได้รับอนุญาตเท่านั้น ทำงานภายใต้กรอบกฎหมายเท่านั้น
คำแนะนำ: สำหรับการใช้งานเชิงพาณิชย์และการขยายตัวอย่างรวดเร็วให้พิจารณาแผงควบคุมและบริการการจัดการพรอกซีมือถือที่มีอยู่ เช่น MobileProxy.space ที่ช่วยให้การทำงานของคุณง่ายขึ้น แต่ในคู่มือนี้คุณได้สร้างทุกอย่างด้วยมือเพื่อความเข้าใจในรายละเอียด
หากคุณต้องการกลับไปยังรายละเอียดการติดตั้ง 3proxy โปรดดูในส่วน “ขั้นตอน 6: การเชื่อมต่อซอฟต์แวร์พรอกซี” หากมีคำถามเกี่ยวกับการเลือกโหมดการเข้าถึงเครือข่ายโมเด็ม ให้ตรวจสอบใน “ขั้นตอน 5: โหมด raw-IP หรือ Bridge”
คำถามที่พบบ่อย
- สามารถเชื่อมต่อโมเด็มได้กี่ตัวที่เราเตอร์เดียว? ขึ้นอยู่กับพลังงานของ USB-subsystem และแหล่งจ่ายไฟ โดยทั่วไปสามารถเชื่อมต่อได้ 2–4 โมเด็มอย่างไม่มีปัญหา และ 6–8 โมเด็มกับฮับที่มีพลังงานและสามารถใช้งานได้อย่างเชื่อถือได้
- วิธีการทราบว่าอินเทอร์เฟซใดเชื่อมต่อกับโมเด็มตัวไหน? เชื่อมต่อโมเด็มทีละตัวและตรวจสอบ dmesg จากนั้นเปลี่ยนชื่ออินเทอร์เฟซใน LuCI ผ่าน System → Network Devices ตามที่เป็นไปได้ การกำหนดสายเคเบิลก็มีประโยชน์เช่นกัน
- ต้องการ raw-IP หรือไม่? สำหรับโมเด็ม QMI หลายตัว เป็นสิ่งที่จำเป็น ถ้าเชื่อมต่อแล้วแต่ไม่มีข้อมูลให้เปิดใช้ raw-IP
- จะทำให้แต่ละพอร์ตพรอกซีใช้โมเด็มเดิมอย่างไร? ใน 3proxy ให้ระบุ external wwanX สำหรับแต่ละบล็อกและหลีกเลี่ยงการจัดเรียงโมเด็มตามพอร์ต USB สร้างให้โมเด็มแน่น
- สามารถใช้พรอกซีเซิร์ฟเวอร์อื่นแทน 3proxy ได้หรือไม่? ใช่ tinyproxy หรือ mitmproxy แต่ 3proxy จะมีความเบาและให้ความสบายที่สุดในการเชื่อมโยง external
- จะเปลี่ยน IP ของผู้ให้บริการอัตโนมัติได้อย่างไร? ไม่มีการยืนยันขึ้นอยู่กับผู้ให้บริการ คุณอาจรีสตาร์ทอินเทอร์เฟซหรือโมเด็มตามตาราง เวลา โดยไม่คำนึงถึงการปฏิบัติทุกอย่างอยู่ภายใต้ข้อตกลงของผู้ให้บริการ
- จะตรวจสอบความเสถียรได้อย่างไร? ping node ภายนอก และคำขอ curl Periodic ผ่านพรอกซีแต่ละตัว การตรวจสอบ logs และการแจ้งเตือนเมื่อไม่สามารถเข้าถึงได้
- ถ้าด้วยที่ว่างในแฟลชไม่เพียงพอจะทำอย่างไร? ลบแพ็คเกจที่ไม่จำเป็น โอนบันทึกไปยัง tmp หรือที่เก็บภายนอก ใช้ OpenWRT ที่มีการจัดการแบบจัดลด
- สามารถใช้ IPv6 ได้หรือไม่? ใช่ หากผู้ให้บริการให้บริการ IPv6 conferring คุณต้องตั้งค่าโปรโตคอลที่พร้อมใช้งานในอินเทอร์เฟซและตรวจสอบว่า 3proxy จัดการ IPv6 เมื่อจำเป็น
- เหมาะสำหรับการรวมเข้ากับบริการวิเคราะห์และการ parser หรือไม่? ใช่ หากทำตามกฎทางกฎหมาย เช่นเดียวกับเว็บไซต์ของคุณและ API ระมัดระวังในการควบคุมวิธีการของผู้ให้บริการและความเร็วของสาย
คำแนะนำ: ก่อนใช้งานจริงทดสอบให้นาน: 2–4 ชั่วโมง ในการร้องขออย่างต่อเนื่องผ่านพอร์ตพรอกซีแต่ละตัวลงบันทึกใน logs และวิเคราะห์ข้อผิดพลาดและการแฝง
บทสรุป
คุณได้ผ่านมาอย่างครบถ้วน: เตรียมอุปกรณ์ติดตั้ง OpenWRT ตั้งค่าโมเด็มมือถือในโหมด QMI/MBIM/NCM ถ้าจำเป็นเปิดใช้งาน raw-IP ติดตั้ง 3proxy และทำให้แน่ใจว่าพอร์ตพรอกซีแต่ละพอร์ตวิ่งผ่านอินเทอร์เฟซของตนเอง คุณได้เรียนรู้วิธีตรวจสอบผลลัพธ์ผ่าน curl และ log และจัดการกับข้อผิดพลาดทั่วไป และรู้วิธีขยายฟาร์มไปยังโมเด็มหลายตัวพร้อมการเริ่มใหม่โดยอัตโนมัติ การตรวจสอบ และการรักษาความปลอดภัย ตอนนี้คุณสามารถใช้งานฟาร์มพรอกซีของคุณสำหรับงานอัตโนมัติที่ถูกต้องตามกฎหมาย งานทดสอบ และการรวมเข้ากับบริการต่างๆ และยังสามารถพัฒนาสิ่งนี้ไปอีก — เพิ่มโมเด็มใหม่ ปรับปรุงการจัดการเส้นทางและตรรกะของการสำรองข้อมูล ตั้งค่าโปรแกรมกำหนดเวลาและการตรวจสอบ
หากคุณต้องการแผงควบคุมที่เป็นสากลและเครื่องมือการกำจัดที่พร้อมใช้งาน เพื่อการขยายตัวที่รวดเร็ว ให้ศึกษาความสามารถของทางเลือกเชิงพาณิชย์และบริการ เช่น MobileProxy.space แต่ในตอนนี้คุณมีการทำงานด้วยตนเองที่สร้างขึ้นบน OpenWRT ซึ่งมีการควบคุมและความเข้าใจในแต่ละส่วนถึงที่สุด ขอให้โชคดีในการใช้งานและการขยาย!