宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
「Apacheのポートを80番から変更したい。設定ファイルのどこを修正すればいいのか」
Apacheのポート番号は httpd.confListen ディレクティブで設定します。

この記事では、Apacheのポート番号を変更する手順を解説します。

【この記事でわかること】

・Apacheのポート番号は httpd.confListen ディレクティブで設定する
・デフォルトは80番(HTTP)と443番(HTTPS)
・ポート変更後はファイアウォール設定も忘れずに変更する
・Apacheを再起動して設定を反映させる


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

Listenディレクティブの設定方法

1. httpd.confを編集する

# httpd.confを編集 # vi /etc/httpd/conf/httpd.conf # Listen行を変更する(80から8080に変更する例) #Listen 80 Listen 8080

Listen ディレクティブに変更後のポート番号を指定します。
特定のIPアドレスにバインドする場合は Listen IPアドレス:ポート番号 の形式で指定します。

2. ファイアウォールの設定を変更する

ポートを変更した場合は、ファイアウォールの設定も変更する必要があります。

# firewalldの場合(CentOS 7以降) # firewall-cmd --add-port=8080/tcp --permanent # firewall-cmd --reload # iptablesの場合(CentOS 6以前) # iptables -A INPUT -p tcp --dport 8080 -j ACCEPT

3. Apacheを再起動する

# 設定の構文チェック # apachectl configtest # Apacheを再起動して設定を反映 # systemctl restart httpd

本記事のまとめ

やりたいこと 設定
ポートを8080に変更 Listen 8080
特定IPにバインド Listen 192.168.1.1:8080
ファイアウォール解放 firewall-cmd --add-port=8080/tcp --permanent
Apache再起動 systemctl restart httpd

ポート変更時の SELinux 設定(semanage port が必要なケース)

RHEL / Rocky / AlmaLinux などの SELinux が有効な環境では、Apache を 80 / 443 以外のポートに変更しただけでは起動できません。SELinux ポリシーで httpd_t プロセスが許可されているポートが決まっているため、追加ポートに対し semanage port で許可を与える必要があります。

1. SELinux が enforcing か確認する

# SELinux のステータスを確認する # getenforce Enforcing

「Enforcing」と表示された場合は SELinux が有効で、ポート変更時に追加設定が必須です。「Permissive」「Disabled」なら不要ですが、本番環境では Enforcing が推奨です。

2. semanage で許可済みポートを確認する

# httpd_port_t に登録されているポートを確認する # semanage port -l | grep http_port_t http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000 pegasus_http_port_t tcp 5988

http_port_t 行にあるポート番号だけが Apache の起動を許可されています。たとえば 8080 を使いたい場合、ここにないので追加が必要です。

3. 新ポートを SELinux に登録する

# 8080 を http_port_t に追加する # semanage port -a -t http_port_t -p tcp 8080 # 確認 # semanage port -l | grep http_port_t http_port_t tcp 8080, 80, 81, 443, 488, 8008, 8009, 8443, 9000

semanage コマンドが入っていない場合は dnf install policycoreutils-python-utils でインストールしてください。

4. 設定後に Apache を起動する

# Apache を起動する # systemctl restart httpd # 起動状態を確認する # systemctl status httpd # 起動失敗時は SELinux ログを確認する # ausearch -m AVC -ts recent | grep httpd

ポートを変えても起動できない場合は、まず journalctl -u httpdausearch -m AVC を確認します。「SELinux is preventing httpd」と出ているなら、semanage 設定が漏れているか別のポリシー違反が原因です。

クラウド環境のセキュリティグループ / ファイアウォールも忘れずに開ける

オンプレ環境では firewalld / iptables / ufw の設定だけで完結しますが、AWS / GCP / Azure などのクラウド環境では、サーバ内部のファイアウォール設定だけでなく、外側のセキュリティグループ(SG)/ ファイアウォールルールも開ける必要があります。

1. AWS EC2 のセキュリティグループで 8080 を開ける

# AWS CLI でセキュリティグループにルール追加(インバウンド許可) # aws ec2 authorize-security-group-ingress \ --group-id sg-XXXXXXXXXXXXXXXXX \ --protocol tcp \ --port 8080 \ --cidr 0.0.0.0/0

業務用サーバを 0.0.0.0/0 で全開放するのは危険です。アクセス元IPが特定できる場合は --cidr 203.0.113.XX/32 のように制限を入れるのが鉄則です。

2. Ubuntu 系(ufw 利用)の追加ポート開放

# ufw で 8080 を許可する # ufw allow 8080/tcp # 確認 # ufw status numbered Status: active To Action From -- ------ ---- [ 1] 22/tcp ALLOW IN Anywhere [ 2] 8080/tcp ALLOW IN Anywhere

Ubuntu 22.04 LTS / 24.04 LTS では ufw が標準のファイアウォール管理ツールです。RHEL 系の firewall-cmd と混在させないよう、運用ルールを統一しておきましょう。

3. ポート変更後の動作確認手順

# サーバ内部で listen しているか確認する # ss -tlnp | grep httpd LISTEN 0 511 0.0.0.0:8080 0.0.0.0:* users:(("httpd",pid=1234,fd=4)) # 外部から接続できるか確認する # curl -I http://サーバIP:8080/ HTTP/1.1 200 OK Server: Apache/2.4.62 (Rocky Linux)

外部 curl で 200 が返れば全レイヤーのファイアウォール(SELinux + firewalld/ufw + クラウドSG)が正しく開けています。失敗時は ssfirewall-cmd --list-all → クラウドSGの順で原因切り分けすると最短です。

Apacheサーバーの設定を体系的に学びたい方へ

ポート設定はApacheサーバー構築の基本スキルです。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。