こんにちは、てつです!
前回は、Wiki.jsを「最強の技術ノート」にするための日本語設定やデザインの微調整を行いました 。
これで家での執筆環境は完璧になりましたが、エンジニアならこう思うはずです。
「電車の中やカフェで思いついたアイデアも、すぐに自分のWikiに書き込みたい」
しかし、自宅サーバーを全世界に公開(ポート開放)するのは、セキュリティ的に勇気がいりますよね。
そこで今回は、独自ドメイン取得やポート開放の苦労を過去のものにする、Tailscale × MagicDNS という現代の最適解を紹介します!
関連記事は以下に掲載しておきます!



-scaled.png)

1. なぜ「ポート開放」を卒業するのか?
従来、外から自宅サーバーにアクセスするには、ルーターの「ポート開放」を行い、グローバルIPをDDNSなどで紐付けるのが一般的でした。しかし、これには2つの大きな壁があります。
- セキュリティリスク: 443番ポートなどを開ければ、世界中の攻撃者からスキャンされる対象になります 。
- ネットワークの壁: マンションの共有回線やキャリアの仕様(IPv4 over IPv6など)で、そもそもポートが自由に開けられない環境が増えています 。
これらを一気に解決するのが、仮想メッシュVPNサービス「Tailscale」です 。
2. Tailscaleが「新常識」である理由
Tailscaleは、デバイス間に安全なトンネルを自動で張り巡らせる技術です。
- 設定が驚くほど簡単: 各デバイスにアプリを入れてログインするだけ。複雑なルーティング設定は一切不要です 。
- MagicDNSの魔法:
wiki.localやサーバー名.xxx.ts.netといった覚えやすい名前で、IPアドレスを意識せずにアクセス可能になります 。 - 高いセキュリティ: 全ての通信はエンドツーエンドで暗号化。Tailscaleのネットワークに参加している自分のデバイス以外からは、あなたのWikiは存在すら見えません 。
3. 構築手順:Wiki.jsをTailscaleの網に組み込む
ステップ1:サーバーへのTailscale導入
自宅サーバー(Linux)にTailscaleをインストールします。
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
ステップ2:MagicDNSの有効化
Tailscaleの管理画面(Admin Console)で「MagicDNS」を有効にします。

これにより、サーバーに付けた「マシン名」でアクセスできるようになります。
ステップ3:Nginx Proxy Manager(NPM)との連携
前々回に導入したNPMの設定を、TailscaleのIPアドレスに向けるように調整します。
これにより、VPN経由であっても、これまでと同じ美しいURLでWiki.jsにアクセスできるようになります 。
今の状態: IPアドレスや適当な wiki.local などで登録されている。
これから: wiki.マシン名.xxx.ts.net (Tailscaleが発行するドメイン)をNPMの「Domain Names」に追加します。
NPMの管理画面で「Add Proxy Host」を開き、以下の通りに入力します。
| 項目 | 入力内容 | 役割・注意点 |
| Domain Names | wiki.ubuntu-prodesk.xxxx-yyyy.ts.net | 重要: 先頭に wiki. を付けるのがコツです。 |
| Scheme | http | コンテナ間はHTTPで通信します。 |
| Forward Host | wiki-app | docker-compose.ymlで指定したコンテナ名です。 |
| Forward Port | 3000 | Wiki.jsが内部で動いているポート番号です。 |
| Websockets Support | ON | Wiki.jsのリアルタイム編集に必須。必ずONに! |
実際に接続してみます。
NPMの管理画面から飛べるか試していきます!


検索バーに注目してください!登録した情報で接続できてますね!成功です。
【トラブル解決編】MagicDNSでサブドメインが繋がらない時の正攻法
サーバー側のNPM(Nginx Proxy Manager)を完璧に設定しても、ブラウザで「サーバーのIPアドレスが見つかりません」と怒られる……。この時、問題はサーバーではなく「あなたのPC(クライアント)」にあります。
1. 犯人は「名前解決」の失敗
MagicDNSが自動で解決してくれるのは、あくまで マシン名.テイルネット名.ts.net という一階層だけです。 今回のように wiki. というサブドメインを勝手にPC側で追加しても、PCは「そのドメインの管理者は誰?」と迷子になってしまいます。
2. 切り分けの極意:nslookup
まず、何が原因かを特定するためにターミナルで以下のコマンドを叩きます。
nslookup wiki.ubuntu-prodesk.xxxx.ts.net 100.100.100.100
ここで Non-existent domain と出たら、「ドメイン名自体がこの世(Tailscale網内)に存在していない」という決定的な証拠になります。
3. 解決策:PCの「案内板(hosts)」に書き込む
Tailscale側でサブドメインを管理する設定(Serve機能など)もありますが、最も手っ取り早く、かつ確実なのが、PCの hosts ファイルに直接ルートを書き込む方法です。
【Windowsでの設定手順】
1.メモ帳を「管理者として実行」で開く。
2.C:\Windows\System32\drivers\etc\hosts を開く。
3.一番下の行に、以下のように「サーバーのTailscale IP」と「使いたいドメイン」をセットで書き込む。
100.x.x.x wiki.ubuntu-prodesk.tail0a6e7c.ts.net
4.保存する。
なぜこれで繋がるのか?
ブラウザはドメインにアクセスする際、以下の順番でIPアドレスを探しに行きます。
- PC内のhostsファイル(←ここで見つかれば即アクセス!)
- ブラウザのキャッシュ
- 外部のDNSサーバー
今回、hostsに直接書き込んだことで、PCが外部のDNS(100.100.100.100)に聞きに行く前に「自力で解決」できるようになったため、無事に開通したのです。
なぜ「wiki.〜」と入力するのか?
単に ubuntu-prodesk.xxxx-yyyy.ts.net とだけ入力しても繋がりますが、あえて先頭に wiki. を付けることを推奨します。
- 理由: 今後、同じサーバーで別のサービス(例:Grafanaやブログなど)を立ち上げた際、
grafana.〜やblog.〜と使い分けることができるようになるからです。 - この設定をするだけで、Tailscaleに繋がっているスマホのブラウザから、ポート番号なしのURLを叩くだけであなたのWikiが開くようになります。
4. 外出先からの「執筆体験」が変わる
これで、あなたのスマホやノートPCにTailscaleアプリを入れておくだけで、世界中どこにいてもブラウザに wiki.local と打ち込めば、いつものWiki.jsが開きます 。
- 爆速アクセス: 閉域網内なので、面倒なログイン認証を何度も繰り返す必要がありません。
- スマホ最適化: Wiki.jsはレスポンシブ対応なので、移動中の隙間時間にサクサク閲覧・編集が可能です 。
運用監視リーダーの視点:可用性とセキュリティのバランス
「全世界に公開しない」という選択は、運用負荷を劇的に下げます。攻撃ログの監視やWAFの設定に追われることなく、「中身を書くこと」に集中できる。これこそが、個人開発者にとっての「最強の運用ロジック」です。
次回予告:鉄壁バックアップ編
外から書けるようになったら、次に怖いのは「データの喪失」です。 第4回では、Wiki.jsの目玉機能である「Git Storage」を設定します。記事を書くたびにGitHubへMarkdown形式で自動保存される「絶対に知識を失わない仕組み」を構築しましょう!
お楽しみに!


コメント