목표\문제

목표\문제

목표\문제

목표는 오류 메시지를 극복하여 CUPS 테스트 페이지를 인쇄하는 것입니다.

"'BrotherPrinter' 프린터를 찾을 수 없습니다."

오류 메시지의 근본 원인을 확인할 수 있는 테스트는 무엇입니까? 네트워크에 있는 프린터를 "인식"할 수 있는지 확인하기 위해 컵에서 수행할 수 있는 핑과 유사한 테스트가 있습니까?

배경

게시물 하단에 제공된 오류 메시지 스크린샷

Raspbian Buster(OSMC)의 Raspberry Pi 3B+에 설치된 CUPS Raspberry pi는 USB를 통해 프린터에 연결되지 않습니다.

CUPS 설치/설정

sudo apt install cups
sudo usermod -a -G lpadmin osmc
sudo cupsctl --remote-any
sudo systemctl restart cups

관찰 결과

테스트 결과 받기

osmc@osmc:~$는 getent hosts BrotherPrinter 아무것도 반환하지 않습니다.

osmc@osmc:~$ getent hosts BrotherPrinter.local 반환:

192.168.8.101 BrotherPrinter.local

Brother HL2280DW는 CUPS로 구성됩니다. 컵 반환:

현재 연결: lpd://BrotherPrinter/BINARY_P1

BrotherPrinter.local ping이 양호하게 반환됩니다.

ping BrotherPrinter.local
PING BrotherPrinter.local (192.168.8.101): 56 data bytes
64 bytes from 192.168.8.101: seq=0 ttl=255 time=3.895 ms

여기에 이미지 설명을 입력하세요.

답변1

CUPS에서는 "BrotherPrinter"를 찾을 수 없다고 표시하지만 ping명령은 "BrotherPrinter.local"에서 응답을 얻을 수 있습니다.

그렇다면 "BrotherPrinter"와 "BrotherPrinter.local"은 서로 다른 것으로 간주될 수 있습니까?


테스트 1: 호스트 이름 확인

테스트하려면 다음 두 명령을 사용하십시오.

getent hosts BrotherPrinter
getent hosts BrotherPrinter.local

다른 답변을 얻으면 호스트 이름 확인에 문제가 있는 것입니다.

CUPS에 대한 프린터 연결 URL을 변경하면 이 문제를 해결할 수 있습니다 lpd://BrotherPrinter.local/BINARY_P1.

또는 시스템의 모든 프로그램이 mDNS를 사용하여 도메인 부분 없이 모든 호스트 이름을 확인하도록 하려는 경우 mdns4.hosts:/etc/nsswitch.conf

( getent hostsDNS 서버 연결이 포함될 수도 있고 포함되지 않을 수도 있는 구성된 정규 절차와 정확히 동일한 작업을 수행하여 호스트 이름 확인을 테스트합니다. nslookup명령은 DNS 서버에 명시적으로 연결하거나 이와 유사하거나 dig특수한 DNS 테스트 도구입니다.)

.localmDNS(멀티캐스트 DNS)에서 사용하도록 예약된 특수 도메인 접미사입니다. 파일 hosts:의 줄에 or 가 /etc/nsswitch.conf포함되어 있지만 or 가 포함되어 있지 않은 경우 접미사가 사용되는 경우에만 mDNS를 사용하여 호스트 이름을 확인합니다. 접미사가 없는 이름은 일반 DNS 서버에서 쿼리됩니다.mdns_minimalmdns4_minimalmdnsmdns4.local.local

라우터나 인터넷 서비스 제공업체의 일반 DNS 서버에 요청하면 .local글로벌 인터넷에는 그러한 도메인이 전혀 존재하지 않는다는 신뢰할 수 있는 데이터가 반환될 가능성이 높습니다. 도메인 이름은 멀티캐스트 DNS를 사용하여 로컬 네트워크 세그먼트에서 확인되어야 하기 때문입니다 .local. 공용 DNS 서버에 접속하는 대신.


테스트 2: lpd:// 연결

두 이름이 모두 동일한 올바른 IP 주소(명령에 따라 192.168.8.101)로 BrotherPrinter확인되면 문제는 다른 곳에 있는 것입니다. 다음 단계는 사용하기로 선택한 실제 인쇄 프로토콜과의 연결을 테스트하는 것입니다. 여기서는 연결 URL 유형을 사용하여 CUPS를 구성했습니다. 이는 CUPS가 TCP 포트 #515를 사용하여 프린터에 연결을 시도한다는 의미입니다.BrotherPrinter.localpinglpd://

지정된 포트에 대한 TCP 연결을 설정할 수 있고 기본 TCP 연결이 성공적으로 설정되었는지 여부를 나타낼 수 있는 프로그램을 사용하여 이를 테스트할 수 있습니다. 이러한 유형의 테스트에는 telnet또는 netcat( ) 과 같은 명령이 nc자주 사용됩니다.

호스트 이름 확인의 추가 변수를 제거하려면 먼저 프린터의 IP 주소를 사용하여 테스트할 수 있습니다.

telnet 192.168.8.101 515

또는

nc -v 192.168.8.101 515

telnet명령이 "연결 설정됨"을 보고하거나 "192.168.8.101 포트 515(tcp)에 연결 성공!"과 같은 메시지가 표시 되면 ncLPD 프로토콜용 TCP 포트에 연결되었을 때 프린터가 응답하고 있는 것입니다. 두 명령 모두 Ctrl+를 눌러 연결을 끊을 때까지 프린터 연결을 유지합니다 C.

비슷한 오류 메시지와 함께 명령이 즉시 종료되면 Connection refused프린터가 LPD 프로토콜 연결을 허용하지 않는 것입니다. 해당 인쇄 프로토콜을 지원하지 않거나 프린터 구성에서 지원이 비활성화되었을 수 있습니다.

명령이 잠시 중단되었다가 결국 Connection timed out오류 메시지와 함께 종료되는 경우, 가장 일반적인 원인은 방화벽이 시스템에서 프린터로 전달되는 TCP 패킷이나 프린터에서 시스템으로 전달되는 TCP 응답 패킷, 또는 두 가지 모두를 차단하고 있기 때문입니다. . (방화벽은 일반적으로 오류 메시지와 함께 연결이 즉시 종료되도록 하는 오류 응답을 보내지 않습니다 Connection refused. 방화벽은 단순히 패킷을 중지하고 연결 시간이 초과되도록 합니다.)

관련 정보