AvahiでVNCサービスを宣伝する方法は?

AvahiでVNCサービスを宣伝する方法は?

私は2台のMacとDebian(そして今後他のディストリビューションも可能)を実行するPCで構成されたホームネットワークを持っています。私は現在あふれDebian 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をサポートしていない)を使用して「近くとリモートコンピュータ」を実装しているかどうかはわかりませんが、ここでは関係があるようです。 エドビア画面「近くとリモートコンピュータ」に2つのローカル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にこれを設定しました。これが他の人も同様のことをするのに役立つことを願っています。

Debian マシンでは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でも無料です。

関連情報