Mac에서 포트포워딩을 설정하기 위해선 ipfw를 사용하는데 문제는 재부팅을 하면 설정이 없어진다는거라 여간 불편한게 아니다.
좀 검색을 해보니 역시 재부팅이 되도 계속 유지하도록 할수 있는 방법이 있어 적어본다.
먼저 80 포트로 들어온 request를 8080으로 보내기 위해선 아래와 같은 명령어로 설정할수 있다.
$> sudo ipfw add 100 fwd 127.0.0.1,8080 tcp from any to any 80 in
$> sudo ipfw show
00100 18913 10493051 fwd 127.0.0.1,8080 tcp from any to any dst-port 80 in
65535 557295 157333446 allow ip from any to any
자. 이제 재부팅되도 변하지 않는 불변의 셋팅을 시작하자.
1. 먼저 적당한 곳에 conf 파일을 만들고 그 안에 rule을 적어서 저장한다. (flush를 가장 위에 꼭 추가하자!)
$> sudo vi /etc/ipfw.conf
# 파일내용
flush
add 100 fwd 127.0.0.1,8080 tcp from any to any 80 in
2. /Library/LaunchDaemons/com.domain.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.domain.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>
3. 아래의 명령어를 실행하면 끝!
$> launchctl load -w /Library/LaunchDaemons/com.domain.ipfw.plist
이제 재부팅 후 sudo ipfw show 를 확인해보면 설정이 삭제되지 않고 남아있는걸 확인할수 있다.