ALEXAさんで遊ぼう。手持ちの音楽をECHOで流す方法、その2

前回の投稿で、手持ちの音楽は基本的にAmazon Echoで再生できない、と書きました。

しかし、次のような方法を使用すれば、 Amazon Echoでも再生できます。

その方法とは、

Amazon Musicストアで音楽を購入する。

そうすれば、Amazon EchoをBluetoothスピーカー化しなくてもAmazon Echoで再生できます。

ただし、AlexaはAmazon Musicストアの曲を認識することはできないようです。

Alexaさんは、あくまでも連携した音楽ストリーミングサービスの楽曲しか認識できないようです。

再生するには、スマートフォンなどのAlexaアプリ経由でリストから楽曲を選択し、再生指示を出すしかありません。

この程度だったら、Amazon Musicストアを利用しなくてもいいかも。

なぜなら、

オイラのデスクトップ環境はハイレゾ再生できる環境にあるからです。

ハイレゾ対応ポータブルアンプ&ハイレゾ対応ヘッドホンがあるのです。

だとすれば、moraで購入して聞いた方が良いのかな、って思いました。

Alexaさんで遊ぼう。手持ちの音楽をEchoで流す方法

Amazon Echoでは、基本的に他音楽ストリーミングサービスと連携して音楽を再生するしかありません。

それでも、無理矢理手持ちの音楽も流してしまおう、という話。

早い話が、Amazon EchoをBluetoothスピーカーにしてしまうのです。

Alexaアプリからデバイス一覧のEcho・Alexaをタップ。

この画面でPC・スマホなどのデバイスとペアリングを行います。

Echo側でペアリングした後、PC・スマホの側でもEchoデバイスをペアリングします。

これでBluetoothで繋がります。PC・スマホの音がそのままEchoで再生されます。

ただ、この方法は完全にAlexaさんを殺していることになります。

Alexaさんをうまく生かすには、やはりAmazon Music Unlimitedを使用するしか無いでしょう。

さあ、みんな叫ぶんだ。

「アレクサ、 Amazon Music Unlimited に登録して」

ゲームする際の、ハードウェアの重要性の話

これが現在のバンドリガールズバンドパーティ(通称ガルパ)の状態です。

プレイしてて思ったのが、iPad mini3(16GB)からiPad Pro 11インチ(64GB)にハードを変更してからフルコンボ楽曲が増えました。

特に、天下トーイツAtoZやThis gameをフルコンできたのは大きいです。

レベル27の曲をフルコンできたのです。

まず、画面が大きくなったため、ノードの大きさも大きくなった。

そして、画面キャプチャしながらのプレイでもカクカクしない。(ストレージ容量が大きくなったというのも関係して居るかも。)

さらに、プレイ中に画面が遅延する通称「ゾーン」と呼ばれる現象が起きなくなりました。

格段に快適にプレイできるようになりました。

やっぱりハードってゲームのプレイに影響するんだなぁ。

VPSのFTPポートを変更する

これはえらい人からの指示で調べた。

まずは、vsftpsにポート設定を書き足す。

$ sudo vi /etc/vsftpd.conf

listen_port=制御用ポート番号
pasv_enable=YES
pasv_min_port=データ通信用ポート番号(下限)
pasv_max_port=データ通信用ポート番号(上限)

まぁ、この設定を書き込むには、FTPの仕組みを理解しなければいけないわけで。

FTPは制御用ポートとデータ用ポートの2つを使用します。

デフォルトでは制御用ポートが20、データ用ポートが21です。

なので、iptablesの設定も、両方のポートを開ける必要がありました。

FTPのポート番号を変える場合はパッシブモードにする必要があります。

パッシブモードにした場合、データ用ポートはサーバ側でランダムに決定されます。

でも、本当にランダムだと、ファイアーウォールの設定が面倒なので、

そのポート番号の範囲を決めてあげる必要があります。

その下限をpasv_min_portで、上限をpasv_max_portで設定します。

つまり、ここでポートを指定してあげれば、ファイアーウォールはその部分だけ開ければ良いことになります。

まぁ、今回はめんどうなので、上限も下限も同じ値にして、データ用ポート番号も固定にしました。

FTPサーバを再起動

$ sudo /etc/init.d/vsftpd restart

iptableのポートを開けます

$ sudo iptables -I INPUT  -p tcp –dport 制御用ポート番号 -j ACCEPT

$ sudo iptables -I INPUT  -p tcp –dport データ用ポート番号(下限):データ用ポート番号(上限) -j ACCEPT

この時点で、新しいポート番号でデータ転送ができることを確認。

変更前のポート番号を閉じる

まずは、iptableの設定一覧を表示

$ sudo iptables -nL –line-number

一覧の中から削除する設定番号を指定する。

$ sudo iptables -D INPUT 設定番号

iptableの設定を保存

$ sudo iptables-save

これで完了です!

iptableの設定を保存する

VPSでiptableの設定しましたが、

これだけでは再起動すると設定が消えてしまいます。

これを解決します。

# apt-get install iptables-persistent

これをインストールすると設定が保存できます。

保存には、

# iptables-save

と撃ち込めばOK。

これをやっておけば、再起動してもiptableの設定が復元します。

VPSにファイアーウォールを設定する

今回はVPSにファイアーウォールを設定します。

使用するのはiptablesです。

これを設定しないと、全ポートが解放されている状態となり、

仮に、サーバに悪意のあるソフトが仕込まれ、ポートをlistenしている状態になっていると、

攻撃者はそのポートにアクセスするだけで簡単にサーバを書き換えることができてしまいます。

しかし、iptableを設定することで、外からの許可されたポート以外は全てiptablesでブロックしてくれます。

まずは、現状を確認

# iptables -nL

たぶん全ポート開放状態です。

データを持たないパケットを破棄

# iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP

SYNflood攻撃と思われる接続を破棄

# iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

ステルススキャンと思われる接続を破棄

# iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP

localhostからの通信とpingを許可

# iptables -A INPUT -i lo -j ACCEPT

httpによるアクセスを許可

# iptables -A INPUT -p tcp -m tcp –dport 80 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp –dport 443 -j ACCEPT

その他、使用しているサービスのポートを許可する

# iptables -A INPUT -p tcp -m tcp –dport [ポート番号] -j ACCEPT

確立済みの通信を許可に設定

# iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

許可した通信以外のサーバに受信するパケットを拒否し、サーバから送信するパケットを許可

# iptables -P INPUT DROP
# iptables -P OUTPUT ACCEPT

この状態で、使用しているサーバアクセスが一通りできることを確認する。

できなければ、そのポートを開放する。

で、この設定を保存するんだけど、通常ならservice iptables saveでできるはずなんだけど、

なぜかできないので、スクリプトを作って、再起動する度に設定を行うようにする。(めんどくせー)

これでファイアーウォールの設定できました!

独自ドメインのメールアドレスを取得する。

最初はVPSにメールサーバを立てようかと思ったけど、

いろいろ設定がめんどくさいのと、

セキュリティ的に怖いので、やめた。

ソフトはpostfixとDovecotを使用するんだけど、

まず、DNSの設定を変えなくちゃ行けない。

MXレコードとTXTレコードね。

あと、問題はスパムメール。

これを防げる自信は無い。

みんながいつも受け取っているメールの量の二倍ぐらいはスパムメール飛び交っているんだぞ。

で、お名前.comの共用メールサーバを借りることにした。

特に難しい設定はいらない。

ただ、ドメインの正引きが変わるので、メールサーバのDNS設定を忘れないこと。

設定はお名前.comの設定と同じ。

うん、簡単。

VPSにPHPを入れる

前回はVPSにnginxを入れました。

今回はPHPを入れて、nginxと連携させます。

まずはインストール

$ sudo apt-get install php php-fpm php-mysql

PHPプラグインを有効化

$sudo vi /etc/php/7.4/fpm/php.ini

cgi.fix_pathinfo=0

phpプラグインを再起動

$ sudo systemctl restart php7.4-fpm

nginxの設定

$ sudo vi /etc/nginx/sites-available/default

serverの項を書き換えます

server {
listen 80 default_server;
listen [::]:80 default_server;

root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;

server_name [ドメイン名];

location / {
try_files $uri $uri/ =404;
}

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}

設定を読み込む

$ sudo systemctl reload nginx

お次はPHPが動いていることの確認

$ vi /var/www/html/info.php

以下のコードを書く。

これはPHPの情報を一覧に表示するコード

<?php

phpinfo();

?>

保存したらブラウザでinfo.phpにアクセスしてみる。

PHPの情報が表示されればOK!