방화벽에서 특정 포트를 어떻게 열 수 있습니까? Jenkins의 포트를 열려고하는데 "응용 프로그램에서 연결 허용"을 사용할 수 없습니다. 목록에 없습니다.
ipfw
관련이 있습니까? apple.stackexchange.com/questions/33871/…
방화벽에서 특정 포트를 어떻게 열 수 있습니까? Jenkins의 포트를 열려고하는데 "응용 프로그램에서 연결 허용"을 사용할 수 없습니다. 목록에 없습니다.
ipfw
관련이 있습니까? apple.stackexchange.com/questions/33871/…
답변:
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을 사용하면 안타깝게도 포트를 열도록 지시하는 멋진 명령 줄 방법이 없습니다. 대신 다음을 수행해야합니다.
# 모든 인터페이스에서 TCP 용 포트 8080 열기
프로토 타입 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로 교체하십시오.