Featured image of post 【Tailscale】大学LANがDLsiteへのアクセスをブロックするのでなんとかする【Exit node】

【Tailscale】大学LANがDLsiteへのアクセスをブロックするのでなんとかする【Exit node】

目次

はじめに

2024年現在、筆者は某大学の某研究室に所属しています。

大学では学生用のWi-Fiが提供されており、速度や通信品質もそこそこ安定しています。これは非常に親切でありがたいこと(膨大な学費を支払っているのでその程度当たり前だともいえる)です。

しかし、一つだけ重大な欠点を抱えています。

DLsiteへのアクセスが禁止されていることです。

大学側がどのような意図でこのような対応をしているのか定かではありませんが、全くもって正当だと思えません。そもそもDLsiteは単なるソフトウェアコンテンツ販売サイトであり、アクセスを禁止する理由がありません。学生の自由なインターネット接続を阻害しており、いち学生として非常に不愉快です。

さらに、筆者は普段からDLsiteのコンテンツを勉強や作業の供としています。DLsiteへのアクセスが禁止されることによって、DLsiteのコンテンツを閲覧するためのDLsite Playへのアクセスも不可能となり、作業効率の低下に直結します。このままでは、研究実績を上げるどころか、卒業研究の完遂すら怪しいと考えられます。

大学の学生というものは、大学や社会の方針に反対し、自らの意志を主張することが許されています。歴史がそれを証明しています。

そこで、本記事では、大学Wi-Fi下でもDLsiteへのアクセスを可能とするための環境を構築し、大学の不当なアクセス制限に反旗を翻していきます。

Tailscale

Tailscaleは、手軽に端末間のVPNを構築できるサービスです。

筆者は自宅のPCにSSH接続をするために、以前からTailscaleを使用していました。

Tailscale · Best VPN Service for Secure Networks

Tailscaleのアカウントを作成し、所有する任意のデバイスをTailscaleに接続すると、100.***.***.***のような、100から始まる固有のIPアドレスがそのデバイスに与えられます。Tailscale上に存在するデバイスは、この固有のIPアドレスによって管理されています。

Exit nodes

Tailscaleには、Exit nodeという機能があります。これは、Tailscaleネットワーク内に存在するデバイスからのインターネットへのアクセスを、自分の特定のデバイスを経由させることができる、という機能です。

例えば、スマホで特定のサイトを見ようとするとき、自分のスマホからダイレクトにそのサイトにリクエストを飛ばします。Exit node機能では、まず家のPC (Exit node)にリクエストを飛ばし、家のPCがそのサイトにリクエストを飛ばす、といったようなことができます。

いま、大学にDLsiteへのアクセスがブロックされているため、以下の図のような感じになっているといえます。

こんなかんじ

それを、Tailscale Exit nodeを使用することで、以下の図のように回避しようということです。

大学かわいそう

必要なもの

必要なものは以下のとおりです。

それぞれのデバイスはいずれもTailscaleに接続していることとします。ここでは詳細な接続方法は省略しますが、アカウントにログインして、以下のページの指示に従うだけです。

Download · Tailscale

自宅に置いておくPC

以降、サーバーと呼称します。

WindowsかLinuxが入ったPCがいいです。自宅で電源をつけっぱなしにすることを考えるとLinuxがいいのではないかなと思います。ラズパイやミニPCがあるといいですね。筆者にはそれが無いので、Misskeyサーバー兼機械学習用途で使っているUbuntuマシンを利用します。

PCが足りない、誰かいいかんじのミニPCくれー

サイトを開く側のPC・スマホ

以降、クライアントと呼称します。

サイトを開きたい側のPCやスマホです。今回は大学で使用するデバイス、つまり、DLsiteを閲覧するスマホを指します。

手順

特に難しいことはないと思います。

サーバー

先にサーバーの設定からいきます。

Linux用のTailscale (CLI)では、Exit nodeとして機能させるには以下のコマンドを使用します。

sudo tailscale up --advertise-exit-node

Windowsでは、タスクバーアイコンから Exit nodes -> Run exit node… と進みます。注意のウィンドウが表示されるので、「はい」をクリックします。

Run exit node… はい

その後Tailscaleの管理画面を開き、サーバーにしたいデバイスの... -> Edit route settings と進み、Use as exit nodeのチェックボックスをオンにします。

Machines - Tailscale

☑ Use as exit node

これで、サーバーをExit nodeとして接続することができる状態になりました。

クライアント

DLsiteを開きたいクライアント側のデバイスの設定です。

Windowsでは、タスクバーアイコンからExit nodesに進み、先ほどサーバーに設定したデバイスを選択するだけです。

さっきサーバーに設定したデバイス名

スマホでは、アプリのメイン画面からEXIT NODEに進み、さっき設定したデバイスを選択します。画像はAndroidのものですが、たぶんiOSでも同じだと思います。

EXIT NODE さっきサーバーに設定したデバイス名

動作確認

実際にExit nodeを経由しているか確認するためには、どのIPアドレスでサイトにアクセスしているかを確認できればよいです。この手のサイトはいくつかありますが、IPinfo.ioを使うのがいいと思います。

Trusted IP Data Provider, from IPv6 to IPv4 - IPinfo.io

Exit nodeがオフの状態とオンの状態で、異なるIPアドレスからアクセスしていることが確認できればOKです。

このとき、サーバーとクライアントが両方とも同じLAN内に存在している(両方自宅のWi-Fiに接続している)と意味がないので、Wi-Fiをオフにしてモバイルデータ通信中のスマホで確認するのがよいと思います。

おわりに

これで、大学でもDLsiteが閲覧できるようになりました。DLsiteを閲覧できるおかげで、私の研究成果が約束されたといっても過言ではありません。めでたしめでたし。

私と同じように、大学などの組織から不当なアクセス制限を受けている場合、この記事の内容が役に立つはずです。

最後に、DLsiteで購入できる筆者のおすすめの作品を紹介して終わります。

以上です。

Hugo で構築されています。
テーマ StackJimmy によって設計されています。