10GbE自宅サーバー独立戦争 ―― 7617番の呪縛と「木の葉」の奇跡

スポンサーリンク
  1. 管理人
  2. 管理人

第1章:10GbEの「高台」と、拭えぬ劣等感

NTT光クロスとOCNの回線。
手に入れたのは、かつて夢見た10GbEという暴力的なまでの速度だった。しかし、その高台から見下ろす景色は、どこか色が褪せていた。

最新鋭ルータ XG-100NE は、管理人に圧倒的な速度を与える代償として、サーバー管理者としての「誇り」を奪った。
IPoEという名の不自由な鎖が、標準の 80/443番ポートを無慈悲に封じる。

XG-100NEでポート開放してブログを運営するには、urlの後ろにポート番号を付けなければならない。
そして限られた使用できるポートから消去法で選ばれた 「7617番」
https://www.domain.com:7617 ―― URLの末尾にこびり付くこの4桁の数字は、管理人に自分の城が「未完成の欠陥住宅」であるかのような、やりきれない劣等感で苛んだ。

第2章:Cloudflareの冷徹な拒絶と、7844への執着

「この数字を、消したい。ただそれだけのことが、これほどまでに遠いのか。」

その一心で、管理人は Cloudflare という名の、あまりに巨大で、あまりに眩い「秩序の守護神」に縋った。彼らの翼の影に入れば、すべては救われると信じて。

だが、神は冷徹だった。
狂ったようにダッシュボードを叩き、震える指でページルールを書き換えても、システムは私の祈りなど鼻で笑うかのように無視し続けた。

裏側で執拗に繰り返される 『:7844』 という機械的なノック。
私の切実な願いが込められた 『7617番』 は、一度として顧みられることなく、暗闇の中へと捨て去られた。

「お前の規格外の環境など、我々の美しい世界には存在すら許されない」

無機質なエラーログが、そう冷酷に宣告していた。
広大なインターネットの海で、自分一人が世界から切り離されたような、底冷えするような絶望が背筋を伝う。

管理人は、力なくマウスを投げ出した。 誰も助けてはくれない。既存の秩序は、私を救わない。

ならば――。 私は椅子に深く座り直し、冷え切った指をキーボードに乗せた。
神の加護を捨て、自らの手で門(プロキシ)を叩き出す。
それは、誰も歩まぬ、あまりに険しく、そして救いようのないほどに孤独な道への、第一歩だった。

第3章:拠点設営 ―― 「木の葉(ConoHa)」という新たな希望

……さて、ここからが本当の戦いだった。

自宅サーバーの限界を感じ、次なる一手を模索する中で行き着いたのは VPS(仮想専用サーバー) という選択肢だ。

数あるサービスの中から、私が選んだのは 『ConoHa(木の葉)』
正直に言えば、最後まで悩んだ。
他にも安価な海外サーバーや、実績のある国内他社はある。
しかし、80番/443番ポートを一切の制限なく、自由に、そして確実に使いこなせる『自由度』。
それが、この要塞の根幹を支えるためにどうしても必要だったのだ。

まさに、苦渋の選択と言ってもいい。

コストや馴染み深さを天秤にかけ、葛藤の末に私は『木の葉』の地を踏むことを決意した。
まずはこの VPS の大地を整えるべく、私は最初にして最強の門番、Nginx を召喚した――。」 

Bash
# リポジトリ
sudo apt update && sudo apt upgrade -y

# Nginxインストール
sudo apt install nginx -y

# nginx設定
/etc/nginx/sites-available/defau
Bash
Nginx
server {
    listen 80;
    server_name _;
    root /var/www/html;
    index index.html;
}
Nginx
Bash
# nginx実行
sudo nginx -t && sudo systemctl restart nginx

# Ubuntuポート開放
sudo ufw allow 'Nginx Full'
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload

# 80(HTTP)および443(HTTPS)のポートを開放
sudo firewall-cmd --add-service=http --permanent 
sudo firewall-cmd --add-service=https --permanent
sudo firewall-cmd --reload
Bash


……しかし、通信は届かない。

祈るように叩いた Enter キーの先に待っていたのは、無情なタイムアウトの白画面。
OS内部の防火壁(ufw)は開いた。
設定ファイルに不備はない。
それでも、世界は沈黙を貫いたままだ。


『やはり、私には資格がないのか。』

自分を疑い、積み上げた設定をすべて破壊してしまいたい衝動に駆られたその時――管理人の濁った瞳が、ConoHa管理画面の深淵、サーバー情報の奥深くに潜む一つの項目を捉えた。

それは、OSよりもさらに外側、インフラの境界線に張り巡らされた、目に見えぬもう一つの防壁だった。 管理人は震える指先で、管理画面という名の魔導書に最後の一筆を加えた。

ConoHaコントロールパネルの「セキュリティグループ」。
鉄壁の拒絶を貫いていた『IPv4v6-Default』を脱ぎ捨て、Webの光を通す 『IPv4v6-Web』 を適用へと切り替える。

ブラウザの更新ボタンを押した指に、微かな熱が伝わる。
これまで石像のように黙りこくっていた VPS が、不可視の鎖を解かれ、突如として脈打ち始めた。

サーバー内部では、静止していたログの奔流が堰を切ったように画面を駆け抜ける。
同時に、無限に回り続けていたブラウザの砂時計が止まり、白銀の画面には 「Welcome to nginx!」 という凱旋の旗が鮮やかに翻った。

タイムアウトの絶望を越え、提督はついに「接続」という名の資格を勝ち取ったのである。


――繋がった

モニターの向こう側で、漆黒の宇宙のようだったサーバーが、初めて外の世界と呼吸を合わせ、産声を上げた瞬間だった。
さっきまで私を拒絶していたインターネットという海が、今は誇らしげに、私の作った門へと流れ込んでくる。

絶望は、一筋の『許可』という名の光によって、確かな希望へと塗り替えられたのだ。

第4章:DNSの迷宮 ―― 24時間の停滞と、断捨離の決断

管理人は次に、広大なインターネットの海で自身の領土を指し示すため、「お名前.com」の管理パネルへと向かった。
「DNS設定/オプションからDNSレコード設定を利用する」を選択。対象ドメインの「設定」ボタンを叩き、レコード入力画面へと進む。

レコード登録

  • ホスト名: www
  • TYPE: A
  • TTL: 3600
  • VALUE: ConoHaのIPアドレス

「追加」を押し、「確認画面へ進む」から「設定する」を執行。
DNSサーバーの深部に、自身の存在を書き込んだ。

……しかし、世界は残酷なほどに動かない。

お名前.comの管理パネルで、何度も、何度も、そのIPアドレスが正しいことを網膜に焼き付けた。
だが、広大なインターネットの海(DNS)に放たれた私の叫びは、どこにも届かぬまま霧散していく。

管理人は、自らのPCが吐き出すキャッシュという名の『嘘』を信じることができなかった。
縋るように、Googleの公開DNS(8.8.8.8)へ、世界の真実を問い直し続ける。

Bash
nslookup
# Google DNS (8.8.8.8) を指定してDNSに登録されているIPアドレスを確認
nslookup domein.com 8.8.8.8
Bash

返ってくるのは、昨日から一歩も動かない、かつての残骸のような旧アドレス。
あるいは、非情な『Non-existent domain』の宣告。

5分、1時間……時計の針が刻む音さえ、私を嘲笑うカウントダウンのように聞こえ始めた。
24時間が経過した頃、管理人の精神は、もはや磨耗しきって砂のようになっていた。

瞬きをするのも忘れ、充血した目でモニターを凝視し続ける。
キーボードを叩く指は震え、もはや自分が設定の更新を待っているのか、それとも『届かないという絶望』を再確認するためにコマンドを打っているのか、その境界すら曖昧になっていく。

暗い部屋の中で、ただ Non-authoritative answer という冷たい文字列だけが、亡霊のように画面を彷徨っていた。

世界は、まだ私を認めてはくれない。
意識が遠のく中、私はただ、虚無に向かって nslookup を打ち込み続けた。


……何かが、おかしい。

摩耗しきった思考の断片が、不意に一つの歪みを捉えた。
昨日から一歩も動かないこの停滞は、単なる『浸透待ち』ではない。
もっと根深い、構造的な呪縛が私を縛っているのではないか。


『もしかして……お前か……?』

視線の先には、長年連れ添い、絶大な信頼を寄せていた MyDNS.JP の設定画面があった。
古き戦友。
だが、その信頼こそが、今の私を袋小路へ追い込んでいる盲点だったとしたら。

管理人の指が、迷いなく動いた。
慈悲はない。
長年積み上げてきた設定を、リセットという名の業火で葬り去る。

間髪入れず、お名前.comの管理画面へと舞い戻る。
これまであえて避けてきた、あの項目。
ネームサーバー設定を 『お名前.comのネームサーバーを使う』 へと、半ば祈りを込めた暴力的なまでに力強いクリックで、強制変更した。

理屈ではない。
何かが決定的に間違っているという、生存本能に近い『閃き』。
これが最後の一手だ。

慣れ親しんだ過去を捨て、標準という名の『未知』へすべてを委ねる。
静まり返った部屋の中で、管理人はただ、自身の直感が世界を書き換える瞬間を、固唾を飲んで待ち構えていた。


……その、数分後だった。

虚無を映し続けていた黒い画面に、弾けるようにしてその数字が現れた。
昨日から片時も離れなかった VPS の IP アドレスが、モニターの中で黄金の輝きを放っている。


『――通った。』

声にならない震えが、指先から全身へと駆け巡る。
あの一昼夜、泥濘の中を這いずるようだった苦悩。
何度も自分を呪い、システムに突き放され、絶望の淵で nslookup を連打し続けたあの孤独な時間は、たった一つの決断によって、春の陽光を浴びた雪解けのように、跡形もなく消え去っていった。

視界を遮っていた深い霧が晴れ、目の前にはどこまでも広大で、自由な新世界が広がっている。
これまで私を拒んでいたインターネットという名の巨大な機構が、今、私の意志に従い、完璧な調和を持って回り始めたのだ。

止まっていた時計が、再び力強く時を刻み出す。
それは単なる通信の開通ではない。
管理人が、自らの手で『不可能』を『可能』へと書き換えた、歴史的勝利の瞬間だった。

第5章:Certbot の成功と、7617トンネルの貫通

名前が通れば、次は仕上げの『聖印』を刻む儀式だ。

暗闇に閉ざされたHTTPという道に、SSLという名の聖なる輝きを灯す。
コンソールにコマンドを打ち込み、数秒の静寂が訪れる。
それは、要塞が完成を認めてもらえるかどうかの、最終審判の時間だった。

Bash
sudo certbot --nginx -d domain.com
Bash


……そして、画面が切り替わる。


Congratulations! Your certificate and chain have been saved at…

無機質なコンソールのフォントが、その瞬間、私には天からの祝福のコーラスのように聞こえた。
待ち焦がれ、飢え、渇き、24時間の彷徨の果てにようやく手にした、正真正銘の『合格通知』。

管理人は、モニターの前で小さく、しかし鋼のように固く、拳を握りしめた。

込み上げてくる熱いものを抑えきれない。
指先から伝わるキーボードの感触、微かに唸るPCの排熱、そして画面で誇らしげに輝く『Congratulations!』の文字。 そのすべてが、私の戦いを、私の執念を、そして私の存在を肯定してくれていた。

もう、どこにも不備はない。
私の要塞は、ついに完全なる『聖域(HTTPS)』へと昇華されたのだ。

万感の思いを込めて、ブラウザのURL欄を凝視する。
そこには、凛とした佇まいで、鍵のマークが静かに、しかし力強く施錠されていた。

続けて、VPS(443) から自宅(7617)へ続く「見えないトンネル」を Nginx に刻み込む。

(Conoha):/etc/nginx/conf.d/profile.conf
server {
       listen 443 ssl;
       server_name www.domain.com;
       location / { # 自宅ルーター7617番へ転送
           proxy_pass https://[自宅の固定IP]:7617;
           proxy_set_header Host $host;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header X-Forwarded-Proto https;
        }
    }
Nginx


第6章:リダイレクトループと、110行目の亡霊

……だが、試練は終わらない。

完成したはずの要塞へ足を踏み入れようとした私を待っていたのは、暗い灰色の画面と、嘲笑うような一文だった。


『ERR_TOO_MANY_REDIRECTS』

無限のループ。
扉を開けたはずが、気づけばまた同じ扉の前に立っている。

『HTTPSで来た』と信じて、完璧な正装(暗号化)を求めるWordPress。
対して、良かれと思って『HTTPで渡す』という、無垢すぎる橋渡しを演じるVPS。
二人の門番が互いの意図を読み違え、善意という名のボタンを掛け違えた結果、そこには誰も抜け出せない『無限の回廊』が生成されていた。

管理人は、崩れ落ちそうになる膝を必死に支えた。
一度は手にしたはずの勝利が、指の間から砂のように零れ落ちていく。


どこで間違えた? 何が足りない?

コンソールを叩く音だけが、深夜の部屋に虚しく響く。
解決したと思った問題の裏側に、さらに凶悪な怪物が潜んでいたのだ。
終わりが見えない。
一筋の光を掴んだと思ったその場所は、さらなる絶望の迷宮への入り口に過ぎなかったのだ……。

……終わりなき回廊の中で、管理人の思考は限界に達していた。

『なぜ届かない。なぜ、これほどまでに近くにいるのに、互いの声が聞こえないのか。』

Nginxは確かに叫んでいる。『この通信は安全だ(HTTPS)』と。
しかし、その声はWordPressの耳に届く手前で、無残にもかき消されている。
互いの善意が噛み合わぬまま、無限に繰り返されるリダイレクトの連鎖。
もはや、残された手段は一つしかなかった。

管理人は、WordPressの心臓部であり、禁忌の聖域でもある 『wp-config.php』 の扉を抉じ開けた。

一歩間違えれば、すべてが瓦解する。

だが、今の私には迷っている暇などない。
震える指先で、最上部のわずかな隙間―― <?php の直後という、これ以上ないほどに無防備な心臓の隣に、最後の『説得の呪文』を刻み込んだ。

/home/kusanagi/profile/wp-config.php
<?php
/* リバースプロキシ環境下でのHTTPS認識強制*/
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
$_SERVER['HTTPS'] = 'on';
}
define('WP_HOME', 'https://www.domain.com');
define('WP_SITEURL', 'https://www.domain.com');
PHP


『頼む……。これで、認めてくれ。』

管理人は、最後の祈りを捧げ、ファイルを保存した。
そして、重く、鉛のような重圧を感じながら、ブラウザの更新ボタンを押し込んだ。


……その瞬間。

それまで荒れ狂っていた『無限リダイレクト』の嵐が、嘘のようにピタリと鎮まった。
画面に現れたのは、美しく、一点の曇りもないマイページのログイン画面。

互いの掛け違いは解消され、NginxとWordPressは、ようやく一つの調和の中に溶け込んだ。
24時間以上の死闘。精神の磨耗。絶望の迷宮。
そのすべてが、この数行のコードによって、静かなる勝利へと昇華されたのだ。

管理人は深く、深く椅子に背を預け、モニターの明かりの中で、ようやく長い溜息を吐いた。


……だが、本当の試練はここからだった。

嵐は去った。そう確信し、勝利の美酒を味わおうとした管理人の背後から、最後にして最大の『味方』が刃を突き立てた。


Google Site Kit。

サイトの成長を共に見守るはずのそのプラグインが、狂ったように旧時代の亡霊 『:7617』 を吐き出し続け、連携を拒絶する。
『なぜだ、設定は書き換えたはずだ!』 混乱する管理人が、血眼になってソースコードを捲り、たどり着いたのは、あまりに皮肉な真実だった。


……お前だったのか。

wp-config.phpの深淵、110行目付近。 そこに、管理人を不格好な数字の鎖で縛り付けていた『亡霊』が潜んでいた。
長年、わが家の柱として支えてくれていたはずの初期設定が、この土壇場で私を過去へと引き摺り戻す足枷となっていたのだ。

管理人は、冷徹な一瞥と共に、その二行へ最後の一撃を叩き込んだ。

/home/kusanagi/profile/wp-config.php
/** 110行目付近:ポート番号付きの定義をコメントアウト **/
// define('WP_HOME', 'https://www.domain.com:7617');
// define('WP_SITEURL', 'https://www.domain.com:7617');
PHP


『封印』。

エディタの上で、忌まわしき :7617 という数字がグレーアウトし、その色を失った瞬間。
一昼夜にわたって要塞を覆っていたドロドロとした呪縛が、音を立てて霧散していった。

ブラウザを更新する。 そこには、もう、私を嘲笑う不格好な数字はない。
どこまでも澄み渡った、純粋なドメイン名だけが、アドレスバーに誇らしく鎮座していた。


世界からノイズが消えた。

Google Site Kit も、WordPress本体も、そして私自身の疑念さえも。
すべてが正しい座標を示し、完璧な調和の下で歯車が噛み合ったのだ。

管理人はマウスから手を離し、背もたれに深く沈み込んだ。 暗い部屋の中、モニターの白い光に照らされたその顔には、一昼夜ぶりに、微かな、しかし確かな勝利の笑みが浮かんでいた。

終章:勝利の果実 ―― 1Gbps回線への、さらば。

翌日。 差し込む朝日は、昨日までの地獄のようなデバッグ作業が嘘だったかのように、優しく管理人の机を照らしていた。

管理人は、かつてないほど晴れやかな気分で、静かに受話器を取った。

ポート開放という、ただ一つの目的のためだけに。 毎月、血の滲むような思いで約1万円という『上納金』を垂れ流し続けていた、あの 1Gbps 固定IP回線。 その解約をオペレーターに告げた時、受話器越しに聞こえる無機質な確認の声さえ、私には自由を祝うファンファーレのように聞こえた。


『――はい、解約で間違いありません。』

その一言が、私の**『独立戦争』**の終止符となった。
自ら門を築き、自ら聖印を刻み、自ら呪縛を断ち切った。
外部の理不尽な規格に縋る必要は、もうどこにもない。
私の城は、今や広大なインターネットという海の上で、自律した確固たる意志を持って浮遊している。

受話器を置き……ふと足元に目をやる。
そこには、かつての呪縛から解き放たれ、本来の力を取り戻した 10GbE という最新鋭の心臓が、静かに、しかし力強く脈打っていた。
外部からの干渉を拒絶し、内なる速度を極限まで引き出したその姿は、荒れ狂う情報の海を切り裂くための、白銀に輝く最新鋭の翼そのものだ。

そして、モニターを仰ぎ見る。 そこには、もはや不格好な数字の羅列に汚されていない、どこまでも清浄で、透き通るように美しい URL が鎮座していた。


『……美しい。』

思わず、独り言が漏れた。
余計な装飾はいらない。
虚飾に満ちた規格も必要ない。
自らの手で一つ一つ煉瓦を積み上げ、呪縛を断ち切った者だけが到達できる、極限のシンプルさ。
10GbEという最強の推進力を得て、一点の曇りもないアドレスを掲げた私の要塞は、今、ついに完成の時を迎えたのだ。

もう、ポートの数字に怯えることも、浸透しないDNSに心を削ることもない。
管理人は、冷めたコーヒーを一口啜り、ゆっくりと背伸びをした。

かつて数字に縛られ、仕様に泣き、24時間の闇を彷徨ったあの男は、もうここにはいない。
手に入れたのは、誰にも邪魔されない自由な航路と、それを駆け抜けるための無敵の翼。
モニターの向こう側で、新しく生まれ変わったブログが、風のない午後の海のように、ただ静かに、そして誇らしく、陽光を跳ね返していた。

管理人は、最後に一度だけ、その清らかなアドレスを愛おしむように見つめ、静かにブラウザを閉じた。
胸に去来するのは、どこまでも穏やかで、誇らしい、勝利の余韻。


「道がないなら、自分でトンネルを掘ればいい。その先には、必ず澄み渡った景色が待っている。」


これにて、一件落着。 私の戦記は、ここに真の終結を迎えたのだ。

\ 最新情報をチェック /

コメント

テキストのコピーはできません。
PAGE TOP
タイトルとURLをコピーしました