MacからUbuntu18.04へのリモート接続設定備忘録(UFW設定方法付き)

MacからUbuntu18.04へのリモートデスクトップ接続の設定方法をいつも忘れて困ってしまうので備忘録メモとしてまとめます。

# 検証環境
Mac: macOS 10.14.6 Mojave
Ubuntu: Ubuntu 18.04.4 LTS

# 環境設定 @ Ubuntu
まずはUbuntu側で設定します。

## Vinoのインストール
画面共有(リモートアクセス)を有効にする為に、Vinoをインストールします。

```bash
sudo apt install -y vino
```
Vinoの通信を暗号化するとMacと通信出来ない不具合が有るので通信の暗号化を無効化します。

```bash
gsettings set org.gnome.Vino require-encryption false
```
`sudo`を付けている情報もネットに有りますが、正しくは`sudo`を付けません。

<details><summary>`sudo`を付けるとエラーが出ます。</summary><div>

```bash

 $ sudo gsettings set org.gnome.Vino require-encryption false
[sudo] user のパスワード: 

(process:3278): dconf-WARNING **: 23:34:23.211: failed to commit changes to dconf: 接続が閉じています
```

</div></details>

参考: [デスクトップを共有する](https://sicklylife.jp/ubuntu/1804/help/sharing-desktop.html)

## 画面共有の設定

`設定画面`から`共有/画面共有(S)`順にクリックします。必ず`パスワードを要求する`を選択し、パスワードを設定します。

![screen_share.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469079/20fe55de-4058-25a1-58f4-241339486aef.png)

## UFWの設定
Ubuntuのファイアウォールの設定を行います。Ubuntu18にはUFW(Uncomplicated Firewall)というファイアーウォールがデフォルトでインストールされています。初期状態では`非アクティブ`状態なので、そのまま使用できますが、本記事ではファイアーウォールの設定を行います。

### UFWの状態を確認
Desktop版の場合、初期状態では`非アクティブ`状態です。

```bash
$ sudo ufw status
状態: 非アクティブ
```

### UFWを有効化
Uncomplicated Firewallを有効化します。

```bash
 $ sudo ufw enable
ファイアウォールはアクティブかつシステムの起動時に有効化されます。
```

状態を確認します。

```bash
$ sudo ufw status 
状態: アクティブ

To                         Action      From
--                         ------      ----
```

### ポート5900番を開放

```bash
sudo ufw allow 5900
```

設定後の状態を確認します。IPv4, IPv6両方のルールが登録されます。

```bash
$ sudo ufw status | grep 5900
5900                       ALLOW       Anywhere                  
5900 (v6)                  ALLOW       Anywhere (v6)
```

* 設定内容の格納先  
  * IPv4: `/etc/ufw/user.rules`  
  * IPv6: `/etc/ufw/user6.rules`


参考: [ufwの基本操作](https://qiita.com/RyoMa_0923/items/681f86196997bea236f0)

## mDNSの設定
`<USER_NAME>@<HOST_IP>`ではなく、同じネットワーク上のホストへの接続なら`<HOST_NAME>.local`で接続出来る様にするために、mDNS(multicast DNS)をインストールします。Ubuntuでは`avahi-daemon`をインストールします。

```bash

sudo apt install -y avahi-daemon
```

参考: [mDNSを設定して、いちいちIPアドレスを打ち込むのをやめよう。](https://qiita.com/msrx9/items/b6ca47dd2178c3c9b536)

# 環境設定 @ Mac
続けてMac側の設定を行います。Mac用のリモートデスクトップソフトは標準搭載の物を用います。

## 接続設定
Finderを起動し、`command + K`を同時に押すと以下の様なウィンドウが表示されます。上側の入力欄に`vnc://<HOST_NAME>.local:5900`と入力し、接続をクリックします。

<img width="487" alt="server connenct" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469079/6066e874-37ec-120d-ba04-fae342a8ab8b.png">

ログイン画面が表示されるので[画面共有の設定](https://qiita.com/drafts/c5fd815a9cabe5c2d6d8/edit#%E7%94%BB%E9%9D%A2%E5%85%B1%E6%9C%89%E3%81%AE%E8%A8%AD%E5%AE%9A)で設定したパスワードを入力し、サインインをクリックします。

<img width="433" alt="login.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469079/f490923e-f4d9-53f1-2eb3-10a1cac2a688.png">

ログインに成功するとデスクトップが表示されます。

<img width="1425" alt="desktop.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469079/a2bab163-cd4e-dccf-b2c1-7287d9679f92.png">



# まとめ
Macからサーバー用途に用いているUbuntuデスクトップへのリモート接続の設定方法をいつも忘れてしまい、再設定時にあちこち探し回って設定していたため、本記事では備忘録メモとしてまとめました。今後は備忘録メモも記事として投稿していこうと思います。

# Reference

http://imamachi-n.hatenablog.com/entry/2018/04/28/211147