1. 基本的な使い方
有効: systemctl start firewalld
無効: systemctl stop firewalld
ステータスの表示: systemctl status firewalld
電源オン 無効: systemctl disable firewalld
電源オン 有効: systemctl enable firewalld
systemctl は CentOS7 のサービス管理ツールのメインツールで、これまでのサービスと chkconfig の機能を 1 つに統合したものです サービスの
開始:サービスsystemctl start firewalld.service
の終了: サービスのsystemctl stop firewalld.service
再起動: サービスsystemctl restart firewalld.service
の状態表示:systemctl status firewalld.service
起動時にサービスを有効にする時刻:systemctl enable firewalld.service
起動時 サービスを無効にする:systemctl disable firewalld.service
サービスの電源が入っているかどうかを確認し、開始します:systemctl is-enabled firewalld.service
開始されたサービスのリストを確認します:systemctl list-unit-files|grep enabled
開始に失敗したサービスのリストを確認します:systemctl --failed
2. firewalld-cmd を構成する
バージョンの表示: firewall-cmd --version
ヘルプの firewall-cmd --help
表示: ステータスの firewall-cmd --state
表示: 開いているすべてのポートの表示: firewall-cmd --zone=public --list-ports
ファイアウォール ルールの更新: firewall-cmd --reload
エリア情報の表示: firewall-cmd --get-active-zones
指定したインターフェイスが属するエリアの表示: firewall-cmd --get-zone-of-interface=eth0
すべてのパケットの拒否:firewall-cmd --panic-on
拒否ステータスのキャンセル: firewall-cmd --panic-off
拒否するかどうかの確認: firewall-cmd --query-panic
3. ファイアウォールのポートを開きます
たとえば、ファイアウォールのポート 80 と 3306 を開く必要があります。
ステップ 1: 開いているポート番号を設定する
firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-port=80/tcp --permanent
sudo firewall-cmd --add-port=3060/tcp --permanent
–permanent は永続的に有効になり、このパラメータを指定しないと再起動すると失敗します。
ステップ 2: ファイアウォールを再起動する
firewall-cmd --reload
ステップ 3: 開いているポート番号を確認する
firewall-cmd --list-all
4.ドッカーポート
1. コンテナのポートを問い合わせる
docker ps --format "テーブル { {.ID}}\t{ {.Names}}\t{ {.Ports}}"
2. コンテナポートマッピング、コンテナマッピングの削除
一、安装sshd服务
进入容器
[root@node01 ~]# docker exec -it c00dfd401fa3 bash
安装sshd服务
[root@test /]# yum install -y openssh-server
启动并允许sshd自动启动
[root@test /]# systemctl start sshd
[root@test /]# systemctl enable sshd
二、增加sshd使用的22映射端口
1.关闭容器
[root@node01 ~]# docker stop c00dfd401fa3
2.关闭docker服务
[root@node01 ~]# systemctl stop docker
3.获取container_id
[root@node01 ~]# docker inspect c00dfd401fa3 | grep Id
"Id"
:
"c00dfd401fa3e907f266695c60d823671caff3ff3ef422152a226064f4342ef8"
,
4.修改容器配置文件hostconfig.json
vi /
var
/lib/docker/containers/c00dfd401fa3e907f266695c60d823671caff3ff3ef422152a226064f4342ef8/hostconfig.json
修改配置项
"PortBindings"
:{}为
"PortBindings"
:{
"22/tcp"
:[{
"HostIp"
:
""
,
"HostPort"
:
"10022"
}]}
5.修改容器配置文件hostconfig.json
vi /
var
/lib/docker/containers/c00dfd401fa3e907f266695c60d823671caff3ff3ef422152a226064f4342ef8/config.v2.json
修改配置项
"ExposedPorts"
:{}为
"ExposedPorts"
:{
"22/tcp"
:{}}
6.启动docker服务
[root@node01 ~]# systemctl start docker
7.启动容器
[root@node01 ~]# docker start c00dfd401fa3
8.验证连接容器
外部网络通过10022端口连接容器
C:\Users\yang>ssh [email protected] -p 10022
The authenticity of host
'[192.168.162.128]:10022 ([192.168.162.128]:10022)'
can't be established.
ECDSA key fingerprint
is
SHA256:DcwfgepkosH8q1N8Kp8XD0iNFL8h1sVKO0Al2Bs4hiE.
Are you sure you want to
continue
connecting (yes/no/[fingerprint])? yes
Warning: Permanently added
'[192.168.162.128]:10022'
(ECDSA) to the list of known hosts.
[email protected]'s password:
Last login: Sun Oct 24 04:34:08 2021
from
gateway
[root@test ~]#
容器所在的宿主机连接容器
[root@node01 ~]# ssh [email protected] -p 22
[email protected]'s password:
Last login: Sun Oct 24 04:34:02 2021
from
192.168.162.1