ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
firewalld を使う方法(CentOS 7+ / RHEL 7+ 標準)
1. firewalld の状態確認
# サービス状態
sudo systemctl status firewalld
# 起動していなければ起動
sudo systemctl start firewalld
sudo systemctl enable firewalld
# デフォルトゾーン確認
sudo firewall-cmd --get-default-zone
# public
# 現在のルール一覧
sudo firewall-cmd --list-all
2. ポートを開ける(基本)
# TCP 8080 を恒久的に許可
sudo firewall-cmd --add-port=8080/tcp --permanent
# 設定反映
sudo firewall-cmd --reload
# 確認
sudo firewall-cmd --list-ports
# 8080/tcp
# 詳細表示
sudo firewall-cmd --list-all
3. ポートを閉じる
sudo firewall-cmd --remove-port=8080/tcp --permanent
sudo firewall-cmd --reload
4. サービス名で開ける(推奨)
HTTP/HTTPS など定義済みサービスを使うと意図が明確になります:
# 利用可能なサービス一覧
sudo firewall-cmd --get-services
# HTTP (80) と HTTPS (443) を許可
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent
sudo firewall-cmd --add-service=ssh --permanent
sudo firewall-cmd --reload
# 確認
sudo firewall-cmd --list-services
# dhcpv6-client http https ssh
5. 範囲指定 / プロトコル指定
# UDP ポート
sudo firewall-cmd --add-port=53/udp --permanent
# 範囲指定(8000-8010)
sudo firewall-cmd --add-port=8000-8010/tcp --permanent
# 特定の IP からのみ許可(rich rule)
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port=8080 protocol=tcp accept'
# 特定 IP を拒否
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.5" drop'
sudo firewall-cmd --reload
6. 一時開放(再起動で消える)
# --permanent を外すと、設定ファイルに書かれず、firewalld 再起動で消える
sudo firewall-cmd --add-port=8080/tcp
# テスト後、不要なら
sudo firewall-cmd --remove-port=8080/tcp
# あるいは reload するだけで消える
sudo firewall-cmd --reload
iptables を使う方法(旧来 / RHEL 6 以前)
# firewalld を停止して iptables 派にする場合
sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo yum install iptables-services
sudo systemctl enable iptables
sudo systemctl start iptables
# ルール追加
sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
# 確認
sudo iptables -L -n -v
# 行番号付きで確認
sudo iptables -L INPUT --line-numbers
# 削除(行番号指定)
sudo iptables -D INPUT 3
# 永続化(CentOS 7+ では別途インストールが必要)
sudo service iptables save
# または
sudo iptables-save > /etc/sysconfig/iptables
SELinux のポート許可
SELinux が enforcing の場合、特定サービス(Apache / Nginx 等)が標準外ポートを使うと拒否されます:
# 現在の SELinux 状態
getenforce
# Enforcing
# Apache (httpd) が 8080 を使うのを許可
sudo semanage port -l | grep http_port_t
# http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000
sudo semanage port -a -t http_port_t -p tcp 8080
# 確認
sudo semanage port -l | grep http_port_t
# http_port_t tcp 8080, 80, 81, 443, 488, 8008, 8009, 8443, 9000
# semanage が無い場合
sudo yum install policycoreutils-python-utils
# 削除
sudo semanage port -d -t http_port_t -p tcp 8080
# 緊急時の一時無効化(非推奨)
sudo setenforce 0 # permissive に
# 戻す
sudo setenforce 1
AWS Security Group との関係
EC2 では OS のファイアウォール + AWS Security Group の 両方 で許可が必要です:
| レイヤ | 対応 |
|---|---|
| AWS Security Group | EC2 のセキュリティグループ inbound に TCP 8080 を追加 |
| OS の firewalld | firewall-cmd --add-port=8080/tcp --permanent |
| SELinux | 必要なら semanage port -a |
| アプリ | 0.0.0.0:8080 でリッスン(127.0.0.1 だと外から見えない) |
# AWS CLI でセキュリティグループにルール追加
aws ec2 authorize-security-group-ingress \
--group-id sg-0123456789abcdef0 \
--protocol tcp \
--port 8080 \
--cidr 0.0.0.0/0
動作確認
# サーバ側: そもそも 8080 で待機しているか
sudo ss -tlnp | grep 8080
# LISTEN 0 128 *:8080 *:* users:(("python3",pid=1234,fd=3))
# 旧: netstat(CentOS 7 まで)
sudo netstat -tlnp | grep 8080
# サーバ側からローカル接続
curl http://localhost:8080
nc -zv localhost 8080
# クライアント側から外部接続
nc -zv 203.0.113.45 8080
# Connection to 203.0.113.45 port 8080 [tcp/http-alt] succeeded!
curl -v http://203.0.113.45:8080
# Linux 経由で外部のポート開放をスキャン
nmap -p 8080 203.0.113.45
CentOS 7 / 8 / 9 でのコマンドの違い
| OS | ファイアウォール | パッケージ管理 |
|---|---|---|
| CentOS 7 | firewalld(標準) or iptables | yum |
| CentOS 8 / 9 / Stream | firewalld(nftables バックエンド) | dnf |
| Rocky / Alma 8/9 | firewalld | dnf |
コマンド自体は firewall-cmd で共通。CentOS 8+ では裏側が nftables になっていますが、利用方法は変わりません。
FAQ
Q: firewalld を停止してもポートが開かない
A: AWS / Azure / GCP は OS の外側にもファイアウォールがある。クラウドのコンソール側 Security Group を確認。
Q: 80 番を開けてもブラウザで繋がらない
A: Apache / Nginx 等が起動していない、または 127.0.0.1 限定でリッスンしている。ss -tlnp で確認。Listen 80 を 0.0.0.0:80 に。
Q: firewall-cmd: command not found
A: 古い CentOS 6 系。iptables を使う。または yum install firewalld。
Q: 開けたいポートが多くて毎回 --permanent + --reload が面倒
A: 設定スクリプト化:
for port in 80 443 8080 8443; do
sudo firewall-cmd --add-port=${port}/tcp --permanent
done
sudo firewall-cmd --reload
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Laravel キャッシュクリア完全ガイド(cache:clear / config:clear / 2026-05-18 07:42:07
- プロジェクトの作成と削除 2026-05-18 07:42:07
- インストール直後にNetbeansが反応しない 2026-05-18 07:42:07
- 動画やチャンネルの検索 2026-05-18 07:42:07
- APIキー取得方法 2026-05-18 07:42:07
- チャンネル情報の取得 2026-05-18 07:42:07
- API 入門 — Web API(REST / GraphQL / gRPC / 2026-05-18 07:42:07
- インストール(eclipseプラグイン) 2026-05-18 07:42:07
- Laravel「Dotenv values containing spaces must be surrounded 2026-05-18 07:42:07
- エラー一覧 2026-05-18 07:42:07
- curl: (51) SSL: certificate subject name '~' does not match 2026-05-18 07:42:07
- インストール方法(Windows版) 2026-05-18 07:42:07
- JSONから配列に変換 2026-05-18 07:42:07
- 処理を一定時間待つ 2026-05-18 07:42:07
- A non well formed numeric value encountered 2026-05-18 07:42:07
コメントを削除してもよろしいでしょうか?