[apple] 방화벽 OS X 10.9.4에서 특정 포트를 여는 방법

방화벽에서 특정 포트를 어떻게 열 수 있습니까? Jenkins의 포트를 열려고하는데 “응용 프로그램에서 연결 허용”을 사용할 수 없습니다. 목록에 없습니다.



답변

Apple의 OS X Maverick에는 3 개의 방화벽이 있습니다. 우선 시스템 설정을 사용하여 구성 할 수있는 응용 프로그램 수준 방화벽입니다. 그러나 GNU / Linux 및 pf (FreeBSD / OpenBSD)에는 netfilter / iptables와 같은 패킷 필터링 방화벽 인 ipfw도 있습니다.

명령 행을 사용하거나 free / libre WaterRoof 와 같은 그래픽 프론트 엔드를 사용하여 ipfw 를 구성 할 수 있습니다 .

다음과 같은 ipfw 명령으로 시작할 수 있습니다.

sudo ipfw add 31010 allow tcp from any to any dst-port 8080


답변

OS X Yosemite (10.10.3)에서 동일한 문제가 발생했습니다. 명확한 지침을 제공하는 이 블로그 게시물 을 찾았 습니다 . 더 이상 사용되지 않으므로 ipfw를 더 이상 사용할 수 없습니다. 대신 pfctl을 사용하면 안타깝게도 포트를 열도록 지시하는 멋진 명령 줄 방법이 없습니다. 대신 다음을 수행해야합니다.

  1. 텍스트 편집기에서 /etc/pf.conf를여십시오.
  2. 다음과 같은 줄을 추가하십시오.

# 모든 인터페이스에서 TCP 용 포트 8080 열기

프로토 타입 TCP를 모든 포트에서 8080으로 전달

  1. 파일을 저장하십시오.
  2. 다음을 사용하여 변경 사항을로드하십시오.

sudo pfctl -f /etc/pf.conf

udp 포트를 열어야하는 경우로 변경 tcp하고 udp둘 다 필요한 경우 두 번째 줄을 추가하십시오. 자세한 내용은에서 확인할 수 있습니다 man pf.conf.

또한 반드시 서버가 실제 인터페이스에서 수신되어 있는지 확인합니다 (사용, 또는 모든 인터페이스 그것을 접근 할 이상을 원 0.0.0.0하거나 ::0하지 로컬 호스트 (,) 127.0.0.1또는 ::1).


답변

ipfw는 Apple에서 더 이상 사용되지 않습니다. Mountain Lion 이상은 pfctl을 사용합니다.

http://support.apple.com/kb/ht5413


답변

여기에 사용자가 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로 교체하십시오.


답변