ฉันก็ต้องทำสิ่งที่คล้ายกันเมื่อเร็ว ๆ นี้และในการค้นหามากับคำตอบนี้ น่าเสียดายที่คำตอบของ Nafe ใช้ipfwซึ่งขณะนี้เลิกใช้แล้วและไม่สามารถใช้งานได้ใน OSX และคำตอบของ Kevin Leary ย่อมเป็นเรื่องเล็กน้อย ดังนั้นฉันต้องทำให้ดีขึ้น (สะอาดขึ้น) และตัดสินใจแบ่งปันที่นี่เพื่อลูกหลาน คำตอบนี้ส่วนใหญ่ขึ้นอยู่กับวิธีการที่กล่าวถึงส่วนสำคัญนี้
ตามที่ระบุใน OP การชี้เบราว์เซอร์ที่ 192.168.99.100 ควรได้รับการตอบสนองจากเซิร์ฟเวอร์ที่ localhost: 8000 การเพิ่มชื่อแทนไปยังifconfigไม่จำเป็นจริงๆpfctlเพียงอย่างเดียวก็เพียงพอแล้วเพื่อให้ได้pf.confไฟล์นี้ตามที่/etc/pf.confจำเป็นต้องแก้ไข
ครั้งแรกที่เราสร้าง (กับ sudo) ไฟล์สมอใหม่ (ขอเรียกว่า   redirection) /etc/pf.anchors/redirectionได้ที่: นี้นั้นเป็นไฟล์ข้อความปกติและมีบรรทัดต่อไปนี้ rdr pass on lo0 inet proto tcp from any to 192.168.99.100 port = 80 -> 127.0.0.1 port 8000(เช่นเดียวกับในคำตอบของเควินแลร์รี่ส์): เมื่อสร้างไฟล์จุดยึดใหม่แล้วจะต้องมีการอ้างอิงภายในpf.confไฟล์ เปิดpf.confไฟล์ด้วย sudo และเพิ่มrdr-anchor "redirection"หลังจากบรรทัด rdr-anchor สุดท้าย (ซึ่งคือrdr-anchor "com.apple/*") และเพิ่มload anchor "redirection" from "/etc/pf.anchors/redirection"ที่ท้าย
ท้ายที่สุดนี่คือสิ่งที่ไฟล์ pf.conf ควรมีลักษณะดังนี้:
scrub-anchor "com.apple/*"
nat-anchor "com.apple/*"
rdr-anchor "com.apple/*"
rdr-anchor "redirection"  #added for redirection/port forwarding
dummynet-anchor "com.apple/*"
anchor "com.apple/*"
load anchor "com.apple" from "/etc/pf.anchors/com.apple"
load anchor "pow" from "/etc/pf.anchors/redirection"  #added for redirection/port forwarding
และมันเกือบจะ เพิ่งเริ่มต้นใหม่pfctlโดยออกsudo pfctl -dเพื่อปิดใช้งานก่อนแล้วจึงsudo pfctl -fe /etc/pf.confเริ่มใหม่อีกครั้ง
ตอนนี้ถ้าคุณต้องการสิ่งนี้เกิดขึ้นโดยอัตโนมัติหลังจากการรีสตาร์ททุกครั้งงานเล็ก ๆ น้อย ๆ ที่ต้องทำคือ: daemon เรียกใช้สำหรับpfctlความต้องการที่จะได้รับการปรับปรุง (ส่วนที่อ้างถึงกล่าวถึงว่า pf ถูกเปิดใช้งานโดยอัตโนมัติ กรณีจากการดูรหัส) เปิด (ด้วย sudo) System/Library/LaunchDaemons/com.apple.pfctl.plistและค้นหาสิ่งนี้:
<array>
          <string>pfctl</string>
          <string>-f</string>
          <string>/etc/pf.conf</string>
</array>
และเพิ่มบรรทัด<string>-e</string>เพื่อทำให้เป็นดังนี้:
<array>
         <string>pfctl</string>
         <string>-e</string>
         <string>-f</string>
         <string>/etc/pf.conf</string>
</array>
ที่ควรทำ 
Caveat : Apple ไม่อนุญาตให้เปลี่ยนไฟล์อสูรการเรียกใช้เช่นนั้นอีกต่อไป (ไม่ใช่กับ sudo, หรือ chmod หรืออะไรอย่างอื่น) เพียงวิธีที่เป็นคนจรจัดกับระบบความสมบูรณ์ของการป้องกันการตั้งค่า: บูตเข้าสู่โหมดการกู้คืนและสถานีการเปิดตัว ตรวจสอบสถานะ SIP ด้วยcsrutil statusโดยทั่วไปควรเปิดใช้งาน ปิดใช้งานด้วยcsrutil disableและรีบูตในโหมดปกติจากนั้นทำการเปลี่ยนแปลงไฟล์ plist ตามที่กล่าวไว้ข้างต้น เมื่อเสร็จแล้วให้กลับไปที่โหมดการกู้คืนและเปิดใช้งานการป้องกัน (มันในสถานที่สำหรับเหตุผลที่ดี) csrutil enableโดยการออก
คำอธิบาย: หนึ่งสามารถตรวจสอบโดยการออกifconfigคำสั่งที่127.0.0.1มีนามแฝง (ค่าเริ่มต้น) สำหรับ localhost lo0 - ข้อเท็จจริงนี้กำลังถูกใช้เพื่อหลีกเลี่ยงการเพิ่มนามแฝงพิเศษสำหรับ localhost และเพียงแค่ใช้ที่อยู่เริ่มต้นในpf.confไฟล์ 
อัปเดต: น่าเสียดายดูเหมือนว่าการโหลดไฟล์เมื่อเริ่มต้นไม่ทำงาน ฉันยังคงพยายามขอความช่วยเหลือจากมัน จนกว่าจะถึงตอนนั้นการเรียกใช้sudo pfctl -f /etc/pf.confหลังจากเริ่มต้นขึ้นจะเป็นการหลอกลวง