2021/09/21
繁中版「あいミスR」を日本からプレイする方法
2021年08月19日より、海外プラットフォーム「Johren」にて繁体字版「あいりすミスティリア!」のサービスが開始したのですが、日本からは接続できません。接続元IPアドレスでブロックされる仕組みになっているようなので、国外のIPアドレス経由で接続する手段を構築してみました。
構築に使用したもの
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アプリをインストールすれば簡単なのですが、通信が傍受されている可能性があったり、費用が高かったりしたので自作してみました。