2021/09/21

繁中版「あいミスR」を日本からプレイする方法

2021年08月19日より、海外プラットフォーム「Johren」にて繁体字版「あいりすミスティリア!」のサービスが開始したのですが、日本からは接続できません。接続元IPアドレスでブロックされる仕組みになっているようなので、国外のIPアドレス経由で接続する手段を構築してみました。

構築に使用したもの

Amazon Lightsail

AWSが提供しているVPS(Virtual Private Server:仮想プライベートサーバー)サービス。Amazon EC2より低コスト(月額 3.50ドルから)。

IPsec VPN Server Auto Setup Scripts

ワンライナーでIPsec VPNサーバーが構築できるスクリプト。このサーバーを経由してJohrenへ接続します。

構築手順

インスタンス作成とIPsec VPNサーバーの構築

AWSマネジメントコンソールにサインインし、AWS CloudShellにて下記コマンドを入力します。

$ aws lightsail create-instances --instance-names xxxxxxxxxx --blueprint-id amazon_linux_2 --bundle-id nano_2_0 --region ap-southeast-1 --availability-zone ap-southeast-1a --user-data "wget https://git.io/vpnsetup -O vpnsetup.sh && VPN_IPSEC_PSK='xxxxxxxxxx' VPN_USER='xxxxxxxxxx' VPN_PASSWORD='xxxxxxxxxx' sh vpnsetup.sh"
  • –instance-names xxxxxxxxxx:インスタンス名
  • –blueprint-id amazon_linux_2:サーバーOS
  • –bundle-id nano_2_0:インスタンスプラン
  • –region ap-southeast-1:インスタンスロケーション(シンガポール)
  • –availability-zone ap-southeast-1a:アベイラビリティゾーン
  • VPN_IPSEC_PSK=’xxxxxxxxxx':IPsec VPNの事前共有鍵(Pre-Shared Key)
  • VPN_USER=’xxxxxxxxxx':ユーザー名
  • VPN_PASSWORD=’xxxxxxxxxx':パスワード

インスタンスの作成が完了したら、起動状態を確認します。

$ aws lightsail get-instance-state --instance-name xxxxxxxxxx --region ap-southeast-1
{
    "state": {
        "code": 16,
        "name": "running"
    }
}

サーバーOSにはAmazon Linux 2を利用しましたが、Ubuntu、Debian、CentOSにも対応しているのでOSはお好みで。下記コマンドでサーバーOSの「–blueprint-id」を調べることができます。

$ aws lightsail get-blueprints --region ap-southeast-1 --query 'blueprints[].{blueprintId:blueprintId,name:name,group:group,productUrl:productUrl,platform:platform}' --output table

詳細:AWS CLI コマンドを使用して Lightsail インスタンスを管理する方法を教えてください。

ポートの開放と閉鎖

インスタンスの起動が確認できたら、サーバーへ接続できるようにポートを開放します。

$ aws lightsail open-instance-public-ports --instance-name xxxxxxxxxx --region ap-southeast-1 --port-info fromPort=500,toPort=500,protocol=UDP
$ aws lightsail open-instance-public-ports --instance-name xxxxxxxxxx --region ap-southeast-1 --port-info fromPort=4500,toPort=4500,protocol=UDP
  • –port-info fromPort=500,toPort=500,protocol=UDP:ISAKMP/UDP
  • –port-info fromPort=4500,toPort=4500,protocol=UDP:IPsec-NAT-T/UDP

続いて不要なポートを閉鎖します。

$ aws lightsail close-instance-public-ports --instance-name xxxxxxxxxx --region ap-southeast-1 --port-info fromPort=80,toPort=80,protocol=TCP
  • –port-info fromPort=80,toPort=80,protocol=TCP:HTTP/TCP

最後に設定を確認します。

$ aws lightsail get-instance --instance-name xxxxxxxxxx --region ap-southeast-1 --query 'instance.networking.ports'
[
    {
        "fromPort": 22,
        "toPort": 22,
        "protocol": "tcp",
        "accessFrom": "Anywhere (0.0.0.0/0 and ::/0)",
        "accessType": "public",
        "commonName": "",
        "accessDirection": "inbound",
        "cidrs": [
            "0.0.0.0/0"
        ],
        "ipv6Cidrs": [
            "::/0"
        ],
        "cidrListAliases": []
    },
    {
        "fromPort": 4500,
        "toPort": 4500,
        "protocol": "udp",
        "accessFrom": "Anywhere (0.0.0.0/0 and ::/0)",
        "accessType": "public",
        "commonName": "",
        "accessDirection": "inbound",
        "cidrs": [
            "0.0.0.0/0"
        ],
        "ipv6Cidrs": [
            "::/0"
        ],
        "cidrListAliases": []
    },
    {
        "fromPort": 500,
        "toPort": 500,
        "protocol": "udp",
        "accessFrom": "Anywhere (0.0.0.0/0 and ::/0)",
        "accessType": "public",
        "commonName": "",
        "accessDirection": "inbound",
        "cidrs": [
            "0.0.0.0/0"
        ],
        "ipv6Cidrs": [
            "::/0"
        ],
        "cidrListAliases": []
    }
]

IPアドレスの確認

サーバーのIPアドレスを確認します。

$ aws lightsail get-instance --instance-name xxxxxxxxxx --region ap-southeast-1 --query 'instance.publicIpAddress'
"xxx.xxx.xxx.xxx"

インスタンスを再起動するとIPアドレスが変わってしまうので、必要であればStatic IPを取得し、インスタンスへ紐付けます。

詳細:Create a static IP and attach it to an instance in Amazon Lightsail

スマートフォンへの設定

Johrenの「あいミスR」アプリはiOS端末に対応していないので、Android端末に設定します。Android端末の場合、機種によって設定方法がまちまちなので、「設定」から「VPN」という項目を探してください。

  • 名前:VPN接続名を適宜入力
  • タイプ:「IPsec Xauth PSK」を選択
  • サーバー:サーバーのIPアドレスを入力
  • IPsec事前共有鍵:「VPN_IPSEC_PSK」の設定を入力
  • ユーザー名:「VPN_USER」の設定を入力
  • パスワード:「VPN_PASSWORD」の設定を入力

JohrenにVPN経由で接続

VPN接続を有効にします。

Johren」にアクセスし、まずはユーザー登録をします。登録が終わったら繁中版「あいミスR」を検索。

「Install app」をクリックするとアプリがダウンロードされるのでインストール。

これでAndroid端末にて繁中版「あいミスR」の遊戯が開始できます。

おわりに

国外のIPアドレスから接続するだけなら、VPNアプリをインストールすれば簡単なのですが、通信が傍受されている可能性があったり、費用が高かったりしたので自作してみました。

BlogBlog