ฉันจะเปิดพอร์ตเฉพาะในไฟร์วอลล์ได้อย่างไร ฉันไม่สามารถใช้ "อนุญาตการเชื่อมต่อจากแอปพลิเคชัน" เนื่องจากฉันต้องการเปิดพอร์ตสำหรับเจนกินส์ที่ไม่ได้อยู่ในรายการ ...
ipfw
จะมีความเกี่ยวข้อง? apple.stackexchange.com/questions/33871/…
ฉันจะเปิดพอร์ตเฉพาะในไฟร์วอลล์ได้อย่างไร ฉันไม่สามารถใช้ "อนุญาตการเชื่อมต่อจากแอปพลิเคชัน" เนื่องจากฉันต้องการเปิดพอร์ตสำหรับเจนกินส์ที่ไม่ได้อยู่ในรายการ ...
ipfw
จะมีความเกี่ยวข้อง? apple.stackexchange.com/questions/33871/…
คำตอบ:
Apple OS X Mavericks มีสามไฟร์วอลล์ ก่อนอื่นเลยคือ Application Level Firewall ซึ่งสามารถกำหนดค่าได้โดยใช้การตั้งค่าระบบ แต่ยังมี ipfw ซึ่งเป็นไฟร์วอลล์การกรองแพ็คเก็ตเช่น netfilter / iptables บน GNU / Linux และ pf (FreeBSD / OpenBSD)
คุณสามารถกำหนดค่าทั้งipfwใช้บรรทัดคำสั่งหรือการใช้กราฟิก front-end เช่นฟรี / Libre WaterRoof
คุณสามารถเริ่มต้นด้วยคำสั่ง ipfw เช่น:
sudo ipfw add 31010 allow tcp from any to any dst-port 8080
ฉันมีปัญหาเดียวกันภายใต้ OS X Yosemite (10.10.3) พบโพสต์บล็อกนี้ที่ให้คำแนะนำที่ชัดเจน เราไม่สามารถใช้ ipfw ได้อีกต่อไปเนื่องจากเลิกใช้แล้ว ให้ใช้ pfctl แทนซึ่งน่าเสียดายที่ไม่มีบรรทัดคำสั่งที่ดีในการบอกให้เปิดพอร์ต คุณต้อง:
# Open port 8080 สำหรับ TCP ในทุกอินเตอร์เฟส
ส่งผ่าน proto tcp จากทุกพอร์ต 8080
sudo pfctl -f /etc/pf.conf
หากคุณต้องการเปิดพอร์ต udp เปลี่ยนtcp
เป็นudp
หากคุณต้องการทั้งสองให้เพิ่มบรรทัดที่สอง man pf.conf
รายละเอียดเพิ่มเติมสามารถพบได้ใน
ตรวจสอบให้แน่ใจด้วยว่าเซิร์ฟเวอร์ของคุณกำลังรับฟังบนอินเทอร์เฟซจริงที่คุณต้องการให้เข้าถึงได้ (หรืออินเทอร์เฟซทั้งหมดที่ใช้0.0.0.0
หรือ::0
) ไม่ใช่โลคัลโฮสต์ ( 127.0.0.1
หรือ::1
)
-n
ไปยัง pfctl ตรวจสอบกฎและชี้ไม่ได้โหลดพวกเขา ใช้เพียง -f /etc/pf.conf
เพื่อโหลดกฎ pfctl -sr
ตรวจสอบว่าพวกเขาจะเต็มไปด้วย อย่างไรก็ตามในขณะที่จำเป็นต้องใช้กฎ pfctl แต่ก็ไม่ปรากฏว่าเพียงพอที่จะอนุญาตให้เข้าถึง El Capitan บนพอร์ตที่กำหนด
localhost
) ได้รับชื่อโฮสต์ด้วย$ hostname
ในบรรทัดคำสั่ง นอกจากนี้หนึ่งสามารถรีสตาร์ทไฟร์วอลล์แทนที่จะรีบูตโดยไปที่การตั้งค่าระบบ -> ความปลอดภัยและความเป็นส่วนตัว -> ไฟร์วอลล์ -> ปิดไฟร์วอลล์แล้วเปิดไฟร์วอลล์
ipfw เลิกใช้แล้วโดย Apple Mountain Lion และต่อมาใช้ pfctl
นี่คือหนึ่งซับแทนที่จะต้องการให้ผู้ใช้ยุ่งกับ Vim มีประโยชน์สำหรับระบบอัตโนมัติ
sed -i '' -e '$a\pass in proto tcp from any to any port 8080' /etc/pf.conf; pfctl -vnf /etc/pf.conf
หรือทางเลือกสำหรับผู้ใช้ Linux
sed -i -e '$a\pass in proto tcp from any to any port 8080' /etc/pf.conf; pfctl -vnf /etc/pf.conf
เพียงให้แน่ใจว่าคุณเปลี่ยน8080
ตัวอย่างสิ่งที่คุณมีในใจ สลับ tcp ด้วย udp หากคุณต้องการ