自宅サーバーのIPアドレスを隠してサーバーを公開する方法

適当なタイトルが思いつかなかった…

内容としては、クラウド上のVPSにフロントエンドサーバーを建てて、プロキシーのようにフロントエンドサーバーを経由してクライアントと通信させるということ。クライアントから見えるのはフロントエンドサーバーのIPアドレスってわけ。

結構上級者向けの内容。WireGuard、ファイアーウォールやNATの知識があることが前提。

大変参考にした記事: Internet Watch / 清水理史の「イニシャルB」:VPSを使って「マインクラフト」などの自宅ゲームサーバーを安全に公開する方法

ここからいくつかアレンジをしている。

  1. 自宅内のゲームサーバー上に直接WireGuardを置くのではなく、WireGuardで通信するゲートウェイサーバーを、ゲームサーバーとは別に独立して用意する
    →自宅内に複数台のサーバーがあったり、他に管理したいマシンがあるケースに対応できる
  2. ファイアーウォールをufwからnftablesに変更
  3. 普段Fedoraを利用していて、Fedoraで利用する方法も載せたかったので、今回は自宅のVPNゲートウェイをFedoraで構築。コマンドとファイルの配置場所が違うぐらいだけど…
  4. シンプルにするため、ここでは冗長化は扱わない

参考にした記事ではゲームサーバーで利用するケースが想定されているが、ポート番号やプロトコルの設定を変更すれば、様々なアプリケーションに対応可能。話題のパルワールドのサーバーでも、Webサーバーでも利用可能。

続きを読む

お知らせ:パーマリンクの運用開始について

ホームページ上でパーマリンクの運用を開始しました。

現在調整中なので各記事のURLが変わる可能性があります。

今までの記事番号(URL末尾にp=、post_id=がつく形式)のリンクは問題なくリダイレクトされます。

特定のページについて、指定したURLでアクセスするようにしたかったからです。SEOはあまり気にしていません。

Rust しせサーバーの運用方針の変更について

しせサーバーはこれまで、「誰でも参加可能な宗谷いちかさんのファンサーバー」という位置づけで運用して来ましたが、ファンサーバーとしての独自性を生み出せていないという点が管理者の中で長年引っかかっていました。

2023年12月に実施したアンケートの結果も勘案した結果、次回のワイプをもってファンサーバーとしての運用を終了し、一般的なコミュニティーサーバーとして運用を継続することにしました。

これに伴い、サーバー名が変更となります。

新サーバー名:Chase The Core PvE

  • 2024/2/2のワイプ&アップデート後から適用しますが、このタイミングでサーバーの移設、その他更新作業も考えているため、1週間程度休止する可能性もあります。
  • PvE制、サーバールールについては維持します。
  • BPの学習状況はワイプせず引き継ぎます。
  • 推し変ではありません。

配信でご本人様やリスナーさんに来ていただいたことも良い思い出でした。

これまで長きにわたりプレイいただき、ありがとうございました!引き続き、よろしくお願いします。

バックアップ電源をUPSからポータブル電源に替えてみる(Anker Solix C1000)

最近になって、時折UPSのバッテリーの寿命のアラームが出るようになった。しばらくすると復旧するけど、寿命が近いみたい。5年近く使っているのでまあ期待寿命通りというところか。

バッテリーだけの交換でも良かったんだけど、以前からUPS(パススルー充電)機能付きのポータブル電源に興味があって、悩んだ末にポータブル電源の購入を決断。

購入にあたり検討したこと

購入にあたっては、大きく分けて2023年現在のトレンド、ランタイムの面からUPSとUPS機能付きポータブル電源を比較検討した。

2023年現在のトレンド

市販されているUPSは、その多くが未だ鉛蓄電池を採用している。リチウムイオン電池を採用したUPSは現行品では指で数えられるぐらいしかない。

以前はもうちょっとあったはずなのにな…?高いから売れない…??

対してポータブル電源は、リン酸鉄リチウムイオン電池や固体電池を採用した製品が登場しており発展が目覚ましい。鉛蓄電池に比べると、重量あたりのエネルギー密度が高い(容量の割には軽量)。

ランタイム

UPSは、接続機器を安全にシャットダウンするまでの猶予を得ることを目的としたものなので、容量が小さめで、ランタイムも短い。

ポータブル電源は、接続機器を継続して稼働させることを目的としているので、容量はUPSより大きいし、ランタイムは最低でも数十分程度は持つ。

今まで停電した場合は連動シャットダウン機能を使わず、動かし続けるようにUPSを使っていたので、それならばポータブル電源でいいかなと。

ポータブル電源も色々なメーカーがあるけど、充電器やモバイルバッテリーで使っていたし、信頼のおけるメーカーがいいなということで、Ankerにすることにした。ちょうどAnkerが海外でSolix C1000を発売したという情報があったので、日本発売を待ってたんだけど、11月に入って突然出てきたね。

Anker Solix C1000 Amazon販売ページ(Amazonアソシエイトリンク)

UPSにありがちな雷サージ対策機能はなさそうなので、雷サージ対策機能付きのタップを使ってC1000に給電する。

コンセントを抜いてテストしたところ、接続したPCやサーバー1、ルーターなどなどの機器は全て問題なく動作。素晴らしい。

1週間ぐらい使った感想

ファン

充電時にファンが回りやすい。入力端子付近から暖かい風が出てくる。UPSもファンが回るのは同じだし、個人的には許容範囲内。

給電するコンセントの電力配分に注意

上で使っているタップとは別の、ブレーカー付きタップを使って充電していたときに、ブレーカーが落ちたことがあったので、電力配分には注意したい。なお、通常充電時の入力電力は、アプリから200~1000Wの範囲で調整可能。ブレーカー落ちが心配な場合はここを下げてみるとよいだろう。

パススルー機能使用時の継続最大出力は?

1500W(SurgePad使用時は2000W)がC1000の最大出力なんだけど、パススルー時の定格入力は1200Wなので、出力はそれ以下でないと充電が追いつかないはずでは…?マニュアルでも触れられていない部分。

アプリの電源スイッチに操作ロック機能が欲しい

アプリを使ってシガーソケット出力・AC出力のリモートON/OFFが可能。ワンタップでできるのは手軽だけど、誤って触りそうで怖い。

他のIoT機器を例に挙げると、SwitchBotやWi-Fiワットチェッカーには、誤ってスイッチ操作しないように操作時に確認ダイアログが出たりロックする機能があるので、同様の機能が欲しい。

本格的なUPS作りませんか?

ここまで来たら、機能面でポータブル電源がUPSを追い抜いたり、ポータブル電源のメーカーがUPS市場に参入する日も来るんじゃないかな、と個人的には思っている。参入したらUPS市場の勢力図が塗り替わるなんていうこともあるかもしれない。

今はUPSのように接続機器をシャットダウンすることはできないけど、アプリでネットワークを介しポータブル電源を制御できているわけだし、機能面だけならそれほどハードルは高くないんじゃないかと思う。あとは信頼性か?

注釈

  1. ガチ用途で使おうと考えている方もいると思うので補足。
    Ankerのホームページやマニュアルには、「データサーバや医療機器など、非常時に不具合が起こると人命/財産に重大な危険を及ぼしうる用途でのご使用はお控えください」とある。さらに注釈
    なので、ミッションクリティカルな用途への使用は避けるべきだし、そもそも、そういうところでは多重化とかしてるはずなので、今回のようなことはしないと思うけどねw

    今回はサーバーに繋げているけど、そういうクリティカルな用途のものではないし、電源周りは普通のATX電源なのでパソコンに近く、問題ないだろうという個人的な見解。今どき無瞬断じゃないと動かない電源なんてあるのかって思うけど、保険なんだろうな…

    余談になるが、ATX電源がどこまでの瞬停に耐えられるのか?というのはイチケンさんが詳しく検証されている。これによると、50Hzで2サイクルまでの瞬停では正常動作していたので、時間にして40msというところ。検証では玄人志向製のATX電源が使われていた。もちろん機種や負荷状況によって変わってくると思うけど、参考になったのでぜひ見て欲しい。 ↩︎

さらに注釈

興味深いことに、この一文は英語サイトや英文マニュアルには見当たらない。日本独自の注意書きかも。

さらに、英語サイトにはUPS機能の紹介の部分で、「CPAP」などがスムーズに使用できるという文すらある。CPAP(シーパップ)とは人工呼吸器の一種で、医療機器にあたるはず。日本語にある注意書きと矛盾してる気がするけれど、これってどうなんでしょう?生命維持を目的としたものはだめだけど、家庭で使うような補助装置みたいなものならOKということなのかな。

あるいは日本と海外の法律の違い等の事情で書けることや書けないこと、あるいは書かなければいけないことがあるのだろうか?

Linux版のRustサーバーがmmap(PROT_NONE) failedで落ちる

カーネルのvm.max_map_countの値を引き上げてみましょう。

一時的に1048576に引き上げるには

sudo sysctl -w vm.max_map_count=1048576

Linuxのデフォルト値は65530。

ちなみにFedoraの次期リリース版「Fedora Linux 39」では、このデフォルト値の引き上げが計画されているらしい。
https://fedoraproject.org/wiki/Changes/IncreaseVmMaxMapCount

参考:https://umod.org/index.php/community/rust/20584-server-crash-mmap