맥에서는 이전부터 자신들의 화일 프린터 공유 프로토콜인 afp를 지원해왔다.

이걸 써 보면 조금 더 빠르게 외부 네트웍에서 접근이 가능할까 궁금해서 리눅스 서버에

netatalk를 설치해서 활용해 보았다.

일단 필요한 것은
1. netatalk 2.x
2. netatalk cjk patch (볼륨 한글문제 패치)
HAT님께서 이는 통합 패치이고 실제 한글볼륨패치는 non-ascii-volume.patch.gz 이라고 한다.
3. 버클리 DB ( netatalk 홈페이지에 버전별 유의사항을 참고 할 것)

정도이다.


AppltTalk을 이용한 연결을 위해서는 일단 리눅스 커널에서 appletalk 모듈이 설정되어 있어야 한다.
만약 설정이 되어 있지 않을 경우 애플토크 서비스 이름 등록시 에러가 나므로 커널 컴파일을 통해서 appletalk 지원을 모듈로 추가해 주어야 한다. ( 모듈이 없어도 직접 AFP over TCP/IP 연결에는 문제가 없다. )

그리고 DB를 설치하고 netatalk를 풀어서 HAT란 일본인이 만든 cjk 패치를 적용하고 나 빌드 후 설치하면 설치는 모두 끝이난다.

남은 것은 설정인데
크게 afpd.conf와 AppleVolumes.default, ~/AppleVolumes 들의 설정을 고치면 된다.
위 파일에서 드라이브 인코딩에 대한 설정도 하게 된다.

afpd.conf에서 Appletalk연결에 대한 인증설정 인코딩 설정을 한다.


– -transall -uamlist uams_clrtxt.so,uams_dhx.so -maccodepage MAC_KOREAN -unixcodepage UTF8


그리고 AppleVolumes.default 에서
~ "home" maccharset:MAC_KOREAN volcharset:UTF8

경우 사용자의 홈 폴더를 맥에서 'afp://서버/home' 으로 접근 할 수 있게 되고 인코딩은 맥쪽이 MAC_KOREANMAC_ROMAN, 리눅스쪽이 UTF-8(설정에는 – 가 없다!)이다.

~/AppleVolumes의 내용을 AppleVolumes.default처럼 응용하여 설정하면 각 사용자별 공유 매핑을 추가 할 수 있다.



서비스를 /etc/rc.d/init.d/atalk start하고 기동해서 대략 사용한 결과 SMB와는 다르게 Symbolic link가 afp에서는 지원되지 않아서 조금 불편했다. SMB over SSH 보다는 속도는 조금 더 나은듯 했다.

PS. 일본의 netatalk patch 개발자분께서 댓글을 달아주셨는데 반영하여 수정하였다. 그런데 MAC_ROMAN의 경우에도 나는 정상작동을 하였다. 이 이유는 나도 잘 모르겠으나 아마 내가 UTF-8을 사용하는 OS X사용자이여서 그런듯 하고 원 개발자 분의 지적이 맞는 듯 하다. 그분께 감사드린다.

Linux에서 AppleTalk afp연결을 위한 netatalk 설치하기

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다