UbuntuServerでGW-900D-BKを使えるようにする


## 概要

UbuntuServerに無線LAN子機をつないでケーブルでSSH接続は出来るようにしたまま、外部へのネットワークを無線LAN経由にします。

Ubuntuのバージョンは`18.04.2 LTS`でためしました。[GW-900D-BK](https://www.amazon.co.jp/PLANEX-%E7%84%A1%E7%B7%9ALAN%E5%AD%90%E6%A9%9F-USB3-0%E3%82%A2%E3%83%80%E3%83%97%E3%82%BF%E3%83%BC%E5%9E%8B-866Mbps-GW-900D-BK/dp/B00M9UYSYS/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=GW-900D-BK&qid=1560837951&s=gateway&sr=8-1)とありますが、`RTL8812AU`というチップを使ってる子機だったらいけるのではないか？という話です。

## 準備

色々インストール。

```
# ドライバの解凍に必要
$ sudo apt install unzip

# ドライバのmakeに必要
$ sudo apt install build-essential

# Wifiを扱うには下記の二つが必要
$ sudo apt install wireless-tools
$ sudo apt  install network-manager

# network-managerを有効にする
$ sudo service network-manager start
```

## ドライバーのインストール

下記から取得可能です。
https://github.com/gnab/rtl8812au

```
$ wget https://github.com/gnab/rtl8812au/archive/master.zip
$ unzip master.zip
$ cd rtl8812au-master
$ make
$ sudo make install
```

インストール後GW-900D-BKを指すと認識され、本体のLEDが点滅します。

## Interfaceの名前を調べる

`nmcli device`コマンドで確認できます。`network-manager`入れると使えるようになるやつです。

```
$ nmcli device
DEVICE           TYPE      STATE         CONNECTION
enx1cc03502d164  wifi      disconnected  --
enp2s0           ethernet  unmanaged     --
lo               loopback  unmanaged     --
```

enx1cc03502d164という名前で認識されてるのが分かると思います。この名前はコピペしておいてください。

下記コマンドでアクセスポイントのリストがとれます。`wireless-tools`を入れると使えるようになります。確認する必要が無ければいらないかも。

```
$ iwlist enx1cc03502d164 scan | grep ESSID
```


## 接続する

ネットワークの設定は`/etc/netplan/50-cloud-init.yaml`を編集します。

```
$ sudo vi /etc/netplan/50-cloud-init.yaml
```

内容は下記のようになっていました。

```
# This file is generated from information provided by
# the datasource.  Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    ethernets:
        enp2s0:
            addresses:
            - 172.16.14.3/24
            gateway4: 172.16.14.1
            nameservers:
                addresses:
                # nameserversは伏せました
                - ***.***.***.***
                - ***.***.***.***
    version: 2
```

これを下記のように編集します。

```
network:
    ethernets:
        enp2s0:
            addresses:
            - 172.16.14.3/24
            nameservers:
                addresses:
                - ***.***.***.***
                - ***.***.***.***
    wifis:
        enx1cc03502d164:
            addresses: []
            dhcp4: true
            optional: true
            access-points:
                *ここにSSIDを指定*:
                    password: *********
    version: 2
    renderer: NetworkManager
```

ethernetsの`gateway4: 172.16.14.1`は削除しました。これがあると外への接続がそっちへ行っていまいます。

最後に反映させます。

```
$ sudo netplan apply
```

私の場合ここでうまくつながりませんでしたが一度GW-900D-BKを抜いて指し直したら認識しました。

routeでネットのインターフェースを確認。

```
$ route -n
```

下記コマンドでグローバルIPアドレスを調べられます。

```
$ dig +short myip.opendns.com @resolver1.opendns.com
```

## 参考サイト

[Linuxで使えるUSB無線LAN PLANEX「GW-900D-BK」をUbuntuで試してみました](https://gadgetrip.jp/2018/10/review_planex_gw_900d_bk/)
[Ubuntu Server 18.04 LTSの無線LAN接続](https://qiita.com/Aton-kish/items/e06d87626b21e21c1e33)
[NIC（インターフェース）が複数ある場合の設定方法](https://go-journey.club/archives/1134)
[Linux Show / Display Available Network Interfaces](https://www.cyberciti.biz/faq/linux-list-network-interfaces-names-command/)
[How To Find My Public IP Address From Command Line On a Linux](https://www.cyberciti.biz/faq/how-to-find-my-public-ip-address-from-command-line-on-a-linux/)