จะเปลี่ยนเส้นทางพอร์ต 80 ไปที่ 8080 อย่างถาวรบน OS X ได้อย่างไร


9

ใน OS X 10.6 คุณไม่มีiptablesดังนั้นวิธีแก้ไขปัญหาทั้งหมดสำหรับการเปลี่ยนเส้นทางคำขอทั้งหมดที่ส่งไปยังพอร์ต 80 ไปยังพอร์ตอื่นอย่างถาวรเช่น 8080 คืออะไร

มันจะต้องขัดขืน


ฉันอยากจะแนะนำrinetdเพราะมันง่ายมากฉันคิดว่ามันจะรวบรวมได้ทุกที่ แต่ดูเหมือนจะไม่มีพอร์ตไปยัง OS X โชคไม่ดี ...
Nicolas Raoul

ฉันไม่สามารถโพสต์สิ่งนี้เป็นคำตอบเพราะคำถามนี้ได้รับการปกป้อง แต่ฉันประสบความสำเร็จอย่างมากในการใช้เซิร์ฟเวอร์ Apache ในตัวเพื่อเปลี่ยนเส้นทางไปยังพอร์ตอื่น เพิ่มต่อไปนี้ในตอนท้ายของ /etc/apache2/httpd.conf: <Location />\nProxyPass http://localhost:8080/\n</Location>(โดยที่\nเป็นบรรทัดใหม่) จากนั้นเปิดใช้งาน "Internet Sharing" ในการตั้งค่าระบบ
โทเบียส

คำตอบ:


10

ใช้ ipfw ตามคำตอบของ @ bindbn นั่นเป็นความคิดทั่วไป

วิริยะ:

วางกฎของคุณลงในไฟล์:

/etc/ipfw.conf

เพิ่มที่ด้านบนสุดของไฟล์ของคุณ

flush

ตรวจสอบให้แน่ใจว่าไม่มีช่องว่างนำหน้าหรือต่อท้ายในบรรทัดใด ๆ

เพิ่มใน /Library/LaunchDaemons/com.yourdomain.ipfw.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>com.yourdomain.ipfw</string>
    <key>Program</key>
    <string>/sbin/ipfw</string>
    <key>ProgramArguments</key>
    <array>
      <string>/sbin/ipfw</string>
      <string>-q</string>
      <string>/etc/ipfw.conf</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
  </dict>
</plist>

รีบูตหรือ

launchctl load -w /Library/LaunchDaemons/com.yourdomain.ipfw.plist

ครั้งแรก.

หลังจากนั้นก็เป็น

launchctl load com.yourdomain.ipfw

1
Chinggsy ฉันลองใช้วิธีการของคุณและทุกอย่างทำงาน แต่เมื่อฉันได้รับข้อผิดพลาดในคอนโซล 3/30/11 4:07:01 PM com.apple.ipfw [342] บรรทัดที่ 1: ซ็อกเก็ต: ไม่อนุญาตให้ใช้งานการดำเนินการอนุญาตสำหรับไฟล์ทั้งสองถูกตั้งค่าเป็นรูทในขณะที่เจ้าของและปัญหายังคงอยู่ ฉันพลาดอะไรไป peace
นักแสดงคอนเสิร์ต

บทความนี้แก้ไขได้ที่สำหรับฉัน: apple.stackexchange.com/questions/3250/…
Mattijs

1
จริงๆแล้วคำตอบนี้ใช้ไม่ได้ด้วยเหตุผลบางอย่าง อย่างไรก็ตามบทความนี้ทำขึ้นได้ที่: blog.scottlowe.org/2012/04/05/setting-up-ipfw-on-mac-os-x
Mattijs

ใน OS X Yosemite ipfwถูกลบแล้ว pfมีการโพสต์โซลูชันทางเลือกอื่น ๆในกระทู้นี้
lyschoening

12

ขอบคุณ แต่ไม่มีอะไรเกิดขึ้นการเปลี่ยนแปลงนี้ไม่คงอยู่
sorin

ตกลง ... วางโปรแกรมของคุณไว้ในตัวแทนการเปิดตัวที่ไม่เปิดใช้ Daemon น่าอัศจรรย์มันใช้งานได้สำหรับฉัน

1
'NUMBER' เป็นตำแหน่งบางส่วนใน ipfw และควรแทนที่ด้วยจำนวนจริง
Drew
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.