直接リモートアクセス

直接アクセスは、サーバーパスワードを使って CodeNomad の HTTP/HTTPS リスナーに接続します。リモートコントロールとは別です。ペアリングには LAN バインドや受信ポートは不要で、どちらの経路も他方へ無断でフォールバックしません。

アクセス経路を選ぶ

経路 管理する内容
同じマシンのブラウザー ループバックへのバインドを維持し、表示されたローカル URL を使用します。
LAN または VPN 到達可能なインターフェースにバインドし、ファイアウォールを意図したクライアントに限定し、信頼された HTTPS を使用します。VPN は CodeNomad のリスナーを設定しません。
SSH 転送 バックエンドをループバックにバインドしたまま、実際に表示されたポートを転送します。トンネルは通信を保護しますが、CodeNomad の認証の代わりにはなりません。
リバースプロキシ バックエンドをプライベート/ループバックインターフェースに置き、プロキシで信頼された TLS を終端し、上流接続を保護します。長時間の SSE と、直接アクセスのツールが必要とする WebSocket に対応させます。
リモートコントロール ホストから端末をペアリングします。画面の制限と寿命は、リモートコントロールを参照してください。

バインドは、ファイアウォールルール、ポート転送、DNS、VPN を作成しません。未認証の HTTP リスナーをインターネットに公開しないでください。ワークスペースルートはセキュリティサンドボックスではありません。サーバーを公開する前にセキュリティを読んでください。

直接アクセスを有効にする

  1. ホストで 設定 → リモートアクセス を開き、直接アクセス(ローカルネットワーク、上級者向け) を展開します。
  2. サーバーパスワード で パスワードを設定 または パスワードを変更 を選び、新しいパスワード と パスワードの確認 を入力して パスワードを保存 します。起動時指定のパスワードはここでは変更できません。セキュリティを参照してください。
  3. リッスンモード の 他の IP からの接続を許可 をオンにします。再起動の警告を読み、一時的な中断の準備ができた場合にのみ 今すぐ再起動 を選びます。
  4. 再起動後に 更新 し、到達可能なアドレス を確認します。別端末で到達可能な HTTPS アドレスを開くか、ホストで QR を表示 して別端末で読み取り、ログインします。

これはホストの直接リッスンモードの変更であり、1 つのプロジェクトやリモートコントロールの変更ではありません。サーバーが localhost 以外で待ち受けている間、この開閉セクションは自動的に開きます。自動再起動が使えなければ CodeNomad を手動で再起動します。スタンドアロン環境では、起動時の --host を整合させる必要があります。公開を解除するには、スイッチをオフにして再起動するか、ループバックへのバインドで CLI を再起動します。ペアリング済みのリモートコントロール端末は失効しません。

リスナーのバインド表

--host の既定は 127.0.0.1 で、localhost もそのアドレスに正規化されます。有効なリスナーには次の規則が適用されます。

起動/モード HTTP のバインド先 HTTPS のバインド先
スタンドアロン、HTTPS のみ(既定) 非公開のループバックリスナーのみ(下記参照) --host
スタンドアロン、HTTP のみ LAN/ワイルドカードアドレスを含む --host 無効
スタンドアロン、両リスナー --host に関係なく 127.0.0.1 --host
ネイティブデスクトップのバックエンド ホスト内部用を含め、HTTP リスナーは 127.0.0.1 に維持 HTTPS 有効時の --host

すべてのバックエンドは、ミッションなど CodeNomad 自身の同梱 OpenCode プラグインのために、127.0.0.1 上の HTTP リスナーも維持します。HTTP が要求されていない場合、または要求された HTTP リスナーが 127.0.0.1 や 0.0.0.0 以外のアドレスにバインドされている場合、バックエンドはランダムな 127.0.0.1 ポートに非公開の HTTP リスナーを追加します。このリスナーは表示されることも接続先アドレスとして提示されることもなく、他のマシンからは到達できず、同じ認証付きアプリケーションを提供します。

具体的な LAN アドレスは、ループバック接続を受け付けるとは限りません。0.0.0.0 はすべての IPv4 インターフェース、:: はデュアルスタックのワイルドカードリスナーです。ブラウザーにはワイルドカードではなく、実際に到達可能なアドレスを使用してください。--host は IPv6 ゾーン識別子に対応しません。

スタンドアロン HTTPS 環境では、初期設定手順でパスワードを設定してから実行します。

codenomad --host 0.0.0.0 --https=true --http=false

ローカルの信頼されたプロキシの背後などで、ループバック専用 HTTP を使う場合:

codenomad --host 127.0.0.1 --https=false --http=true

ポートを 9898 や 9899 と決めつけないでください。省略時は使用中なら別ポートにフォールバックできます。ゼロ以外の --https-port、または HTTP 有効時の --http-port を明示するとポートを固定し、バインドできなければ失敗します。0 は OS の割り当てを要求します。その実行での正規の情報は、表示された Local Connection URL と Remote Connection URL、および更新した 到達可能なアドレス です。完全なサーバー CLI リファレンスを参照してください。

信頼された TLS を設定する

独自の証明書を指定する

  1. クライアントが実際に使うホスト名または IP を Subject Alternative Names(SAN)に含む証明書を取得します。
  2. --tls-key <path> と --tls-cert <path> の両方を PEM ファイルで指定します。環境で CA チェーン/バンドルが必要なら --tls-ca <path> を追加します。
  3. CodeNomad を再起動し、クライアント端末で証明書と表示された HTTPS アドレスを確認します。

独自の証明書ファイルは起動時に読み込まれ、CodeNomad が書き換えることはありません。更新と、新しいファイルを読み込むための再起動はユーザーが管理します。--tlsSANs は生成証明書を設定するもので、指定済み証明書に名前を追加できません。秘密鍵を保護し、ホストの識別を確認した証明書だけを信頼してください。

生成されたローカル CA を使う

HTTPS が有効で鍵/証明書のペアを指定していない場合、CodeNomad は設定ベースディレクトリにローカル CA とサーバー証明書を作成します。

ファイル 用途
tls/ca-cert.pem 管理するクライアントへ安全に配布する公開 CA 証明書。
tls/ca-key.pem CA の秘密鍵。絶対に配布しないでください。
tls/server-cert.pem サーバー証明書。
tls/server-key.pem サーバーの秘密鍵。絶対に配布しないでください。
  1. --tlsSANs "host.example.test,192.0.2.10" で、クライアント向けの全 DNS 名/IP を追加します。ワイルドカードへのバインドは、SAN 用に全 LAN アドレスを検出するものではありません。
  2. バックエンドを再起動し、証明書を生成/再確認します。
  3. 信頼できる経路でホスト/CA を確認し、意図した各クライアント/ブラウザーの信頼ストアに CA 証明書だけ をインポートします。代わりに、公に信頼された証明書や TLS リバースプロキシも使用できます。

生成されるサーバー証明書の有効期間は 30 日です。起動時に、期限まで 3 日以内、必要な SAN の不足、証明書チェックの失敗、秘密鍵ファイルの欠落があれば更新します。生成 CA は 365 日有効で、期限切れ、証明書チェックの失敗、秘密鍵ファイルの欠落で置き換えられます。置き換え時はサーバー証明書も再発行します。既存の破損、読み取り不能、不一致の秘密鍵は自動修復しません。クライアントは新しい CA を信頼する必要があります。プロセス内で継続的には更新しないため、長期稼働では期限前に意図的な再起動を計画してください。

クライアントに証明書警告が出たら、いったん止めてホスト名、SAN、信頼ストア、有効期限を確認してください。検証を無効にしたり、警告を無視して進むことを運用手順にしたりしないでください。信頼された HTTPS は、PWA のインストールやマイクアクセスなど、リモートブラウザー機能にも必要です。

リモートサーバーを保存する

  1. デスクトップのホームページで CodeNomad サーバーに接続 を選びます。同じボタンは、空の サーバー タブと 設定 → リモートアクセス → サーバー にもあります。
  2. サーバーに接続 で、信頼された HTTPS オリジンを使用して サーバー名 と サーバー URL を入力します。自己署名証明書の TLS 検証をスキップします。 はチェックせず、代わりに信頼を確立します。
  3. ブックマークには 保存、保存して開くには 接続 を選び、そのサーバーでログインします。

保存したサーバーを再び開くには、ホームページの サーバー タブで選びます。ブックマークは、この CodeNomad 設定に属し、リモートサーバーのプロジェクトに属するわけではありません。URL の保存はサーバーの起動やアクセス許可を行いません。保存したサーバーを削除 はブックマークを削除しますが、リモートの会話、バックエンド、認証情報は削除しません。

リモートコントロールでは、代わりに新しいペアリングリンクを サーバー URL に貼り付けます。ブックマークはトンネルのオリジンだけを保持し、使い捨てのペアリングコードは保持しません。端末 Cookie 消失後の再ペアリングは、リモートコントロールを参照してください。