วิธีเปลี่ยนเส้นทางปริมาณการใช้งานบน Raspberry จาก USB dongle WiFi ไปยังแอปพลิเคชันในเครื่อง


1

สวัสดีตอนเช้าสุภาพบุรุษ RPi 2 ของฉันเป็นจุดเชื่อมต่อที่ใช้งานได้กับดองเกิล WiFi สองตัว (แต่ละอันมีที่อยู่ IP ของตัวเอง); RPi เชื่อมต่อผ่านสาย LAN ไปยังโมเด็มของฉันด้วย

เป็นบริการพื้นฐานที่สุดของจุดเชื่อมต่อ / พร็อกซี: ใช้การเชื่อมต่อขาเข้าทั้งในส่วนต่อประสาน WiFi และส่งข้อมูลไปยังโมเด็มของฉันผ่านสาย LAN ไปยังอินเทอร์เน็ตภายนอก

ดีมาก: ตอนนี้ฉันต้องการให้ RPi ของฉันเป็นผู้จัดการ QOS: ไม่เพียง แต่มันจะส่งและรับข้อมูล แต่มันจะให้ความสำคัญกับการเชื่อมต่อบางประเภท (เช่นสตรีมมิ่งผ่าน SMTP)

โปรแกรมของฉันจะทำเช่นนั้น แต่ฉันทดสอบบนแล็ปท็อปของฉันเท่านั้นและตอนนี้ฉันจะใส่โปรแกรมของฉันลงใน RPi ของฉัน โปรแกรมของฉันยอมรับการเชื่อมต่อขาเข้าบนพอร์ตคงที่ (8000): บนแล็ปท็อปของฉันฉันติดตั้งปลั๊กอินบนเบราว์เซอร์ซึ่งเปลี่ยนเส้นทางการรับส่งข้อมูลบนพอร์ต 8000 และดูเหมือนว่าจะทำงานได้ดี

ตอนนี้ฉันจะใส่ไว้ใน RPi แต่ฉันไม่รู้วิธีเปลี่ยนเส้นทางการรับส่งข้อมูลจากดองเกิล WiFi ทั้งสองไปยังโปรแกรมของฉันที่พอร์ต 8000

ฉันไม่มีความรู้เกี่ยวกับการกำหนดเส้นทาง แต่ฉันคิดว่าสิ่งนี้สามารถทำได้ด้วยiptablesกฎสองประการเช่น:

iptables -t nat -A PREROUTING -i wlan0 -p tcp -j REDIRECT --to-port 8000
iptables -t nat -A PREROUTING -i wlan1 -p tcp -j REDIRECT --to-port 8000

ถึงกระนั้นกฎทั้งสองนี้ก็ใช้ไม่ได้เลย: การรันโปรแกรมของฉันบน RPi ของฉันด้วยiptablesกฎทั้งสองไม่แสดงผลลัพธ์ดังนั้นการเชื่อมต่อจะไม่ถูกเปลี่ยนเส้นทางไปยังพอร์ต 8000 ซึ่งโปรแกรมของฉันกำลังฟังอยู่

ฉันเห็นตัวอย่างที่การเปลี่ยนเส้นทางจำเป็นต้องมีการ--dportตั้งค่าสถานะด้วย แต่ฉันไม่ทราบว่าพอร์ตนี้จะเป็นอย่างไร

นี่คือiptablesกฎปัจจุบันของฉันเกี่ยวกับ RPi:

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i wlan0 -o eth0 -j ACCEPT
-A FORWARD -i eth0 -o wlan1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i wlan1 -o eth0 -j ACCEPT
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.