พอร์ต pfctl ส่งต่อใน Mac osx?


16
-A PREROUTING -s 10.0.10.0/24 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
-A PREROUTING -s 10.0.10.0/24 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8080
-A POSTROUTING -s 10.0.10.0/24 -o eth0 -j MASQUERADE
COMMIT

รหัสข้างต้นเป็นรหัสที่ฉันใช้เพื่อส่งต่อปริมาณข้อมูลใน linux

ตอนนี้ฉันต้องทำสิ่งเดียวกันใน Mac OSX 10.8 ถ้าเป็นเรื่องสำคัญ

ดังนั้นนี่คือข้อตกลง

ก่อนหน้านี้ฉันใช้พร็อกซีเพื่อเชื่อมต่อกับเครื่อง linux และใช้พร็อกซีนั้นฉันสามารถตรวจสอบปริมาณการใช้งาน mitmproxy

ตอนนี้สำหรับ mac ฉันใช้การแชร์อินเทอร์เน็ตในตัวและต้องการใช้ mitmproxy ซึ่งรับฟังเฉพาะข้อมูลจากพอร์ต 8080 เท่านั้น

bridge0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    ether ac:de:48:81:1d:4a 
    inet 192.168.2.1 netmask 0xffffff00 broadcast 192.168.2.255
    Configuration:
        priority 0 hellotime 0 fwddelay 0 maxage 0
        ipfilter disabled flags 0x2
    member: en0 flags=3<LEARNING,DISCOVER>
             port 5 priority 0 path cost 0

ด้านบนคือ "การเชื่อมต่อที่ใช้ร่วมกัน" ที่ฉันต้องส่งต่อฉันเชื่อว่า

คำตอบ:


23

สมมติว่าคำขอเข้าชมเว็บทั้งหมดของคุณจะมาจาก192.168.2.0/24และส่วนต่อประสานbridge0

เพิ่มกฎต่อไปนี้เพื่อ/etc/pf.conf

rdr pass on bridge0 inet proto tcp from 192.168.2.0/24 to any port http -> 127.0.0.1 port 8080
rdr pass on bridge0 inet proto tcp from 192.168.2.0/24 to any port https -> 127.0.0.1 port 8080

เคล็ดลับด่วน

  1. ทดสอบ pf.conf เพื่อหาข้อผิดพลาดทางไวยากรณ์

    pfctl -v -n -f /etc/pf.conf
    
  2. ใช้ / โหลดกฎใหม่

    pfctl -f /etc/pf.conf
    

นี่คือสูตรชีทสำหรับ OS X pfctl


3
pfดูเหมือนจะไม่สามารถเปิดใช้งานโดยค่าเริ่มต้นดังนั้นคุณอาจต้องเพิ่มธง:-e pfctl -ef /etc/pf.conf
สนใจเว็บ

4
มันบอกว่าข้อผิดพลาดทางไวยากรณ์
Hitesh Joshi

@HiteshJoshi: ฉันมีปัญหาเดียวกัน สำหรับฉันการย้ายเส้นแบ่งระหว่างบรรทัดด้วย "rdr-anchor" และ "dummynet-anchor" แก้ไข
Albin
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.