공유기에 NAS를 물려놓고 Mac에서 접속하여 사용 중이다. 문제는 WiFi를 통해서 데이터를 이동하다보니 너무 느리다. 주로 집에서 사용하기 때문에 Mac에 이더넷 포트로 직접 물려서 사용하는게 빠를 것 같았다. Mac에 남아있는 이더넷 포트를 사용하여 NAS를 연결하려고 이리저리 정보를 찾아 해결한 내용을 정리하였다.
시스템 환경설정
에서 공유
를 선택한 뒤, 연결 공유
는 Wi-Fi로 다음 사용
에는 이더넷을 선택한다.
설정이 끝나면 네트워크
에서 이더넷
항목을 보면 자체 할당 IP
라고 되어 있는 것을 볼 수 있다.
$ ifconfig
# bridge100의 IP 확인
Mac에서 인터넷 공유
활성화하는 경우 맥 내부의 DHCP 서버 IP는 192.168.2.1
로 할당되는 것을 확인하였다. 해당 IP를 라우터로 하여 NAS에서 고정 IP는 192.168.2.2
, 서브넷 마스크는 255.255.255.0
으로 설정하였다.
Mac에서 포트포워딩은 OSX까지는 간단하게 설정할 수 있었던 것 같은데 최근 OS에서는 직접 시스템 파일을 건드려 줘야하는 것 같다.
$ sudo vi /etc/pf.anchors/com.nas
com.nas 대신에 다른 이름을 해도 무방하다.
아래의 내용을 생성한 anchor 파일 안에 입력해준다.
rdr pass inet proto tcp from any to self port 80 -> 192.168.2.2 port 80
# 80번 포트로 들어오는 모든(any) 패킷을 192.168.2.2의 80번 포트로 넘긴다.
원하는 포트에 따라 내용을 수정하거나 더 추가하면 된다. 여러 포트를 포워딩하는 경우 ... port { 80 8000 } -> ...
이런 식으로 작성하면 된다.
아래의 명령어로 포워딩되는 포트들을 확인한다.
$ sudo pfctl -vnf /etc/pf.anchors/com.nas
# result
# rdr pass inet proto tcp from any to 127.0.0.1 port = 80 -> 192.168.2.2 port 80
# rdr pass inet proto tcp from any to 169.254.24.229 port = 80 -> 192.168.2.2 port 80
# rdr pass inet proto tcp from any to XXX.XXX.XXX.XXX port = 80 -> 192.168.2.2 port 80
# rdr pass inet proto tcp from any to 192.168.2.1 port = 80 -> 192.168.2.2 port 80
$ sudo vi /etc/pf.conf
위 명령어를 통해 아래의 내용을 입력해준다.
rdr-anchor "com.nas"
load anchor "com.nas" from "/etc/pf.anchors/com.nas"
여기서 주의할 점은 rdr-anchor
는 기존 rdr-anchor
줄 아래, load anchor
는 기존 load anchor
줄 아래에 입력해야 한다.
추가내용)
anchor 파일의 내용을rdr-anchor
줄 아래 바로 추가해도 됨.load anchor
는 필요 없음.
아래의 명령어를 통해 Mac 자체 포트포워딩을 할 수 있다. 추가로 공유기에서도 포트포워딩 IP를 수정해주어야한다. 최종적으로 외부에서 NAS에 접속되는 것을 알 수 있다.
$ sudo pfctl -ef /etc/pf.conf
# 포트포워딩 룰 확인
$ sudo pfctl -s nat
# 모든 포트포워딩 제거
$ sudo pfctl -F all -f /etc/pf.conf
# 포트포워딩 비활성화
$ sudo pfctl -d
# 포트포워딩 바로 적용
$ echo "rdr pass inet proto tcp from any to any port 80 -> 192.168.2.2 port 80" | sudo pfctl -ef -