Cups 2.x 프린터 서버 설치, 설정.

  • 이 글도 역시, 이글루스에 있던 글을 옮겨왔다.
  • 더불어, 글 작성에 도움을 받은 문서들을 표기했다.

Ubuntu Documentation : CUPS – Print Server
Arch : CUPS/Printer sharing
Arch : Avahi

Cups 가 설치될 프린터 서버는 Armbian 을 OS 로 한 Single Board Computer 이다.

Cups 설치

$ sudo apt install cups printer-driver-splix

드라이버의 경우, 삼성과 제록스를 위한 것이다. 다른 것은 데비안 사이트에서 검색해볼 것.

2019년 7월 현재, Cups 는 2.2.1 이 설치된다. 2년 전에도 2.2 대 였는데, 별로 변한게 없다.

cupsd.conf 수정

/etc/cups/cupsd.conf 를 수정한다.
다음 두가지 사항을 신경쓰면 된다.

  • Local Machine(CUPS 가 설치된 기계. 즉 라즈베리파이)에서만 연결이 가능하게 된 것을 Local Network 으로 바꿔준다.
  • 서버에 접근 가능 / CUPS 관리자에 접근 가능 / 설정 파일에 접근 가능 하게끔 설정을 바꾼다.
# Only listen for connections from the local machine.
#Listen localhost:631
Listen /var/run/cups/cups.sock

# 아래 둘 중 하나를 택한다.
Listen IP:631 # ex. 192.168.0.11:631
# Port 631

# Restrict access to the server...
<Location />
  Order allow,deny
  Allow @Local
</Location>

# Restrict access to the admin pages...
<Location /admin>
  Order allow,deny
  Allow @Local
</Location>

# Restrict access to configuration files...
<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
  Allow @Local
</Location>

이전엔 ‘Port 631’ 이라고 넣었었는데, 그걸 서버에 한정하여 주소를 넣는 식으로 바꿨다. Port 631 도 아무런 문제는 없다.
무슨 차이가 있는지는.. 정확하게 이해는 안된다. Port 631 이라고만 하면 좀 더 광역이 되므로, 아마도 외부에서(인터넷)도 접근이 될 수도 있다고 생각한다. (물론, 현재는 공유기에 가로막혀 있으니 이런 일은 없지만)

** 다만, IP:631 로 했을 때 다른 PC 에서 이 프린터를 인식하지 못하는 현상이 간혹 나타난다. 둘 다 해보고 되는 쪽으로 택하는 편이 좋겠다.

나머지, Location 항목에서 Allow @Local 부분만 수정/추가해주면 된다.

사용자를 프린터 관리자 그룹에 추가.

현재 로그인한 Armbian 의 사용자, 즉 서버의 사용자를 프린터 관리자 그룹의 일원으로 만들어줘야 모든 설정이 그 사용자로 가능하게 된다.

$ sudo usermod -aG lpadmin <사용자명>

설정이 끝났으면 다음과 같이 CUPS 를 재시동 한다.

$ sudo systemctl restart cups.service

CUPS 서버 설정

이제 서버가 아닌 PC(물론 로컬 네트웍)에서 서버 IP 주소를 가지고 접속하여 Cups 를 설정할 차례다. 포트 번호는 위에서 지정한 631 이다.

http://192.168.0.15:631

이런 식으로 웹브라우저 주소창에 입력하고 접속하면 된다. 일반 접속은 http 로 되지만, 관리를 위해선 https 로 접속하라는 경고(안내?)가 나온다.

http://192.168.0.15:631
  • 먼저 프린터를 연결하고, 전원을 켠다.
  • Cups 접속 후에 Administration – Printers – Add Printer 를 누르면 ID/PW 를 묻는 화면이 뜬다. 아까 lpadmin 그룹에 추가한 사용자 ID(서버)/PW를 입력한다.
  • Local Printers 중에서, USB 에 연결된 프린터를 선택하고, 삼성 드라이버도 같이 설치해줬으므로, 드라이버를 적절히 택한다. 여기서, ‘Share This Printer’ 항목은 반드시 택해줘야 한다. 안해주면 다른 PC 에서 이 프린터를 찾지 못한다.
  • 마지막으로 Administration – Server 에서 다음이 설정되어 있는지 확인한다.

서버 설정은 끝.

클라이언트 설정

우분투/데비안 계열 KDE에선 이 프린터를 자동으로 찾아준다.
만약, 우분투 클라이언트에서 이 프린터를 자동으로 찾아내지 못한다면, avahi-daemon 이 없기 때문이다. 서버/클라이언트에 Avahi 가 설치되어있는지 확인하고, 없다면 다음 명령으로 설치해준다.

sudo apt install avahi-daemon libnss-mdns

이에 관한 자세한 사항은 How to Geek 문서를 참고하기 바라고.. (뭔 내용인지 지금은 잘 이해가 안된다.)

** 아래 내용은 cups 설정과는 관련이 없다. IPTime AP/공유기 문제.

여기서 한가지, 요상한 일을 겪은 경험을 적어본다.
서버에 Avahi 가 없길래 설치하고, 실행했다.
처음엔 ‘Failed to start Avahi mDNS/DNS-SD Stack.’ 라는 오류가 발생했다. (systemd status 에서)
그 땐 libnss-mdns 가 설치되지 않았을 때라 그것을 마저 설치해줬는데..

그 이후였는지, 그 전이었는지 아무튼 무선 AP 가 기절해버리는 사고가 자꾸 일어났다. 특히 클라이언트에서 서버에 있는 프린터를 찾거나, 설정하려할 때.

뭔가 서버(Armbian)에 문제가 있는 듯 하여 언제 날잡아 새로 OS 를 설치해야겠다는 생각을 하던 차..
몇가지를 시험해봤는데, 그게 주효한 모양이다. 더 이상 오류는 없고, 프린터도 설정도 전혀 문제가 없다. 인쇄는 물론 잘되고.

건드린 설정은 다음과 같다. (과연 관계가 있었을지는..)

  • 위에도 언급한, /etc/cups/cupsd.conf 에서 포트를 서버한정(192.168.0.15:631 등)으로 바꿨다.
  • /etc/nsswitch.conf 을 살짝 수정했다. hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname 에서, myhosname 을 지웠다.

OpenSuse Gnome 계열

모든 환경에서 시험해본 게 아니라서 확실하진 않지만, 배포판보다는 GUI 환경에 따라 다른 결과가 나오는게 아닐까?
바로 프린터가 찾아졌던 KDE 와는 달리, (OpenSuse) Gnome 에선, 프린터를 찾기 위해, 프린터 설정에 가서, 검색창에 프린터 서버의 IP 주소를 입력해야 했다. 그러고 나면 프린터가 보이고, 선택해주면 된다.
우분투 계열이었다면 바로 찾아냈을까?? 언젠가 시험해보면 결과를 올리기로.

MS 윈도우 클라이언트 설정.

윈도우10 기준으로, ‘설정’ – ‘장치’ – ‘프린터 및 스캐너 추가’ 에서 ‘프린터 또는 스캐너 추가’를 선택한다. 검색을 시작하는데, 검색은 안되므로~ ‘원하는 프린터가 목록에 없습니다.’를 선택한다.

위와 같은 화면에서, ‘이름으로 공유 프린터 선택’에, Cups 프린터 IP 주소를 넣어주면 된다. 이것을 쉽게 하려면, 웹브라우저로 Cups 서버에 접속한 다음, 상위 메뉴에서 Printers 로 간 뒤, Queue Name 에 떠 있는 프린터를 우클릭하고 ‘링크 주소 복사’를 선택하면 된다.
그리고 이 주소(예를 들면 http://192.168.0.15:631/printers/Samsung_AA-1234)를 위 창에 넣어준다. 설정 끝.

OSX 클라이언트 설정.
설정 – 프린터 및 스캐너를 열고 추가(+)를 누르면, 위의 프린터가 바로 보인다. 여기서 추가해주면 된다. 역시 끝.

Android 클라이언트 설정.
* 반드시 프린터를 켜놓아야 자동으로 찾아진다.
기종마다 조금 다르지만, 설정에서 프린터 관련 메뉴로 이동하면 자동으로 찾아진다.
만약 자동으로 찾아지지 않는다면, MS 윈도우와 같은 방식으로 추가해준다.
안드로이드 ‘기본 인쇄 서비스’ 에서도, ‘삼성 프린트 서비스 플러그인’ 에서도 Cups 사용에 아무 무리가 없다.

iOS 클라이언트 설정.
설정이랄 것도 없이, AirPrint 가 지원되는 프로그램에서 ‘인쇄’를 선택하면, 바로 프린터가 보인다. (역시 프린터가 켜져 있어야 한다.)

안녕하세요. 글 남겨주셔서 고맙습니다.