CloudflareTunnelでポート開放不要のNetSimutransを楽しもう!【Simutrans Advent Calender 2025】

この記事はSimutrans Advent Calendar 2025 12/07の記事です。

皆さ~ん、NetSimutrans、してますか~?

みんなで1つのマップを開発して遊べるのがSimutransの大きな魅力の一つであり、実際に多くのSimutransサーバが建っています。

その中には、パブリックに参加者を募っているサーバもあれば、少人数の身内で盛り上がるためのサーバもあります(本記事を掲載している「AhozuraNS」は後者のタイプのサーバです)。もし自分に合ったサーバがどこにもなければ自分で立ち上げることも可能です。

しかし、「NetSimutransを開催してみたいものの、様々なハードルから実現できていない」という方は多いのではないでしょうか?そしてその中でも一番の障壁は、やはりサーバを用意することかと思います。

レンタルサーバを借りるのは金銭的に厳しい、あるいはLinuxの操作に自信がない。かと言って、自宅のPCをサーバ代わりにしたくても、セキュリティの問題でポート開放はしたくない。勝手ながら、そんな理由でNetSimutransサーバ設立を躊躇してしまっている方が相当いらっしゃるのではないかと推察します。

そこで今回は、ポート開放不要で自宅のPCがサーバ代わりになる、とっておきの方法をご紹介します。お金はちょっとだけかかりますが、外部でサーバをレンタルするよりは格安で済むと思いますよ。

↑建前ここまで。

まあ誰もこんな面倒なことをやりはしないと思うけど、以前自分で運営しているLinuxサーバが死んだ際に、一時避難用として色々な手法を試している中でこの方法を確立したので、この機会に備忘録も兼ねておすそ分けをしたい!

ポート開放とそのリスク

さて、まずはポート開放とは何ぞやという話から始めていきましょう。

ポート開放とは、簡単に言うと自分のPCへの外部からのアクセスを許可するという意味です。

詳しくはわわわIT辞典に詳しいのでそっちを読んでいただきたいのですが、NetSimutransを開催するためには、参加者がアクセスできるようにサーバのポートを開放する必要があります。

しかし、ポート開放をすると、NetSimutrans参加者以外の悪意を持った人物からのアクセスをも許可することになってしまいます。最悪の場合、自宅のネットワークを乗っ取られたり、他の違法行為の踏み台にされたりすることになりかねません。

ここで、ポートを公開するとどうなるか、実際の例を見てみましょう。例えば、以下のスクショをご覧ください。

これは、この「AhozuraNS Addon Portal」が稼働しているWebサーバのアクセスログです。

Webサーバは必ずポートを開放しています。ポートを開放しないとサーバの中身にアクセスできません。

無数のアクセスログがありますが、これらは全て自動化されたボットによるものです。

黄色い四角で囲った部分を見ると、やたらと「wp-」で始まるURLにアクセスされているのが分かると思います。これは、「Wordpress」というシステムを利用しているサイトへのアクセスを試みているものです。

WordPressとはブログを作るためのプログラムで、今お読みになっているこのサイトもWordpressで動いています。

手軽で便利なのですが、実はちょいちょい脆弱性も報告されていて、それを放置していると、最悪の場合にはサイトを乗っ取られてしまうこともあります。

このログに書いてある「https://atelier.kasu.me/」はWordpressを利用していないので、全てエラーとして記録されているのですが、では何故存在しないURLへのアクセスログが残っているのでしょうか?

これはおそらく、何らかの目的のために「数撃ちゃ当たる」方式でWordpressを探しているのだと思います。

相手が見えないのでWordpressを発見してから何をしたいのかは不明ですが、少なくとも、存在しないURLに片っ端からアクセスしてくるようなbotなんかロクなもんではないでしょう。事実として、Wordpressの脆弱性を突いてサイトを乗っ取るためにネット上のWordpressを片っ端から巡回している悪意のあるボットも存在するのです。

この場合はWordpressの例を取り上げましたが、インターネット上には他のソフトウェアやハードウェアの脆弱性を狙ったボットも大量に稼働していまして、もし自宅のポートを開放するとなると、自宅もこのようなアクセス試行の嵐に遭うことになります。

そして、もし脆弱性を突かれてしまい、自宅ネットワークのに侵入されてしまったら……

考えただけでも恐ろしいですね。ポートを開放するにはそれなりの覚悟が必要なわけです。

Cloudflareの紹介

ここまでポート開放の危険性ばかりを解説してきましたが、そうは言っても、時にはポート開放が必要になることもあります。

危険を最小限に抑えつつポート開放の利便性を両立する方法はないのでしょうか?

この問いには様々な答えがありますが、今回は記事のタイトルにもある通り、セキュリティ面をCloudflareに任せる方法を紹介いたします。

Cloudflareとは

CloudflareはアメリカのIT企業です。ネット上で稼働している任意のサービスに対して、IPアドレス(ネット上における住所のようなもの)の秘匿、怪しいアクセスの遮断、人間かどうかの判定、コンテンツのキャッシュなど、様々な機能を提供しています。

Cloudflareの立ち位置を端的に表した図

先日、Twitterを含む多くのWebサービスへのアクセスが不安定になったことを覚えていますでしょうか?あれの原因になったのがCloudflareですから、この件で名前を覚えている方もいるかもしれません。あるいは、海賊版サイトの件で賠償命令が下されたことで覚えている方もいるでしょう。

……何故か最近Cloudflareに関するトピックはネガティブなものばかりとなっていますね。

誤解しないでいただきたいのですが、Cloudflareの障害が起きることは滅多になく、あったとしてもすぐ復旧することがほとんどなので、信頼性は依然として高いと言えるでしょう。また、障害の影響が広範囲に及んだのは、それだけ多くの企業がCloudflareのセキュリティを信頼し採用していたということの証です。

では、なぜそれほど多くの企業がCloudflareを利用しているのでしょうか。

悪意渦巻くインターネットにおいて、セキュリティの不備に起因する損害のリスクは計り知れません。そのため、自社で一からセキュリティの設計をすることにコストをかけるよりも、全て信頼できる会社に委託してしまおう、という判断を下す会社が多いのです。

では、Cloudflareの働きぶりを簡単に見ていきましょう。ある企業Aが運営するサービスB(b.example.com)があるとして、典型的な事例を説明します。

まず、お客さんは誰でもサービスBを自由に利用できます。

しかし、サービスBを自由に利用できるのはお客さんだけではありません。悪意を持った攻撃者からも、サービスBのサーバが丸見えです。

企業Aも頑張って防御策を講じてはいますが、万が一にも突破されては困ります。

そこで、企業AはサービスBについてCloudflareを利用することを決めました。

すると、お客さんからはサービスBの稼働するサーバが見えなくなり、「b.example.com」にアクセスしてもCloudflareだけが見えるようになります。

このままだとサービスBが使えなくなってしまいます。しかし、Cloudflareは通常の場合、サービスBから受け取った情報をお客さんに「横流し」してくれるので、サービスは通常通りに利用することができます。逆に、お客さんから送られてきた情報も、CloudflareがサービスBに対して「横流し」します。こうして、見かけ上はCloudflareを利用する前と変わらずサービスを利用することができるのです。

一方で、悪意のある人がアクセスしてきた場合は挙動が異なります。

ここでハッカーが、「b.example.com」に対して大量のアクセスを仕掛け、サービスBを落とそうとたくらんでいます(いわゆるDDoS攻撃)。「b.example.com」の中身は本当はCloudflareですから、ハッカーからのアクセスは最初にCloudflareに到達します。Cloudflareはここで、「こいつは悪いことをしようとしているな」と気付きます。このように判定された場合、CloudflareはサービスBの情報を「横流し」してくれません。アクセスが遮断されるわけです。サービスBの平和は保たれました。

また、別のハッカーは、「b.example.com」の情報を読み取って、その情報を足掛かりに企業Aに対して別の攻撃を仕掛けようとしています。しかし、「b.example.com」の中身はCloudflareですから、この試みも失敗します。企業Aの匿名性も保たれました。

つまり、先程の話に戻りますが、海賊版サイトがCloudflareを利用していたのは、身元を隠したいような悪い人ですらもCloudflareのセキュリティや匿名性を信頼していたということの表れです。(匿名性が大事なのは同意しますが、それを良いことに犯罪行為をしてはいけません。当然のことですが、念の為。)

ここまで長々と説明してきましたが、つまり何が言いたいかというと、自力で生兵法のセキュリティを組み立てるより、素人は黙って思考停止でCloudflareに丸投げした方がよっぽどいいぞ!ということです。身内向けのNetSimutransとはいえ、ネットに公開する以上は外敵に晒されていると考えたほうが無難です。セキュリティ面の不安は、全部Cloudflareに押し付けてしまおうというのが今回の記事のメインになります。

Cloudflare Tunnels の仕組み

なぜ、Cloudflare Tunnelを使うと安全なのでしょうか?

一般的なポート開放は、サーバのドアにカギをかけずに開け放しておくようなもので、攻撃に晒されるリスクが極めて高いです。

一方、Cloudflare Tunnelは、サーバのドアを開けずに、サーバ側からCloudflare側安全な“トンネル”を作って外の世界とつなぐ仕組みです。外から直接攻撃されにくくなり、さらに外側でいろいろな防御を付けられるため安全性が高くなります。

この接続は暗号化され、Cloudflare経由で外の人がコンテンツにアクセスできるようになります。重要なのは「外からサーバへ直接入り込むわけではない」点です。

もっと簡単に言いましょう。

たとえば、皆に見せたいポエムがあるとします。

最初は「俺の家にあるから誰でも勝手にドアを開けて見に来てね。もし良ければ感想も書いていってね」としていました。ところが、ポエムを読みに来た人のフリをした泥棒に入られてしまいました。

そこで、「公民館にある掲示板に貼っとくから、そこを見に行ってね」ということにしました。これなら、家のドアを開けなくても文書を皆に見せることができました。

後日、再びその掲示板を見に行ったら、有難いことに読んだ人からの感想が書いてありました。それどころか、公民館の人が不審者を追い払ってくれていたようです。

この例では、「俺の家」が「PC」、「皆に見せたいポエム」が「サーバの内容(本稿ではSimutrans)」、「公民館」が「Cloudflare」、そして「家から公民館まで貼りに行ったり反響を見に行ったりする道のり」を担うのが「Cloudflare Tunnel」です。結果は同じなのに、家のドアを開け放さずに済みました

実際にはCloudflareとの往復の送迎もCloudflare側でやってくれるので、こちら側の手間は変わりません。

さらに、オプションでIPアドレスのフィルタリングや二要素認証の設定などを設定すれば、よりセキュリティを高めることができます。

アカウント作成

ということで、さっそくアカウントを作成していきましょう。

と言ってもアカウント作成は簡単で、Googleアカウントをお持ちの方は、Googleアカウント連携で簡単にアカウントを作成することも可能です。

私はもうアカウントを持っていますのでアカウント作成方法をスクリーンショット付きで説明することができません。他のサイト等を見ながらやってください。

ドメイン取得

今回登場する唯一の課金アイテムが「ドメイン」です。今回、ドメインだけは購入していただく必要があります。

既に独自のドメインを持っている方はそちらを使えば追加費用0円ですが、そのような人はあまりいないでしょうから、ドメインを取得するところから説明します。

ちなみに、無料で入手できてネームサーバを自由に設定できるドメインというのは、残念ながら事実上存在しないようです。一応、本稿の執筆にあたって「無料ドメイン」を謳うサービスに何件か申し込んでみたのですが、どこもまともに機能していないようでした。なのでここは諦めてお金を払いましょう。

どのレジストラから取得しても構いませんが、ネームサーバを自由に設定できるレジストラを選んでください。おすすめはCloudflare Registrarです。Cloudflareは原価+消費税でドメインを提供していますので、理論上最安でドメインを入手することができます。Cloudflareのアカウントも作成したことですし、迷ったらCloudflare Registrarを利用するのが良いでしょう。

ドメイン名は何でも良いです。特にこだわりがないなら、購入費と維持費を見て決めてください。7ドルぐらいで取得できるものもありますので、安いの買ってNetSimutrans参加者の人数で割り勘すればいいと思います。

Cloudflare Tunnelの設定

以降、本稿では「example.com」を取得したという体で解説を進めていきます。

サーバ側の設定

Zero Trust の起動

ダッシュボードから「example.com」を選択し、左側のメニューから「Access」→「Zero Trustを起動する」を選択します。

基本的にこの機能を利用しているだけならお金を請求されることはありませんが、初回ログイン時は支払い方法の入力を求められることがあります。入力しないことには後続の作業に進めないので、入力するだけ入力して続けてください。

支払情報登録を完了するとZero Trustの画面に移動します。

トンネルの作成

Zero Trust 画面

続いて、「ネットワーク」→「ルート」→「Cloudflare Tunnelを作成」の順で選択します。

すると、トンネルの種類を選択する画面に遷移しますので、「Cloudflared」を選択してください。

トンネルの種類を選択する画面

選択すると、トンネルに名前を付ける画面に遷移します。

トンネルの名前を付ける

適当な名前をつけて「トンネルを保存」を押してください。名前は何でも良いです。まあ分かりやすい名前が良いでしょう。

トンネルに名前を付ける画面

PCにCloudflaredをインストールする

名前を付け終わると、以下の画面に遷移します。

Windowsの場合このような画面が出る

環境はお使いのOSを選んでください。その後の流れは画面に書いてある通りですので、画面の指示に従って、「Cloudflared」をインストールしてください。

「Cloudflared」とは、「Cloudflare Tunnel」を構築するためのソフトウェアです。

ここの画面に出ているトークンは生命線みたいなモンなので、自分の生命だと思って厳格に管理してください。

上記画面の通りの操作を実行したら、画面下部にコネクタIDが表示されるはずです。ステータスが「接続済」になっていればOK。「次へ」を押してください。

コネクタIDが表示された

トラフィックのルーティング設定

次に「トラフィックのルーティング」画面に遷移します。ここでは、トンネルにアクセスするための名前を付けます。

「トラフィックのルーティング」画面

「サブドメイン」は任意の名前でOKです。但し、もし他にサブドメインを使用している場合、被らないようにしてください。

「タイプ」は「TCP」を選択します。「URL」はSimutransが稼働しているローカルアドレスを入力します。Simutrans側の設定を変更していない限り、「localhost:13353」などになると思います。「13353」がSimutransの利用するポート番号になります。

ここまで入力できたら「セットアップを完了する」をクリックします。

以下のような画面になっていたら成功です。

設定完了

「ステータス」が「HEALTHY」になっていることを確認してください。

Simutrans本体の起動

ここまできたら、PCをサーバとする準備は終わっています。Simutransをサーバモードで起動しましょう。先程の「トラフィックのルーティング」工程で指定したポート番号で起動するようにしてください。

これにてサーバの設立は完了です。

クライアント側の設定

Cloudflare Tunnelを利用してNetSimutrnasをする場合、クライアント(=参加者)側もCloudflaredをインストールする必要があります。これはまあまあ難点ですね。

①コマンドプロンプトを管理者権限で開き、以下のコマンドを打つ(初回のみ)

winget install --id Cloudflare.cloudflared

②以下のコマンドを打つ(以下、接続するたび毎回必要)

cloudflared access tcp --hostname netsimutrans.example.com --url localhost:13354

※一度やってうまくいかなかったらコマンドプロンプトを閉じて再度管理者権限で開くとうまくいきます。なぜ一度閉じるとうまくいくのかは不明。

③コマンドプロンプトは開いたまま、Simutransを起動する

④Simutransから接続する際に、接続先を

localhost:13354

にする

以上で接続できるようになるはずです。

お疲れさまでした。

デメリット・注意点

Cloudflaredのインストールが必要

先述の通り、サーバ側はもちろんクライアント側もCloudflaredのインストールが必要です。不慣れな参加者のために、わかりやすい手順書を用意するといいでしょう。

Cloudflare依存

当然ながら、Cloudflareが落ちている時はNetSimutransも落ちることになります。

サーバ側のセキュリティ

いくらポート開放より安全とは言っても、外部からの出入口を用意していることに変わりはありません。Cloudflare Tunnelを稼働しているPCのOSやCloudflaredは常に最新版に保つようにしましょう。可能であれば、IPアドレスの制限を設けておくとより安心です。

データ転送量

無料プランの場合、データ転送量は100MBまでらしいです。まあSimutransぐらいなら大丈夫じゃないかと思います。

おわりに

誰もやらないと思いますが、もしやるなら参考にしてください。

今年一年の総括・来年に向けて

今年、私はSimutransのアドオンをほとんど作れませんでした。申し訳ない。

ただSimutrans自体は引き続きやっておりまして、今年は身内NetSimutrans向けにツールの整備などを主に進めておりました。公開できる水準に達し次第こちらも世に出していきたいとは思っておりますので、今しばらくお待ちください。

他にもなんか色々中途半端に世の中には出せないぐらいの完成度のものが色々積まれているので、なるべく順次放出する方向でいきます。

コメント

タイトルとURLをコピーしました