LAN(ローカルネットワーク)でServBayローカル開発環境へアクセスする方法
小規模な開発チームや複数デバイスでのテストを行う個人開発者にとって、LAN(ローカルエリアネットワーク)内で他のメンバーやデバイスのServBayローカル開発環境へアクセスすることは、非常に一般的かつ重要なニーズです。ServBayは基本的に主要なサービスのLAN経由アクセスをサポートしていますが、一部サービスでは安全性と利便性のため追加設定が必要です。
本記事では、LAN環境におけるServBayのウェブサイトおよびデータベースサービスの設定とアクセス方法について詳しく解説します。
事前準備
LAN経由でServBayサービスへアクセスする前に、以下の要件を満たしていることを確認してください。
- ネットワーク接続: ServBayを提供するPC(以下「ホスト」)とアクセス側のPC(以下「クライアント」)が同一LAN内に接続されていること。
- ホストのIPアドレス: ホストがLANで持つ内部IPアドレスを把握しておくこと(ネットワーク設定で確認可能)。
- ファイアウォール設定: ホストOSのファイアウォールが有効な場合、ServBayが利用する主要ポート(例: HTTPは80、HTTPSは443、MySQLは3306、PostgreSQLは5432、Redisは6379など)への外部アクセスを許可する必要があります。公開したいサービスに応じてファイアウォールで対応ポートを開放し、必要に応じて許可するIPアドレス範囲をアクセスコントロールリスト(ACL)で制限してください。
ウェブサイト(Website)
ServBayで設定したローカルウェブサイトは、通常デフォルトでホストPCの全ネットワークインターフェース(0.0.0.0
または*
)をリッスンするため、LAN内の他デバイスからのアクセスが可能です。WebサーバーにはCaddyまたはNginxが用いられ、デフォルト設定は基本的にこのようになっています。
ただし、クライアントのブラウザからドメイン名でアクセスする場合、ドメイン名とホストのIPアドレスとのDNS解決が正しく行われている必要があります。また、ローカルウェブサイトでServBayが発行するSSL証明書(推奨)を使用する際は、クライアント側にもServBayのルート証明書をインストールしなければブラウザ警告が表示されます。
以下に具体的な例を示します。
- ホストのLAN内IP:
10.0.0.3
- ServBayサイトのドメイン名:
servbay.demo
- サイトのルートディレクトリ:
/Applications/ServBay/www/servbay.demo
ドメイン名解決の設定(DNS)
クライアントPCがドメイン名servbay.demo
をホストのIP10.0.0.3
へ解決できるようにするには、以下の2つの方法があります:
クライアントのHostsファイルを編集(推奨)
- 少数のクライアントPCならこの方法が最も簡単です。
- 各クライアントPCのHostsファイルを編集します。
- macOS/Linux:
/etc/hosts
- Windows:
C:\Windows\System32\drivers\etc\hosts
- macOS/Linux:
- 管理者権限でHostsファイルを開き、末尾に以下の行を追加します:
10.0.0.3 servbay.demo
1 - ファイルを保存すれば、以後クライアントで
servbay.demo
へアクセスするとIP10.0.0.3
へ向かいます。
LAN内のDNSサーバーで設定
- ご家庭や企業LANに専用DNSサーバーや、ルーター内蔵のDNS機能がある場合は、DNSサーバーに
servbay.demo
のAレコードを登録し、IPアドレスを10.0.0.3
に設定します。こうすれば、そのDNSサーバーを利用しているLAN内全ての機器で同じドメインが解決できるようになります。
- ご家庭や企業LANに専用DNSサーバーや、ルーター内蔵のDNS機能がある場合は、DNSサーバーに
ServBayユーザーCA証明書(SSL)の配布とインストール
ServBayは、PKI機能を搭載し独自のルート証明書(ServBay User CA)を発行、ローカルサイト用SSL証明書として利用できます。このCA証明書で署名されたHTTPSサイトをクライアントPCで安全に閲覧するには、各PCがこのCA証明書を信頼する必要があります。
ServBay User CA証明書をエクスポートし、LAN内の他ユーザーへ配布して、各自のOSまたは利用ブラウザにインストール・信頼させてください。
証明書の詳しいエクスポートやインストール方法については、ServBayドキュメントのSSL証明書管理セクション(特に証明書のエクスポートおよびOS/ブラウザへのインストールの部分)をご参照ください。
データベース
ServBayはMySQL、MariaDB、PostgreSQL、MongoDBのほか、インメモリ型のRedisやMemcached等多彩なデータベースに対応しています。それぞれのデータベースサービスでネットワークリッスン設定や認証方式が異なります。
MySQL / MariaDB
MySQLとMariaDBは、デフォルト設定で全ネットワークインターフェース(0.0.0.0
)をリッスンしているため、LAN内からの接続を受け入れられます。
ただし、MySQL/MariaDBではユーザーごと厳格な接続元検証が行われます。ネットワーク接続が可能でも、適切なユーザー名・パスワードで指定のIPからアクセス許可されたユーザーでなければ接続できません。
デフォルトの root
ユーザーは通常、127.0.0.1
またはlocalhost
からのみつながるよう制限されています。LANからの接続を許可するには、新たなユーザーを作成するか、既存ユーザーのホスト許可を変更してください。
例:servbay-demo
ユーザーを新規作成し、LANのすべてのIP(%
)から接続可、かつデータベース全権限を与える場合:
-- すでにrootまたは十分な権限を持つユーザーでログイン済みと仮定
CREATE USER 'servbay-demo'@'%' IDENTIFIED BY 'your_strong_password';
GRANT ALL PRIVILEGES ON `your_database_name`.* TO 'servbay-demo'@'%';
FLUSH PRIVILEGES;
2
3
4
your_strong_password
と your_database_name
は実際の値に置き換えてください。
重要: ユーザーに %
(全IP)からの接続と全権限を与えるのはセキュリティリスクです。社外や信頼できないLANでは、必ず特定IPのみアクセス許可(例:'servbay-demo'@'10.0.0.5'
)、またはVPN接続など安全な方法を推奨します。
ServBayにはMySQL・MariaDBのrootパスワードリセット機能も用意されています。ユーザー権限の管理は、こちらの機能または各種クライアントツールをご利用ください。
Redis
ServBayでのRedisは通常、ローカルループバックアドレス(127.0.0.1
)のみをリッスンしており、デフォルトではLANからのアクセスを受け付けていません。これは、Redisがデフォルトでパスワード認証を備えていないため、安全のためです。
RedisをLANから利用可能にするには、redis.conf
設定ファイルを編集して下記のいずれかを実施します:
1. ServBayのUI画面から設定(推奨)
- ServBayを開き、左ナビゲーションより「データベース」→「Redis」を選択
- 右側の設定画面で「Require Password」にチェックを入れ、パスワードを入力
- 「保存」をクリック
2. redis.conf
を手動編集(非推奨)
- ServBayインストールディレクトリ(例:
/Applications/ServBay/etc/redis/redis.conf
など)にてredis.conf
を探す - テキストエディタで開く
bind 127.0.0.1
を探すbind 0.0.0.0
に書き換えるか、もしくはその行をコメントアウト(# bind 127.0.0.1
)し、全インターフェースをリッスンさせる- 【極めて重要】
requirepass
を探し(コメントアウトされている場合あり)、コメントを外して強固なパスワードを設定:パスワード設定なしでRedisをLANやインターネットへ公開するのは、重大なセキュリティリスクですので絶対に避けてください!requirepass your_very_strong_redis_password
1 redis.conf
を保存- ServBayアプリでRedisサービスを再起動
これで、クライアントがホストのLAN内IPとパスワードでRedisへアクセスできるようになります。
PostgreSQL
PostgreSQLもデフォルトでローカルループバックアドレス(127.0.0.1
)のみリッスンしており、LANからの接続は許可しません。
LANアクセスを有効化するには、postgresql.conf
と pg_hba.conf
の2つを編集します。
ServBay内のPostgreSQL設定ファイルパス(例:
/Applications/ServBay/etc/postgresql/postgresql.conf
および/Applications/ServBay/etc/postgresql/pg_hba.conf
)を確認postgresql.conf
の編集- テキストエディタで開き、
listen_addresses
を探す(コメントアウトされている場合あり) - コメントを外し、値を
'*'
に変更(全インターフェースをリッスン):listen_addresses = '*'
1 - 保存
- テキストエディタで開き、
pg_hba.conf
の編集- テキストエディタで開く
- 「LANからの接続を許可する行」を追加。例えば
10.0.0.0/24
セグメント全体からの認証付きアクセスを許可する場合:# TYPE DATABASE USER ADDRESS METHOD host all all 10.0.0.0/24 md5
1
2TYPE
:host
はTCP/IP経由接続DATABASE
:all
で全データベース。特定名もOKUSER
:all
で全ユーザー。特定名もOKADDRESS
:10.0.0.0/24
は10.0.0.1~10.0.0.254
の範囲。他にも単一IPや0.0.0.0/0
(要注意)も指定可METHOD
:md5
はパスワード(MD5)認証。trust
(認証なし)やpassword
(平文認証)は推奨しません
- 保存
ServBayアプリでPostgreSQLサービスを再起動
これで、クライアントからホストのLAN IP、適切なユーザー名・パスワードでPostgreSQLへアクセスできるようになります。
ServBayはPostgreSQLのroot
(postgres)パスワードリセット機能も提供しています。ユーザー権限管理にも利用可能です。
Memcached
Memcachedは高性能な分散型メモリキャッシュであり、そもそも認証・認可機能が内蔵されていません。
従って、Memcachedサービスを直接LANや公開ネットワークへ公開するのは強く非推奨です。どうしても公開する場合は、安全対策(信頼されたネットワークセグメントに限定し、ファイアウォールでアクセス制限など)が必須です。
ServBayでは設定編集によってMemcachedをLAN IPでリッスン可能ですが、その場合のリスクを十分ご理解ください。デフォルトではローカルホストのみリッスンです。設定方法はRedisとほぼ同様ですが、Memcachedにはパスワード保護手段がありません。
セキュリティ上の注意
LAN経由でローカル開発環境を共有・公開することで、チーム協働やマルチデバイステストが便利になる一方、以下のようなセキュリティリスクが伴います。
- ファイアウォール: ServBayが稼働するホストの開放ポートは必ずファイアウォール制限を行い、信頼できるLAN内IPアドレスのみ許可してください。
- 強力なパスワード: データベース(MySQL/MariaDB/PostgreSQL)やRedisへは強固なパスワードを設定し、定期的に変更しましょう。
- 最小権限の原則: データベースユーザーには必要最低限の権限のみを与え、
root
やpostgres
等すべての権限を持つユーザーで日常的なリモート接続は避けましょう。 - Memcachedの安全性: Memcachedは認証機能が無いため、特に公開時にはSSHトンネリングや他の安全な接続方法の検討を強く推奨します。
- OSやパッケージのアップデート: ServBayホストPCのOSおよびServBay自身、関連モジュールは、常に最新のセキュリティパッチをあてておきましょう。
これらの手順と注意点を守れば、安全かつ効率的にLAN内でServBayローカル開発環境の共有・アクセスが可能となります。