나도 최근에 비슷한 일을해야했고 검색 에서이 대답을 찾았습니다. 불행히도, 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
만듭니다. 이것은 기본적으로 일반 텍스트 파일이며 Kevin Leary의 대답과 같이 다음 줄을 포함합니다 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
다시 시작합니다.
이제 다시 시작할 때마다이 작업이 자동으로 수행되어야하는 경우에도 약간의 작업을 수행해야합니다. 시작 데몬을 pfctl
업데이트해야합니다. 코드를 보았을 때). 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>
그렇게해야합니다.
주의 사항 : Apple은 더 이상 실행 데몬 파일을 sudo, chmod 또는 기타로 변경하지 않습니다. 유일한 방법은 어설프게하는 시스템 무결성 보호 부팅을 복구 모드와 발사 터미널에 : 설정. 로 SIP 상태를 확인하십시오 csrutil status
. 일반적으로 활성화되어 있어야합니다. 이 기능을 비활성화하고 csrutil disable
정상 모드에서 재부팅 한 다음 위에서 설명한대로 plist 파일을 변경하십시오. 완료되면 복구 모드로 돌아가서을 발행하여 보호를 다시 활성화하십시오 (좋은 이유가 있습니다) csrutil enable
.
설명 : localhost lo0에 대해 이미 (기본) 별명 인 명령을 실행하여 확인할 수 있습니다 . 이 사실은 localhost에 대한 별명을 추가하지 않고 파일 에서 기본 주소를 사용하기 위해 사용 됩니다.ifconfig
127.0.0.1
pf.conf
업데이트 : 불행히도 시작시 파일을로드하는 것이 작동하지 않는 것 같습니다. 아직도 도움을 받으려고 노력하고 있습니다. 그때까지 시작한 sudo pfctl -f /etc/pf.conf
후에 달리는 것이 트릭입니다.