DNS+LAMP+Iptables+Rsync 实时同步

主机环境


#DNS服务器2台

Master:192.168.10.100

Slave:192.168.10.101

#Iptables 1台

eth1:192.168.10.10

eth0:10.0.0.210

#WEB服务器2台

WEB1:10.0.0.100

WEB2:10.0.0.101

#MySQL服务器2台

Matser:10.0.0.5

Slave:10.0.0.6

#NFS共享服务器1台

10.0.0.201

#NFS的数据备份服务器1台

10.0.0.202

#客户端1台

192.168.10.20

部署数据库主服务器


#数据库安装,采用二进制方式安装,这里我采用脚本方式安装

[root@rocky8 ~]#bash install_mysql5.7or8.0.sh

开始安装MySQL数据库...

安装相关包完成! [ OK ]

创建mysql用户 [ OK ]

数据库安装完成 [ OK ]

#修改主从服务器的主机名

[root@rocky8 ~]#hostnamectl set-hostname mysql-master

[root@rocky8 ~]#hostnamectl set-hostname mysql-slave

#创建提供wordpress网站使用的数据库,库名称为wordpress

mysql> create database wordpress;

Query OK, 1 row affected (0.01 sec)

#创建一个账号提供后续搭建WEB服务使用

ysql> create user wordpress@'10.0.0.%' identified by '123456';

Query OK, 0 rows affected (0.01 sec)

mysql> grant all on wordpress.* to wordpress@'10.0.0.%';

Query OK, 0 rows affected (0.00 sec)

#记得刷新权限,否则容易出现权限问题,导致wordpress网站无法连接数据库进行配置

mysql> flush privileges;

Query OK, 0 rows affected (0.01 sec)

部署NFS共享服务器


部署NFS共享服务器,提供apache存储页面服务

[root@NFS01 ~]#apt install nfs-server

正在读取软件包列表... 完成

正在分析软件包的依赖关系树... 完成

正在读取状态信息... 完成

注意,选中 'nfs-kernel-server' 而非 'nfs-server'

将会同时安装下列软件:

keyutils libnfsidmap1 nfs-common rpcbind

建议安装:

watchdog

下列【新】软件包将被安装:

keyutils libnfsidmap1 nfs-common nfs-kernel-server rpcbind

......................

#启动服务,并添加到开机启动,Ubuntu安装完软件默认会启动并添加至开机启动

[root@NFS01 ~]#systemctl enable --now nfs-server

#创建一个同步目录

[root@NFS01 ~]#mkdir /data/wordpress -pv

#配置远程挂载目录,如下配置为挂载至/data/wordpress目录并读写,由于为提供apache存储共享文件,ubuntu下为www-data权限启动apache服务,NFS默认为只读压缩root用户权限以及不压缩普通用户权限,为方便root用户配置,故需设置可读写以及不压缩root权限,故设置特定ID不压缩权限

[root@NFS02 ~]#vim /etc/exports

/data/wordpress *(rw,no_root_squash)

[root@NFS01 wordpress]#exportfs -r

exportfs: /etc/exports [1]: Neither 'subtree_check' or 'no_subtree_check' specified forexport"*:/data/wordpress".

Assuming default behaviour ('no_subtree_check').

NOTE: this default has changed since nfs-utils version 1.0.x

部署WEB服务器(wordpress搭建博客(LAMP)


网卡配置

#配置web01网卡,网关指向iptables

[root@web01 ~]#vim /etc/netplan/01-netcfg.yaml

# This file describes the network interfaces available on your system

# For more information, see netplan(5).

network:

version: 2

renderer: networkd

ethernets:

eth0:

addresses:

-10.0.0.100/24

gateway4: 10.0.0.210

#配置web02网卡,网关指向iptables

[root@web02 ~]#vim /etc/netplan/01-netcfg.yaml

# This file describes the network interfaces available on your system

# For more information, see netplan(5).

network:

version: 2

renderer: networkd

ethernets:

eth0:

addresses:

-10.0.0.101/24

gateway4: 10.0.0.210

#重新加载网卡配置

[root@web01 ~]#netplan apply

[root@web02 ~]#netplan apply

安裝apache、php

php为依赖于apache的一个组件,没有独立的服务,为apache提供php的能力,phph无法独立部署,如需独立部署,需安装php-fpm包

#分別在两台web服务器安装apache、php服务相关组件

[root@web01 ~]#apt install apache2 php php7.4-mysql php7.4-json php7.4-xml

[root@web02 ~]#apt install apache2 php php7.4-mysql php7.4-json php7.4-xml

#安装完相应组件,ubuntu下apache服务会默认启动

[root@web01 ~]#systemctl status apache2

● apache2.service - The Apache HTTP Server

Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset>

Active: active (running) since Sun 2022-11-2011:52:56 CST; 10s ago

Docs: https://httpd.apache.org/docs/2.4/

Process: 768ExecStart=/usr/sbin/apachectl start(code=exited, status=0/SUCC>

Main PID: 804 (apache2)

Tasks: 6 (limit: 2236)

Memory: 23.2M

CGroup: /system.slice/apache2.service

├─804 /usr/sbin/apache2 -kstart

├─807 /usr/sbin/apache2 -kstart

├─808 /usr/sbin/apache2 -kstart

├─809 /usr/sbin/apache2 -kstart

├─810 /usr/sbin/apache2 -kstart

└─811 /usr/sbin/apache2 -kstart

11月 2011:52:55 web02 systemd[1]: Starting The Apache HTTP Server...

11月 2011:52:56 web02 systemd[1]: Started The Apache HTTP Server.

#分别在web01以及web02修改php的配置

[root@web01 ~]#vim /etc/php/7.4/apache2/php.ini

post_max_size = 80M

upload_max_filesize = 100M

date.timezone =Asia/Shanghai

[root@web02 ~]#vim /etc/php/7.4/apache2/php.ini

post_max_size = 80M

upload_max_filesize = 100M

date.timezone =Asia/Shanghai

#重启apache服务,重新加载php配置

[root@web01 ~]#systemctl restart apache2

#写一段测试页面,出现如下页面效果,则php可以正常运行

[root@ubuntu2004 apt]#cat /var/www/html/index.php

<?php

phpinfo()

?>

#由于为两台web服务器,为数据同步,故配置挂载共享目录作为web页面存放位置

1)两台web服务器分别安装NFS客户端

[root@web01 ~]#apt install nfs-common

[root@web01 ~]#apt install nfs-common

2)查看远程主机的共享

[root@web01 ~]#showmount -e 10.0.0.201

Export list for10.0.0.201:

/data/wordpress *

[root@web02 ~]#showmount -e 10.0.0.201

Export list for10.0.0.201:

/data/wordpress *

3)为开机即可挂载共享目录,故分别在两台web服务器的/etc/fstab配置挂载参数

[root@web01 ~]#vim /etc/fstab

10.0.0.201:/data/wordpress /var/www/html nfs _netdev 00

[root@web02 ~]#vim /etc/fstab

10.0.0.201:/data/wordpress /var/www/html nfs _netdev 00

4)挂载

[root@ubuntu2004 ~]#mount -a

#分别查看两台web服务器共享目录挂载情况

[root@web01 ~]#df -T

文件系统 类型 1K-块 已用 可用 已用% 挂载点

udev devtmpfs 954504 0 954504 0% /dev

tmpfs tmpfs 199940 988 198952 1% /run

/dev/mapper/ubuntu--vg-ubuntu--lv ext4 101848040585571690772588 7% /

tmpfs tmpfs 999684 0 999684 0% /dev/shm

tmpfs tmpfs 5120 0 5120 0% /run/lock

tmpfs tmpfs 999684 0 999684 0% /sys/fs/cgroup

/dev/sda2 ext4 1510792 310312 1105456 22% /boot

10.0.0.201:/data/wordpress nfs4 101590016643302489950208 7% /var/www/html

tmpfs tmpfs 199936 0 199936 0% /run/user/0

[root@web02 ~]#df -T

文件系统 类型 1K-块 已用 可用 已用% 挂载点

udev devtmpfs 954504 0 954504 0% /dev

tmpfs tmpfs 199940 988 198952 1% /run

/dev/mapper/ubuntu--vg-ubuntu--lv ext4 101848040600446090623844 7% /

tmpfs tmpfs 999684 0 999684 0% /dev/shm

tmpfs tmpfs 5120 0 5120 0% /run/lock

tmpfs tmpfs 999684 0 999684 0% /sys/fs/cgroup

/dev/sda2 ext4 1510792 310312 1105456 22% /boot

10.0.0.201:/data/wordpress nfs4 101590016643302489950208 7% /var/www/html

tmpfs tmpfs 199936 0 199936 0% /run/user/0

#由于在NFS服务器上设置了对root账户不压缩权限,故写入、删除数据均正常

[root@web01 html]#mkdir 123

[root@web01 html]#ls

123

[root@web02 html]#rm -rf 123

部署wordpress

#由于web页面存储在共享目录上,故只需在1台web服务器下载wordpress部署程序,并解压移动至/var/www/html目录

[root@web01 ~]#wget https://cn.wordpress.org/latest-zh_CN.tar.gz

[root@web02 ~]#wget https://cn.wordpress.org/latest-zh_CN.tar.gz

--2022-11-2012:05:57-- https://cn.wordpress.org/latest-zh_CN.tar.gz

正在解析主机 cn.wordpress.org (cn.wordpress.org)... 198.143.164.252

正在连接 cn.wordpress.org (cn.wordpress.org)|198.143.164.252|:443... 已连接。

已发出 HTTP 请求,正在等待回应... 200 OK

长度: 23533157 (22M) [application/octet-stream]

正在保存至: “latest-zh_CN.tar.gz”

latest-zh_CN.tar.gz 100%[===================>] 22.44M 5.11MB/s 用时 5.2s

2022-11-2012:06:06 (4.35 MB/s) - 已保存 “latest-zh_CN.tar.gz” [23533157/23533157])

#分别在两台web服务器解压下载的压缩包

[root@web01 ~]#ls

latest-zh_CN.tar.gz snap

[root@web01 ~]#tar xf latest-zh_CN.tar.gz

[root@web01 ~]#ls

latest-zh_CN.tar.gz snap wordpress

[root@web02 ~]#tar xf latest-zh_CN.tar.gz

[root@web02 ~]#ls

latest-zh_CN.tar.gz snap wordpress

#移动wordpress文件至/var/www/html

[root@web01 ~]#mv wordpress/* /var/www/html/

#两台web服务器均可看到移动过来的wordpress文件

[root@web02 html]#ll

总用量 232

drwxr-xr-x 5 root root 409611月 2012:53 ./

drwxr-xr-x 3 root root 409610月 3122:34 ../

-rw-r--r-- 110061006 4052月 6 2020 index.php

-rw-r--r-- 110061006199151月 1 2022 license.txt

-rw-r--r-- 110061006 73899月 1706:27 readme.html

-rw-r--r-- 110061006 72059月 1707:13 wp-activate.php

drwxr-xr-x 910061006 409611月 1612:00 wp-admin/

-rw-r--r-- 110061006 3512月 6 2020 wp-blog-header.php

-rw-r--r-- 110061006 233811月 10 2021 wp-comments-post.php

-rw-r--r-- 110061006 300112月 14 2021 wp-config-sample.php

drwxr-xr-x 510061006 409611月 1612:00 wp-content/

-rw-r--r-- 110061006 55439月 2023:44 wp-cron.php

drwxr-xr-x 27100610061228811月 1612:00 wp-includes/

-rw-r--r-- 110061006 24943月 20 2022 wp-links-opml.php

-rw-r--r-- 110061006 39859月 1916:59 wp-load.php

-rw-r--r-- 110061006491359月 2006:26 wp-login.php

-rw-r--r-- 110061006 852210月 1719:06 wp-mail.php

-rw-r--r-- 110061006245879月 2618:17 wp-settings.php

-rw-r--r-- 110061006343509月 1708:35 wp-signup.php

-rw-r--r-- 110061006 491410月 1719:22 wp-trackback.php

-rw-r--r-- 110061006 32366月 9 2020 xmlrpc.php

#由于apache2服务为www-data权限启动,故需修改wordpress文件存放位置属组为www-data

[root@web01 ~]#ss -tlnp | grep apache2

LISTEN 0 511 *:80 *:* users:(("apache2",pid=808,fd=4),("apache2",pid=807,fd=4),("apache2",pid=806,fd=4),("apache2",pid=805,fd=4),("apache2",pid=804,fd=4),("apache2",pid=801,fd=4))

[root@web01 ~]#ps aux | grep apache2

root 801 0.0 0.9 19638019764 ? Ss 12:26 0:00 /usr/sbin/apache2 -kstart

www-data 804 0.0 0.4 196828 8784 ? S 12:26 0:00 /usr/sbin/apache2 -kstart

www-data 805 0.0 0.4 196828 8784 ? S 12:26 0:00 /usr/sbin/apache2 -kstart

www-data 806 0.0 0.4 196828 8784 ? S 12:26 0:00 /usr/sbin/apache2 -kstart

www-data 807 0.0 0.4 196828 8784 ? S 12:26 0:00 /usr/sbin/apache2 -kstart

www-data 808 0.0 0.4 196828 8784 ? S 12:26 0:00 /usr/sbin/apache2 -kstart

root 2757 0.0 0.0 9524 660 pts/0 S+ 13:33 0:00 grep--color=auto apache2

[root@web01 ~]#id www-data

用户id=33(www-data) 组id=33(www-data) 组=33(www-data)

[root@web02 html]#id www-data

用户id=33(www-data) 组id=33(www-data) 组=33(www-data)

#在其中一台web服务器更改/var/www/html/属主

[root@web01 ~]#chown -R www-data.www-data /var/www/html/

[root@web01 ~]#ll /var/www/html/

总用量 232

drwxr-xr-x 5 www-data www-data 409611月 2012:53 ./

drwxr-xr-x 3 root root 409611月 2011:46 ../

-rw-r--r-- 1 www-data www-data 4052月 6 2020 index.php

-rw-r--r-- 1 www-data www-data 199151月 1 2022 license.txt

-rw-r--r-- 1 www-data www-data 73899月 1706:27 readme.html

-rw-r--r-- 1 www-data www-data 72059月 1707:13 wp-activate.php

drwxr-xr-x 9 www-data www-data 409611月 1612:00 wp-admin/

-rw-r--r-- 1 www-data www-data 3512月 6 2020 wp-blog-header.php

-rw-r--r-- 1 www-data www-data 233811月 10 2021 wp-comments-post.php

-rw-r--r-- 1 www-data www-data 300112月 14 2021 wp-config-sample.php

drwxr-xr-x 5 www-data www-data 409611月 1612:00 wp-content/

-rw-r--r-- 1 www-data www-data 55439月 2023:44 wp-cron.php

drwxr-xr-x 27 www-data www-data 1228811月 1612:00 wp-includes/

-rw-r--r-- 1 www-data www-data 24943月 20 2022 wp-links-opml.php

-rw-r--r-- 1 www-data www-data 39859月 1916:59 wp-load.php

-rw-r--r-- 1 www-data www-data 491359月 2006:26 wp-login.php

-rw-r--r-- 1 www-data www-data 852210月 1719:06 wp-mail.php

-rw-r--r-- 1 www-data www-data 245879月 2618:17 wp-settings.php

-rw-r--r-- 1 www-data www-data 343509月 1708:35 wp-signup.php

-rw-r--r-- 1 www-data www-data 491410月 1719:22 wp-trackback.php

-rw-r--r-- 1 www-data www-data 32366月 9 2020 xmlrpc.php

[root@web02 html]#ll

总用量 232

drwxr-xr-x 5 www-data www-data 409611月 2012:53 ./

drwxr-xr-x 3 root root 409610月 3122:34 ../

-rw-r--r-- 1 www-data www-data 4052月 6 2020 index.php

-rw-r--r-- 1 www-data www-data 199151月 1 2022 license.txt

-rw-r--r-- 1 www-data www-data 73899月 1706:27 readme.html

-rw-r--r-- 1 www-data www-data 72059月 1707:13 wp-activate.php

drwxr-xr-x 9 www-data www-data 409611月 1612:00 wp-admin/

-rw-r--r-- 1 www-data www-data 3512月 6 2020 wp-blog-header.php

-rw-r--r-- 1 www-data www-data 233811月 10 2021 wp-comments-post.php

-rw-r--r-- 1 www-data www-data 300112月 14 2021 wp-config-sample.php

drwxr-xr-x 5 www-data www-data 409611月 1612:00 wp-content/

-rw-r--r-- 1 www-data www-data 55439月 2023:44 wp-cron.php

drwxr-xr-x 27 www-data www-data 1228811月 1612:00 wp-includes/

-rw-r--r-- 1 www-data www-data 24943月 20 2022 wp-links-opml.php

-rw-r--r-- 1 www-data www-data 39859月 1916:59 wp-load.php

-rw-r--r-- 1 www-data www-data 491359月 2006:26 wp-login.php

-rw-r--r-- 1 www-data www-data 852210月 1719:06 wp-mail.php

-rw-r--r-- 1 www-data www-data 245879月 2618:17 wp-settings.php

-rw-r--r-- 1 www-data www-data 343509月 1708:35 wp-signup.php

-rw-r--r-- 1 www-data www-data 491410月 1719:22 wp-trackback.php

-rw-r--r-- 1 www-data www-data 32366月 9 2020 xmlrpc.php

打开wordpress页面初始化配置

打开其中一台web服务器开始设置

  • 将配置拷贝至另一节点

注意:以IP形式初始化wordpress的形式存在,另一节点无法访问管理节点问题,以及访问子页面仍以ip形式访问问题,如下为以域名初始化配置方式进行部署

  • 以域名形式初始化配置

注意,需先关闭一台服务器,由于lvs规则采用轮询方式会出现配置过程在两台web服务器切换导致出现问题,或者更改lvs配置为会话哈希调度算法方式或在轮询算法方式上增加会话保持参数

lvs配置在最后架构修改位置

问题点

  • 打开后台慢

由于wordpres需要加载谷歌字体等插件,导致登录后台慢,可通过配置web服务器可访问外网,或者配置安装如下两个wordpress插件优化,

插件存放位置,可挂载至NFS共享路径,便于两台web服务器访问

[root@web01 plugins]#pwd

/var/www/html/wp-content/plugins

[root@web01 plugins]#ll

总用量 28

drwxr-xr-x 5 www-data www-data 409611月 2414:33 ./

drwxr-xr-x 7 www-data www-data 409611月 2414:44 ../

drwxr-xr-x 4 www-data www-data 409611月 1612:00 akismet/

-rw-r--r--1 www-data www-data 25783月 19 2019 hello.php

-rw-r--r--1 www-data www-data 286月 5 2014 index.php

drwxr-xr-x 2 www-data www-data 409611月 2414:32 remove-open-sans-font-from-wp-core/

drwxr-xr-x 4 www-data www-data 409611月 2414:33 simple-local-avatars/

  • 发表的文章无法查看

如出现发表的文章无法查看,可在设置->固定链接,更改固定链接

测试:

部署数据库从服务器(主从复制)


#在主服务器创建用于主从复制的账号

mysql>createuser repluser@'10.0.0.%' identified by '123456';

Query OK,0 rows affected (0.01 sec)

mysql>grantallon*.*to repluser@'10.0.0.%';

Query OK,0 rows affected (0.00 sec)

mysql>flushprivileges;

Query OK,0 rows affected (0.00 sec)

#备份数据库,用于从服务器导入

[root@mysql-master ~]#mkdir /data/backup -pv

mkdir: created directory'/data/backup'

[root@mysql-master ~]#mysqldump -p123456 -A -F --single-transaction --master-data=1 > /data/backup/fullbackup.sql

mysqldump:[Warning]Using a passwordon the command line interface can be insecure.

WARNING:--master-datais deprecated and will be removed in a future version. Use--source-data instead.

#修改主从服务器my.cnf配置文件,配置GTID,后续配置主从复制信息即可不用手动指定复制节点

[root@mysql-master ~]#vim /etc/my.cnf

gtid_mode=on

enforce_gtid_consistency

[root@mysql-slave ~]#vim /etc/my.cnf

gtid_mode=on

enforce_gtid_consistency

#修改备份的数据库文件,将主从复制信息增加写入,也可单独在从服务器运行

[root@mysql-master backup]#vim fullbackup.sql

CHANGEMASTERTO MASTER_LOG_FILE='rocky8-bin.000003', MASTER_LOG_POS=157;

#将上面的语句修改为如下:

CHANGEMASTERTO

MASTER_HOST='10.0.0.5',

MASTER_USER='repluser',

MASTER_PASSWORD='123456',

MASTER_PORT=3306,

MASTER_AUTO_POSITION=1;

#拷贝修改后的备份文件至从服务器

[root@mysql-master backup]#scp fullbackup.sql 10.0.0.6:

The authenticity of host '10.0.0.6 (10.0.0.6)' can't be established.

ECDSA key fingerprint is SHA256:DpJFnuv3cskMxmCCHcUs0C2DMzKuafG/UqtjU9a24Pc.

Are you sure you want to continue connecting (yes/no/[fingerprint])?

Please type 'yes', 'no' or the fingerprint: yes

Warning: Permanently added '10.0.0.6' (ECDSA) to the list of known hosts.

root@10.0.0.6's password:

fullbackup.sql 100%2051KB 131.5MB/s 00:00

#在从服务器导入修改后的备份文件

[root@mysql-slave ~]#mysql -p123456

mysql>select@@sql_log_bin;

+---------------+

|@@sql_log_bin|

+---------------+

| 1|

+---------------+

1rowinset(0.00 sec)

mysql>set sql_log_bin=0; #临时关闭二进制日志

Query OK,0 rows affected (0.00 sec)

mysql>select@@sql_log_bin;

+---------------+

|@@sql_log_bin|

+---------------+

| 0|

+---------------+

1rowinset(0.00 sec)

mysql>\. fullbackup.sql #导入数据库文件

mysql>set sql_log_bin=1; #开启二进制日志

Query OK,0 rows affected (0.00 sec)

#开启主从复制

mysql>startslave;

Query OK,0 rows affected,1 warning (0.01 sec)

#查看状态

mysql>showslavestatus\G;

***************************1.row***************************

Slave_IO_State: Waiting forsourceto send event

Master_Host:10.0.0.5

Master_User: repluser

Master_Port:3306

Connect_Retry:60

Master_Log_File: mysql-master-bin.000001

Read_Master_Log_Pos:157

Relay_Log_File: mysql-slave-relay-bin.000002

Relay_Log_Pos:387

Relay_Master_Log_File: mysql-master-bin.000001

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB:

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno:0

Last_Error:

Skip_Counter:0

Exec_Master_Log_Pos:157

Relay_Log_Space:603

Until_Condition: None

Until_Log_File:

Until_Log_Pos:0

Master_SSL_Allowed:No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master:0

Master_SSL_Verify_Server_Cert:No

Last_IO_Errno:0

Last_IO_Error:

Last_SQL_Errno:0

Last_SQL_Error:

Replicate_Ignore_Server_Ids:

Master_Server_Id:5

Master_UUID: a4cc6abf-6884-11ed-a7f5-000c299b5c13

Master_Info_File: mysql.slave_master_info

SQL_Delay:0

SQL_Remaining_Delay:NULL

Slave_SQL_Running_State: Replica has readall relay log; waiting for more updates

Master_Retry_Count:86400

Master_Bind:

Last_IO_Error_Timestamp:

Last_SQL_Error_Timestamp:

Master_SSL_Crl:

Master_SSL_Crlpath:

Retrieved_Gtid_Set:

Executed_Gtid_Set:

Auto_Position:1

Replicate_Rewrite_DB:

Channel_Name:

Master_TLS_Version:

Master_public_key_path:

Get_master_public_key:0

Network_Namespace:

1rowinset,1 warning (0.01 sec)

#从服务器优化,修改my.cnf配置,增加read-only配置,避免从服务器写入导致主从复制出现问题,如下为完整my.cnf配置

[root@mysql-slave ~]#vim /etc/my.cnf

[mysqld]

server-id=6

log-bin

read-only

datadir=/data/mysql

socket=/data/mysql/mysql.sock

gtid_mode=on

enforce_gtid_consistency

log-error=/data/mysql/mysql.log

pid-file=/data/mysql/mysql.pid

default_authentication_plugin=mysql_native_password

#default_authentication_plugin=caching_sha2_password

[client]

socket=/data/mysql/mysql.sock

#重启mysql服务

[root@mysql-slave ~]#systemctl restart mysqld.service

#查看数据库表是否正常

mysql>use wordpress

Databasechanged

mysql>showtables;

+-----------------------+

| Tables_in_wordpress |

+-----------------------+

| wp_commentmeta |

| wp_comments |

| wp_links |

| wp_options |

| wp_postmeta |

| wp_posts |

| wp_term_relationships |

| wp_term_taxonomy |

| wp_termmeta |

| wp_terms |

| wp_usermeta |

| wp_users |

+-----------------------+

12 rows inset(0.01 sec)

配置DNS服务器


基础配置

#修改主从节点主机名

[root@rocky8 ~]#hostnamectl set-hostname dns-master

[root@rocky8 ~]#hostnamectl set-hostname dns-slave

#安装DNS服务端,bind包

[root@dns-master ~]#yum install bind bind-utils

Last metadata expiration check: 6:10:55 ago on Sun 20 Nov 202209:01:08 AM CST.

Package bind-utils-32:9.11.36-3.el8_6.1.x86_64 is already installed.

Dependencies resolved.

=================================================================================

Package Arch Version Repository Size

=================================================================================

Installing:

bind x86_64 32:9.11.36-5.el8_7.2 AppStream 2.1 M

Upgrading:

bind-libs x86_64 32:9.11.36-5.el8_7.2 AppStream 174 k

bind-libs-lite x86_64 32:9.11.36-5.el8_7.2 AppStream 1.2 M

bind-license noarch 32:9.11.36-5.el8_7.2 AppStream 103 k

bind-utils x86_64 32:9.11.36-5.el8_7.2 AppStream 451 k

python3-bind noarch 32:9.11.36-5.el8_7.2 AppStream 150 k

Transaction Summary

=================================================================================

Install 1 Package

Upgrade 5 Packages

[root@dns-slave ~]#yum install bind bind-utils

Repository extras is listed more than once in the configuration

Last metadata expiration check: 5:59:55 ago on Sun 20 Nov 202209:12:15 AM CST.

Package bind-32:9.11.36-3.el8_6.1.x86_64 is already installed.

Package bind-utils-32:9.11.36-3.el8_6.1.x86_64 is already installed.

Dependencies resolved.

=================================================================================

Package Arch Version Repository Size

=================================================================================

Upgrading:

bind x86_64 32:9.11.36-5.el8_7.2 appstream 2.1 M

bind-libs x86_64 32:9.11.36-5.el8_7.2 appstream 174 k

bind-libs-lite x86_64 32:9.11.36-5.el8_7.2 appstream 1.2 M

bind-license noarch 32:9.11.36-5.el8_7.2 appstream 103 k

bind-utils x86_64 32:9.11.36-5.el8_7.2 appstream 451 k

python3-bind noarch 32:9.11.36-5.el8_7.2 appstream 150 k

Transaction Summary

=================================================================================

Upgrade 6 Packages

配置主服务器

#修改bind配置文件,注释如下两行,以及增加一行配置allow-transfer { 从服务器IP;};

[root@dns-master ~]#vim /etc/named.conf

options {

# listen-on port 53 { 127.0.0.1; };

listen-on-v6 port 53 { ::1; };

directory "/var/named";

dump-file "/var/named/data/cache_dump.db";

statistics-file "/var/named/data/named_stats.txt";

memstatistics-file "/var/named/data/named_mem_stats.txt";

secroots-file "/var/named/data/named.secroots";

recursing-file "/var/named/data/named.recursing";

# allow-query { localhost; };

allow-transfer { 192.168.10.101;}; #IP写从服务器

#在/etc/named.rfc1912.zones文件下加如下内容,定义区域

[root@dns-master ~]#vim /etc/named.rfc1912.zones

zone "hailin.org" {

type master;

file "hailin.org.zone";

};

#添加DNS区域数据库文件,拷贝一份/var/named/目录下的named.localhost文件,更改为定义的wordpress.com.zone文件名,记得拷贝要加-p带属性拷贝,否则属主会有问题,导致服务异常,dns服务是以named身份运行的,如没加-p,修手动修改属主,如chgrp named wordpress.com.zone

[root@dns-master ~]#cp /var/named/named.localhost /var/named/hailin.org.zone -p

[root@dns-master ~]#ll /var/named/

total 20

drwxrwx--- 2 named named 6 Nov 819:18 data

drwxrwx--- 2 named named 6 Nov 819:18 dynamic

-rw-r-----1 root named 2253 Nov 819:18 named.ca

-rw-r-----1 root named 152 Nov 819:18 named.empty

-rw-r-----1 root named 152 Nov 819:18 named.localhost

-rw-r-----1 root named 168 Nov 819:18 named.loopback

drwxrwx--- 2 named named 6 Nov 819:18 slaves

-rw-r-----1 root named 152 Nov 819:18 wordpress.com.zone

#修改区域解析库文件,新增资源记录

[root@dns-master ~]#vim /var/named/hailin.org.zone

$TTL 1D

@ IN SOA dns1.hailin.org. admin.hailin.org. (

100 ; serial

1D ; refresh

1H ; retry

1W ; expire

3H ) ; minimum

NS master

NS slave

master IN A 192.168.10.100

slave IN A 192.168.10.101

www IN A 192.168.10.10

www IN A 192.168.10.20

#启动DNS服务,并添加至开机启动

[root@dns-master ~]#systemctl enable --now named

Created symlink /etc/systemd/system/multi-user.target.wants/named.service → /usr/lib/systemd/system/named.service.

#本机验证解析

[root@dns-master named]#host www.hailin.org

www.hailin.org has address 192.168.10.10

www.hailin.org has address 192.168.10.20

配置从服务器

#修改bind配置文件,注释如下两行,以及增加一行allow-transfer { none;}不允许其他主机进行区域传输

[root@dns-slave ~]#vim /etc/named.conf

options {

# listen-on port 53 { 127.0.0.1; };

listen-on-v6 port 53 { ::1; };

directory "/var/named";

dump-file "/var/named/data/cache_dump.db";

statistics-file "/var/named/data/named_stats.txt";

memstatistics-file "/var/named/data/named_mem_stats.txt";

secroots-file "/var/named/data/named.secroots";

recursing-file "/var/named/data/named.recursing";

# allow-query { localhost; };

allow-transfer { none;};

#定义区域,在/etc/named.rfc1912.zones下定义区域(zone)

[root@dns-slave ~]#vim /etc/named.rfc1912.zones

zone "hailin.org" {

type slave;

masters { 192.168.10.100;};

file "slaves/hailin.org.slave"; #注意ip前面格式要有空格,否则会出现同步不了问题

};

#启动dns服务,并加入开机启动

[root@dns-slave ~]#systemctl enable --now named

#主服务器上修改区域解析库的serial,数字往上增大,以便发起同步

[root@dns-master ~]#vim /var/named/hailin.org.zone

[root@dns-master ~]#rndc reload

server reload successful

#查看区域解析库是否已同步

[root@dns-slave ~]#ll /var/named/slaves/

total 4

-rw-r--r--1 named named 350 Nov 2015:56 wordpress.com.slave

#从服务器上验证解析

[root@dns-slave slaves]#host www.wordpress.com

www.wordpress.com has address 192.168.10.10

www.wordpress.com has address 192.168.10.20

配置Iptables


配置iptables将内网的web页面映射到外部网络

#首先配置eth1网卡对应两个IP,对外提供访问

[root@rocky8 ~]#vim /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

NAME=eth1

IPADDR=192.168.10.10

PREFIX=24

IPADDR2=192.168.10.20

PREFIX2=24

BOOTPROTO=static

ONBOOT=yes

#重启eth1网卡,重新加载配置

[root@rocky8 ~]#nmcli connection reload ;nmcli connection down eth1;nmcli connection up eth1;

#配置eth0网卡ip

DEVICE=eth0

NAME=eth0

BOOTPROTO=static

IPADDR=10.0.0.210

PREFIX=24

ONBOOT=yes

#查看两张网卡ip

[root@rocky8 ~]#ip a

...........

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000

link/ether 00:0c:29:8e:1e:37 brd ff:ff:ff:ff:ff:ff

inet 10.0.0.210/24 brd 10.0.0.255 scope global noprefixroute eth0

...............

3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000

link/ether 00:0c:29:8e:1e:41 brd ff:ff:ff:ff:ff:ff

inet 192.168.10.10/24 brd 192.168.10.255 scope global noprefixroute eth1

................

#配置DNAT,将内网web服务器的80端口映射至外网提供访问,外网IP:192.168.10.10对应10.0.0.100,外网IP:192.168.10.20对应10.0.0.101

[root@rocky8 ~]#iptables -t nat -A PREROUTING -d 192.168.10.10 -p tcp --dport 80 -j DNAT --to-destination 10.0.0.100:80

[root@rocky8 ~]#iptables -t nat -A PREROUTING -d 192.168.10.20 -p tcp --dport 80 -j DNAT --to-destination 10.0.0.101:80

#检查是否开启路由转发,1为开启

[root@rocky8 ~]#cat /proc/sys/net/ipv4/ip_forward

1

#如路由转发未开启,则开启路由转发,配如下

[root@rocky8 ~]#vim /etc/sysctl.conf

net.ipv4.ip_forward=1

#应用内核参数

[root@rocky8 ~]#sysctl -p

Rsync 备份WEB服务器数据(即NFS服务提供的共享目录)


配置backup服务器

rsync既可以作为客户端也可以作为服务端,当作为服务端时,只需加--daemon参数即开启服务端,同时会开启873监听端口,另有个问题,作为服务端每次需手动运行rsync --daemon,可写成服务的形式写一个service开机启动,另:ubuntu安装完rsync默认提供service,rhel系列可单独安装rsync-daemon包提供service服务;

#ubuntu安装rsync默认已提供service服务

[root@backup ~]#dpkg -L rsync

/.

/etc

/etc/default

/etc/default/rsync

/etc/init.d

/etc/init.d/rsync

/lib

/lib/systemd

/lib/systemd/system

/lib/systemd/system/rsync.service

[root@backup ~]#systemctl status rsync

○ rsync.service - fast remote file copy program daemon

Loaded: loaded (/lib/systemd/system/rsync.service; disabled; vendor preset:>

Active: inactive (dead)

Docs: man:rsync(1)

man:rsyncd.conf(5)

[root@backup ~]#systemctl cat rsync

# /lib/systemd/system/rsync.service

[Unit]

Description=fast remote file copy program daemon

ConditionPathExists=/etc/rsyncd.conf

After=network.target

Documentation=man:rsync(1) man:rsyncd.conf(5)

[Service]

ExecStart=/usr/bin/rsync --daemon--no-detach

RestartSec=1

#准备备份目录

[root@backup-centos8 ~]#mkdir -pv /data/backup

#配置rsync配置

[root@backup ~]#vim /etc/rsyncd.conf

uid = root

gid = root

max connections =0

ignore errors

exclude = lost+found/

log file = /var/log/rsyncd.log

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsyncd.lock

reverse lookup = no

[backup]

path = /data/backup/

comment = backup dir

read only = no

auth users = rsyncuser

secrets file = /etc/rsync.pas

#服务器端生成验证文件

[root@backup backup]#echo "rsyncuser:123456" > /etc/rsync.pas

#由于该文件存放密码账号,安全起见缩小文件权限

[root@backup backup]#chmod 600 /etc/rsync.pas

[root@backup backup]#ll /etc/rsync.pas

-rw-------1 root root 1711月 1920:28 /etc/rsync.pas

sersync客户端配置

这里采用sersync软件,实现客户端实时同步数据至备份服务器

#下载sersync

wget https://storage.googleapis.com/google-code-archivedownloads/v2/code.google.com/sersync/sersync2.5.4_64bit_binary_stable_final.tar.gz

#将sersync解压至/usr/local目录下

[root@NFS01 ~]#ls

sersync2.5.4_64bit_binary_stable_final.tar.gz

[root@NFS01 ~]#tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz -C /usr/local/

[root@NFS01 GNU-Linux-x86]#pwd

/usr/local/GNU-Linux-x86

##sersync目录只有两个文件:一个是二进制程序文件,一个是xml格式的配置文件

[root@NFS01 GNU-Linux-x86]#ls

confxml.xml sersync2

[root@NFS01 GNU-Linux-x86]#cp -a ../GNU-Linux-x86/ /usr/local/sersync

#设置PATH变量

[root@NFS01 local]#echo 'PATH=/usr/local/sersync:$PATH' > /etc/profile.d/sersync.sh

[root@NFS01 local]#source /etc/profile.d/sersync.sh

#确认安装rsync客户端工具,如未安装,运行如下命令安装,如下为适用ubuntu命令

[root@NFS01 ~]#apt install rsync

#备份sersync配置文件

[root@NFS01 local]#cd sersync/

[root@NFS01 sersync]#pwd

/usr/local/sersync

[root@NFS01 sersync]#ls

confxml.xml sersync2

[root@NFS01 sersync]#cp confxml.xml confxml.xml.bak

#修改sersync配置文件

[root@NFS01 ~]#vim /usr/local/sersync/confxml.xml

<?xml version="1.0"encoding="ISO-8859-1"?>

<head version="2.5">

<host hostip="localhost"port="8008"></host>

<debug start="false"/>

<fileSystem xfs="false"/>

<filter start="false">

<exclude expression="(.*)\.svn"></exclude>

<exclude expression="(.*)\.gz"></exclude>

<exclude expression="^info/*"></exclude>

<exclude expression="^static/*"></exclude>

</filter>

<inotify>

delete/close_write/moved_from/moved_to/create folder

<delete start="true"/>

<createFolder start="true"/>

<createFile start="false"/>

<closeWrite start="true"/>

<moveFrom start="true"/>

<moveTo start="true"/>

<attrib start="true"/>

<modify start="false"/>

</inotify>

<sersync>

<localpath watch="/data/wordpress">

<remote ip="10.0.0.202"name="backup"/>

<!--<remote ip="192.168.8.39"name="tongbu"/>-->

<!--<remote ip="192.168.8.40"name="tongbu"/>-->

</localpath>

<rsync>

<commonParams params="-artuz"/>

<auth start="true"users="rsyncuser"passwordfile="/etc/rsync.pas"/>

<userDefinedPort start="false"port="874"/><!-- port=874-->

<timeout start="false"time="100"/><!-- timeout=100-->

<ssh start="false"/>

</rsync>

<failLog path="/tmp/rsync_fail_log.sh"timeToExecute="60"/><!--default every 60mins execute once-->

<crontab start="false"schedule="600"><!--600mins-->

<crontabfilter start="false">

<exclude expression="*.php"></exclude>

<exclude expression="info/*"></exclude>

</crontabfilter>

</crontab>

<plugin start="false"name="command"/>

</sersync>

<plugin name="command">

<param prefix="/bin/sh"suffix=""ignoreError="true"/> <!--prefix /opt/tongbu/mmm.sh suffix-->

<filter start="false">

<include expression="(.*)\.php"/>

<include expression="(.*)\.sh"/>

</filter>

</plugin>

<plugin name="socket">

<localpath watch="/opt/tongbu">

<deshost ip="192.168.138.20"port="8009"/>

</localpath>

</plugin>

<plugin name="refreshCDN">

<localpath watch="" target="_blank">/data0/htdocs/cms.xoyo.com/site/">

<cdninfo domainname="ccms.chinacache.com"port="80"username="xxxx"passwd="xxxx"/>

<sendurl base="" target="_blank">http://pic.xoyo.com/cms"/>

<regexurl regex="false"match="" target="_blank">cms.xoyo.com/site([/a-zA-Z0-9]*).xoyo.com/images"/>

</localpath>

</plugin>

</head>

#创建连接rsynd服务器的用户密码文件,并必须修改权限

[root@NFS01 sersync]#echo 123456 > /etc/rsync.pas

[root@NFS01 sersync]#chmod 600 /etc/rsync.pas

#以后台方式执行同步

[root@NFS01 wordpress]#sersync2 -dro /usr/local/sersync/confxml.xml

set the system param

execute:echo 50000000 > /proc/sys/fs/inotify/max_user_watches

execute:echo 327679 > /proc/sys/fs/inotify/max_queued_events

parse the command param

option: -d run as a daemon

option: -r rsync all the local files to the remote servers before the sersync work

option: -o config xml name: /usr/local/sersync/confxml.xml

daemon thread num: 10

parse xml config file

host ip : localhost host port: 8008

daemon start,sersync run behind the console

use rsync password-file :

user is rsyncuser

passwordfile is /etc/rsync.pas

config xml parse success

please set /etc/rsyncd.conf max connections=0 Manually

sersync working thread 12 =1(primary thread) +1(fail retry thread) +10(daemon sub threads)

Max threads numbers is: 22=12(Thread pool nums) +10(Sub threads)

please according your cpu ,use -n param to adjust the cpu rate

------------------------------------------

rsync the directory recursivly to the remote servers once

working please wait...

execute command: cd /data/wordpress && rsync -artuz-R--delete ./ rsyncuser@10.0.0.202::backup --password-file=/etc/rsync.pas >/dev/null 2>&1

run the sersync:

watch path is: /data/wordpress

#查看备份服务器是否已同步

[root@backup backup]#ls

index.php wp-comments-post.php wp-includes wp-signup.php

license.txt wp-config.php wp-links-opml.php wp-trackback.php

readme.html wp-config.php.bak wp-load.php xmlrpc.php

wp-activate.php wp-config-sample.php wp-login.php

wp-admin wp-content wp-mail.php

wp-blog-header.php wp-cron.php wp-settings.php

[root@backup backup]#ll

总用量 244

drwxr-xr-x 5 www-data www-data 409611月 2017:14 ./

drwxr-xr-x 3 root root 409611月 1920:12 ../

-rw-r--r-- 1 www-data www-data 49011月 2014:01 .htaccess

-rw-r--r-- 1 www-data www-data 405 2月 6 2020 index.php

-rw-r--r-- 1 www-data www-data 19915 1月 1 2022 license.txt

-rw-r--r-- 1 www-data www-data 7389 9月 1706:27 readme.html

-rw-r--r-- 1 www-data www-data 7205 9月 1707:13 wp-activate.php

drwxr-xr-x 9 www-data www-data 409611月 1612:00 wp-admin/

-rw-r--r-- 1 www-data www-data 351 2月 6 2020 wp-blog-header.php

-rw-r--r-- 1 www-data www-data 233811月 10 2021 wp-comments-post.php

-rw-rw-rw- 1 www-data www-data 327911月 2013:58 wp-config.php

-rw-rw-rw- 1 www-data www-data 327911月 2013:58 wp-config.php.bak

-rw-r--r-- 1 www-data www-data 300112月 14 2021 wp-config-sample.php

drwxr-xr-x 7 www-data www-data 409611月 2017:16 wp-content/

-rw-r--r-- 1 www-data www-data 5543 9月 2023:44 wp-cron.php

drwxr-xr-x 27 www-data www-data 1228811月 1612:00 wp-includes/

-rw-r--r-- 1 www-data www-data 2494 3月 20 2022 wp-links-opml.php

-rw-r--r-- 1 www-data www-data 3985 9月 1916:59 wp-load.php

-rw-r--r-- 1 www-data www-data 49135 9月 2006:26 wp-login.php

-rw-r--r-- 1 www-data www-data 852210月 1719:06 wp-mail.php

-rw-r--r-- 1 www-data www-data 24587 9月 2618:17 wp-settings.php

-rw-r--r-- 1 www-data www-data 34350 9月 1708:35 wp-signup.php

-rw-r--r-- 1 www-data www-data 491410月 1719:22 wp-trackback.php

-rw-r--r-- 1 www-data www-data 3236 6月 9 2020 xmlrpc.php

客户端验证

  • 客户端这里我采用window系统,DNS指向DNS服务器192.168.10.100,192.168.10.101

架构修改方案一(增加LVS)


将iptables替换成LVS

#IP调整

内网各服务器网关修改至LVS eth0接口

#修改DNS服务器A记录

$TTL 1D

@ IN SOA dns1.hailin.org. admin.hailin.org. (

111 ; serial

1D ; refresh

1H ; retry

1W ; expire

3H ) ; minimum

NS master

NS slave

master IN A 192.168.10.100

slave IN A 192.168.10.101

www IN A 192.168.10.20

#LVS服务器配置

#配置LVS服务器网卡

[root@ubuntu2204 ~]#cat /etc/netplan/01-netcfg.yaml

network:

version: 2

renderer: networkd

ethernets:

eth0:

addresses:

-10.0.0.170/24

gateway4: 10.0.0.210

nameservers:

addresses: [223.5.5.5]

eth1:

addresses:

-192.168.10.20/24

#LVS服务器开启ip_forward

[root@ubuntu2204 ~]#vim /etc/sysctl.conf

net.ipv4.ip_forward=1

[root@ubuntu2204 ~]#sysctl -p

net.ipv4.ip_forward =1

#LVS服务器配置规则,NAT模式

[root@ubuntu2204 ~]#ipvsadm -A -t 192.168.10.20:80 -s rr

[root@ubuntu2204 ~]#ipvsadm -a -t 192.168.10.20:80 -r 10.0.0.101:80 -m

[root@ubuntu2204 ~]#ipvsadm -a -t 192.168.10.20:80 -r 10.0.0.100:80 -m

[root@ubuntu2204 ~]#ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port Forward Weight ActiveConn InActConn

TCP 192.168.10.20:80 rr

-> 10.0.0.100:80 Masq 1 0 0

-> 10.0.0.101:80 Masq 1 0 0

架构修改方案二(增加LVS)


架构修改为Client->iptables->lvs->web(apache)

#IP调整

1、内网各服务器网关修改至LVS eth0接口

2、LVS的eth1网关修改至iptables的eth0接口

#修改DNS服务器A记录

[root@dns-master named]#cat hailin.org.zone

$TTL 1D

@ IN SOA dns1.hailin.org. admin.hailin.org. (

113 ; serial

1D ; refresh

1H ; retry

1W ; expire

3H ) ; minimum

NS master

NS slave

master IN A 192.168.10.100

slave IN A 192.168.10.101

www IN A 192.168.10.10

#LVS服务器配置

#网卡调整

[root@ubuntu2204 ~]#cat /etc/netplan/01-netcfg.yaml

# This file describes the network interfaces available on your system

# For more information, see netplan(5).

network:

version: 2

renderer: networkd

ethernets:

eth0:

addresses:

-10.0.0.170/24

nameservers:

addresses: [223.5.5.5]

eth1:

addresses:

-10.0.0.20/24

gateway4: 10.0.0.210

#LVS服务器开启ip_forward

[root@ubuntu2204 ~]#vim /etc/sysctl.conf

net.ipv4.ip_forward=1

[root@ubuntu2204 ~]#sysctl -p

net.ipv4.ip_forward =1

#LVS服务器配置规则,NAT模式

[root@ubuntu2204 ~]#ipvsadm -A -t 10.0.0.20:80 -s rr

[root@ubuntu2204 ~]#ipvsadm -a -t 10.0.0.20:80 -r 10.0.0.100:80 -m

[root@ubuntu2204 ~]#ipvsadm -a -t 10.0.0.20:80 -r 10.0.0.101:80 -m

[root@ubuntu2204 ~]#ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port Forward Weight ActiveConn InActConn

TCP 10.0.0.20:80 rr

-> 10.0.0.100:80 Masq 1 0 0

-> 10.0.0.101:80 Masq 1 0 0

#iptables配置修改

#开启ip_forward

[root@rocky8 ~]#vim /etc/sysctl.conf

net.ipv4.ip_forward=1

[root@rocky8 ~]#sysctl -p

net.ipv4.ip_forward =1

#nat映射,只将lvs vip地址映射到外网

[root@rocky8 ~]#iptables -t nat -A PREROUTING -d 192.168.10.10 -p tcp --dport 80 -j DNAT --to-destination 10.0.0.20:80

[root@rocky8 ~]#iptables -nL -t nat

Chain PREROUTING (policy ACCEPT)

target prot opt source destination

DNAT tcp -- 0.0.0.0/0 192.168.10.10 tcp dpt:80 to:10.0.0.20:80

Chain INPUT (policy ACCEPT)

target prot opt source destination

Chain POSTROUTING (policy ACCEPT)

target prot opt source destination

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值