Avahi를 통해 VNC 서비스를 홍보하는 방법은 무엇입니까?

Avahi를 통해 VNC 서비스를 홍보하는 방법은 무엇입니까?

나는 두 대의 Mac과 Debian(및 향후 다른 배포판도 가능)을 실행하는 PC로 구성된 홈 네트워크를 가지고 있습니다. 나는 현재넘쳐데비안 PC에서 설정인터넷 채팅, PC를 iMac으로 광고합니다.

Finder 사이드바에서 Mac Mini를 클릭하면 다음이 표시됩니다. Finder 사이드바에서 Mac Mini가 선택됨 연결은 내 Apple ID로 인증되며 AFP 공유 외에도 "화면 공유..."라는 버튼이 있습니다.

"화면 공유..."를 클릭하면 Mac Mini에 대한 VNC 연결이 자사 macOS VNC 클라이언트에서 열립니다.

Finder 사이드바에서 Debian PC("Alpha")를 클릭하면 다음이 표시됩니다. Finder 사이드바에서 Debian PC를 선택하세요. 연결은 원격 로컬 사용자 이름으로 인증되었으며 Netatalk(AFP) 공유만 표시됩니다.

과거에는 AFP/Netatalk 대신 CIFS/SMB 공유를 사용하여 똑같이 좋은 결과를 얻었습니다.

타사 응용 프로그램에서화면, "근처 및 원격 컴퓨터"에는 "Kandinsky"(실제로 오프라인 상태인 구형 Mac Mini)와 현재 Mac Mini가 표시됩니다. Screens가 Bonjour(Avahi)와 자체 핸드셰이크 서비스 Screens Connect(Linux 지원 아님)를 사용하여 "근처 및 원격 컴퓨터"를 구현하는지 여부는 확실하지 않지만 여기서는 관련이 있을 수 있는 것으로 보입니다. Edovia 화면 "근처 및 원격 컴퓨터"에 두 개의 로컬 Mac이 표시됩니다. 제가 스크린을 사용하는 이유는 GNOME 기본 VNC 서버의 인증 프로토콜이 자사 macOS VNC 클라이언트와 호환되지 않기 때문입니다. 또는 그런 것. (이는 알려진 문제입니다.)

그래도.

내가 명령을 실행할 때

$ avahi-browse --all --ignore-local --resolve --terminate

Debian PC에서는 출력에 다음이 포함됩니다.

+ enp3s0 IPv6 Mac Mini    VNC Remote Access    local
+ enp3s0 IPv4 Mac Mini    VNC Remote Access    local
= enp3s0 IPv6 Mac Mini    VNC Remote Access    local
   hostname = [macmini.local]
   address = [192.168.4.63]
   port = [5900]
   txt = []

그리고

= enp3s0 IPv4 Mac Mini    VNC Remote Access    local
   hostname = [macmini.local]
   address = [192.168.4.63]
   port = [5900]
   txt = []

(내 MacBook은 화면 공유가 활성화되어 있지 않기 때문에 표시되지 않습니다.)

나는 다음을 할 수 있다는 것을 안다dns-sd내 Mac에서:

% dns-sd -B <type> <domain>

이것은 나에게 유용한 정보를 줄 수도 있지만,

% dns-sd -B

Mac Mini를 표시하지 말고 "VNC 원격 액세스"를 찾아보십시오.

% dns-sd -B "VNC Remote Access"
Browsing for VNC Remote Access._tcp
DNSService call failed -65540

작동하지 않아서 막다른 골목인 것 같습니다.

이 모든 맥락에서 내 질문을 다시 말하면:

VNC 원격 액세스를 알리기 위해 Debian PC에서 Avahi 데몬을 어떻게 얻나요?

저는 자사 macOS VNC 클라이언트의 사용에 대해 비관적이지만, 만약 Debian PC(iMac의 형태를 취함)가 VNC Remote를 갖고 있는 것으로 나타난다면 다른 가능성이 발생할 수 있다고 낙관합니다.

최선의 해결책은 Avahi 서비스 파일을 생성하는 것입니다. 그러나 Avahi 문서(예: 매뉴얼 페이지 avahi.service(5))에는 이에 대한 정보가 매우 부족합니다. 현재 내가 설정한 유일한 서비스는 다음과 /etc/avahi/services/afp.service같습니다.

$ cat /etc/avahi/services/afp.service
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
 <name replace-wildcards="yes">%h</name>
  <service>
   <type>_afpovertcp._tcp</type>
   <port>548</port>
  </service>
  <service>
   <type>_device-info._tcp</type>
   <port>0</port>
   <txt-record>model=iMac</txt-record>
  </service>
  <service>
   <type>_adisk._tcp</type>
   <port>9</port>
   <txt-record>sys=waMa=0,adVF=0x100,adVU=fbdbccf4-6b71-4995-8fa7-ad066939d808</txt-record>
   <txt-record>dk0=adVN=Backups,adVF=0x81</txt-record>
  </service>
</service-group>

VNC에 해당하는 파일을 만드는 방법에 대해 알고 계시나요?

아니면 어떻게 해야 하나요?

답변1

저는 방금 Debian을 실행하는 Pi에 이것을 설정했습니다. 이것이 다른 사람들도 비슷한 일을 하는 데 도움이 되기를 바랍니다.

데비안 머신에서는 vnc.service./etc/avahi/services

VNC의 경우 `/usr/share/doc/avahi-daemon/examples에서 예제를 복사할 수 있습니다.

<service-group>
  <name replace-wildcards="yes">%h</name> 
  <service>
    <type>_rfb._tcp</type>
    <port>5900</port>
  </service> 
</service-group>

저장한 후 Avahi를 다시 로드하여 선택하세요.

sudo systemctl restart avahi-daemon.service

Mac 터미널에서 검색하는 경우 VNC 유형은 "_rfb._tcb"입니다(참조:잘 알려진 서비스 유형 목록:

dns-sd -B  _rfb._tcp

andy@XXX ~ % dns-sd -B  _rfb._tcp
Browsing for _rfb._tcp
DATE: ---Thu 26 Aug 2021---
14:20:50.925  ...STARTING...
Timestamp     A/R    Flags  if Domain               Service Type         Instance Name
14:20:50.926  Add        3   4 local.               _rfb._tcp.           rpi
14:20:50.926  Add        3   5 local.               _rfb._tcp.           rpi

나는 일반적으로 GUI를 사용하는 것을 선호합니다Discovery(이전의 Bonjour 브라우저), Mac 및 iOS용 App Store에서도 무료입니다.

관련 정보