1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

UFWで閉じたのにDockerのポートが外から見える?VPSで公開先を確認する手順

1
Last updated at Posted at 2026-10-09

Dockerで動かしたアプリが、どのアドレスで接続を受け付けているかを確認する手順です。

確認するには、まずDockerのポート表示を見ます。ファイアウォールの状態だけで判断する前に、どのサービスを、どのアドレスで受け付けているかを整理します。

この記事では、LinuxのVPS上で動くDocker Engineを対象にします。Dockerが用意するネットワークにコンテナをつなぐ、通常のbridge構成での説明です。Docker Desktopやhostネットワークなど、異なる構成は分けて確認してください。

ポート表示を読む

VPSにSSHで接続して、次のコマンドを実行します。SSHは、手元のパソコンからサーバーへ接続して操作する仕組みです。

docker ps --format 'table {{.Names}}\t{{.Ports}}'

このコマンドは、実行中のコンテナの名前とポートを表示します。コンテナは、アプリを動かす環境をまとめたものです。停止中のコンテナは、この一覧に含まれません。設定の変更や再起動は行いません。Dockerを操作する権限がない場合は、一覧を取得できません。Docker公式の一覧表示の説明

次は、表示を説明するための架空例です。

NAMES       PORTS
sample-web  0.0.0.0:8080->80/tcp, [::]:8080->80/tcp
sample-api  127.0.0.1:3000->3000/tcp

8080->80 は、VPSの8080番から、コンテナの80番へつなぐ指定です。ポートは、通信を受け付ける番号です。tcp は通信方式の名前です。

左側のアドレスも確認します。

表示 読み方
0.0.0.0:8080 VPSのすべてのIPv4アドレスを対象に、8080番を公開する指定
[::]:8080 VPSのすべてのIPv6アドレスを対象に、8080番を公開する指定
127.0.0.1:3000 VPS自身から使うIPv4アドレスに、3000番を公開する指定

IPv4とIPv6は、ネットワークのアドレスを扱う方式です。両方が表示される場合は、片方だけを見て判断しないようにします。

公開先を省略した場合は、既定ではすべてのホストアドレスが対象になります。既定値を変更している環境もあるため、実際の表示を確認してください。Docker公式のポート公開の説明

次に、意図した構成か確認する

上の表示だけでは、インターネットから接続できるかは決まりません。VPS事業者側の制限なども関係します。

まず、そのサービスにどこから接続する予定かを確認します。

  • ブラウザなどから直接アクセスするサービスなのか。
  • 同じVPS上のWebサーバーが受け取った通信を、アプリへ渡す構成なのか。
  • 別のコンテナから使うサービスなのか。

同じVPS上のWebサーバーからだけ使う構成なら、VPS自身のアドレスへ公開を絞る方法が候補になります。ただし、Webサーバーも別のコンテナで動いている場合は、接続先の考え方が変わります。どの構成でも同じ設定に置き換えられるわけではありません。

Docker Engineの28.0.0より前の版には、127.0.0.1などサーバー自身のアドレスへ公開したポートでも、同じネットワーク区間の別の機器から接続できる場合があるという注意もあります。利用している版と構成を、公式資料で確認してください。Docker公式の注意事項

UFWが有効でも、Dockerの設定は別に見る

UFWは、Ubuntuなどで使われるファイアウォールの設定ツールです。ファイアウォールは、通信を許可したり制限したりする仕組みです。

Dockerで公開したコンテナの通信は、通常のUFWの制限より先にDockerの転送処理へ回ることがあります。「UFWで拒否しているから、このコンテナにも接続できない」とは、状態表示だけでは判断できません。Docker公式のUFW説明

確認する順番は、次のように分けると整理できます。

  1. Dockerの表示で、サービスと公開先を確認する。
  2. その公開先が、アプリの構成に合っているか確認する。
  3. VPS事業者側とサーバー側の通信制限を確認する。
  4. 必要な接続ができ、不要な接続が制限されるかを、別の端末から確かめる。

4番目の確認結果は、接続元やアドレス、時点によって変わります。サーバー内の表示と、外から接続した結果は分けて記録します。

VPS Checkで分かる範囲

VPS Checkは、サーバー上の接続設定を読み取るツールです。現在のDocker確認では、実行中コンテナのポート表示から、すべてのアドレスへの公開を見つけるとWARNを表示します。

WARNは、そのサービスを直接公開する必要があるかを確認するきっかけです。外部から接続できることを実測した結果ではありません。

Dockerの一覧を取得できなければSKIPになります。PASSが出ても、Dockerのすべてのネットワーク構成や、サーバー全体の安全を確認できたわけではありません。

実機で確認済みの環境はUbuntu 22.04.5 LTS・x86_64です。配布ファイルを使うコマンドと、各表示の読み方は日本語の利用案内に記載しています。

Xの @supportapp3_labでは、個人開発で使う小さなツールと、公開後の確認手順を発信しています。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?