[工具] Shell 批量对多个 IP 地址开发多个端口策略 (firewalld 版)

介绍

基本信息

作者:朱明宇
名称:批量对多个 IP 地址开发多个端口策略
作用:批量对多个 IP 地址开发多个端口策略

使用方法

1. 在此脚本的分割线内写入相应的内容
2. 给此脚本添加执行权限
3. 执行此脚本

脚本分割线里的变量

1.ips=”192.168.2.1 192.168.1.0/24″ #要开放端口的 IP 地址
2.ports”22 3306 8080-8090″ #要开放的端口

脚本

#!/bin/bash

####################### Separator ########################

ips="192.168.2.1 192.168.1.0/24"
ports"22 3306 8080-8090"

####################### Separator ########################

systemctl start firewalld
systemctl enable firewalld

for i in $ips
do
        for j in $ports
        do
                firewall-cmd --add-rich-rule="rule family="ipv4" source address="$i" port protocol="tcp" port="$j" accept" --permanent
        done
        echo $i done
        echo
done

firewall-cmd --reload

[命令] Linux 命令 nmcli (网络管理)

内容一:整个网络的管理

1.1 开启整个网络

# nmcli network on

或者:

# nmcli net on

1.2 关闭整个网络

# nmcli network off

或者:

# nmcli net off

内容二:管理网络设备

2.1 显示网络设备的信息

2.1.1 显示所有网络设备
# nmcli connection show

或者:

# nmcli conneciton

或者:

# nmcli con show

或者:

# nmcli con
2.1.2 显示被激活的网络设备
# nmcli connection show --active

或者:

# nmcli conneciton --active

或者:

# nmcli con show --active

或者:

# nmcli con --active

2.2 显示某一个网络设备是否激活

# nmcli device connect <network device name>

或者:

# nmcli dev con <network device name>

2.3 显示网络设备的联通状态

# nmcli device status

或者:

# nmcli dev status

2.4 添加网络设备

# nmcli connection add con-name <custom network card alias> ifname <network device name> type ethernet

(补充:这里 con-name 是指要指定一个自定义的网卡别名,ifname 是指要指明网络设备名)

或者:

# nmcli con add con-name <custom network card alias> ifname <network device name> type ethernet

(补充:这里 con-name 是指要指定一个自定义的网卡别名,ifname 是指要指明网络设备名)

2.5 删除网络设备

# nmcli connection delete <custom network card alias>

或者:

# nmcli con del <custom network card alias>

2.6 激活一个网络设备

# nmcli device connect <network device name>

或者:

# nmcli dev con <network device name>

2.7 取消激活一个网络设备

# nmcli device disconnect <network device name>

或者:

# nmcli dev dis <network device name>

内容三:IP 地址管理

3.1 设置 IP 地址

3.1.1 设置 IP 地址的格式
# nmcli connection modify <custom network card alias> ipv4.address <IP address>/<subnet mask> ipv4.gateway <gateway IP address> ipv4.dns <DNS IP address> autoconnect yes
3.1.2 设置 IP 地址的案例
# nmcli connection modify eth0 ipv4.address 192.168.1.1/24 ipv4.gateway 192.168.1.1 ipv4.dns 192.168.1.254 autoconnect yes

(补充:这里以添加给 eth0 网卡添加静态 IP 地址 192.168.1.1/24,网关 IP 地址 192.168.1.1,DNS 192.168.1.254 并开机自启为例)

3.2 让 IP 地址生效

3.2.1 让 IP 地址生效的格式
# nmcli connection up <custom network card alias>
3.2.2 让 IP 地址生效的案例
# nmcli connection down eth0

3.3 添加或删除额外的 IP 地址

3.3.1 添加额外的 IP 地址
3.3.1.1 添加额外的 IP 地址的格式
# nmcli connection modify <custom network card alias> +ipv4.address <IP address>/<subnet mask>
3.3.1.2 添加额外的 IP 地址的案例
# nmcli connection modify eth0 +ipv4.addresses 192.168.0.100/24

(补充:这里以添加给 eth0 网卡额外添加 IP 地址 192.168.1.1/24 为例)

3.3.2 删除额外的 IP 地址
3.3.2.1 删除额外的 IP 地址的格式
# nmcli connection modify <custom network card alias> -ipv4.address <IP address>/<subnet mask>
3.3.2.2 删除额外的 IP 地址的案例
# nmcli connection modify eth0 -ipv4.addresses 192.168.0.100/24

(补充:这里以删除 eth0 网卡上的额外 IP 地址 192.168.1.1/24 为例)

内容四:路由管理

4.1 添加路由

4.1.1 添加路由的格式
# nmcli con mod <custom network card alias> ipv4.routes "<network segment> <gateway IP address>"
4.1.2 添加路由的案例
# nmcli con mod eth0 ipv4.routes "192.168.2.0/24 192.168.3.1"

(补充:这里以给 eth0 网卡添加 192.168.2.0/24 通过 192.168.3.1 的路由为例)

4.2 让路由生效

4.2.1 让路由生效的格式
# nmcli connection up <custom network card alias>
4.2.2 让路由生效的案例
# nmcli connection up eth0

(补充:这里以让 eth0 网卡生效为例)

[步骤] team 网卡捆绑组的添加 (CentOS Linux & RHEL 版)

步骤一:显示现有的网卡有哪些

# nmcli connection show

步骤二:添加网卡捆绑组

2.1 添加网卡捆绑组

2.1.1 添加网卡捆绑组的命令格式
# nmcli connection add type team con-name <connection name of network card binding group> ifname <name of network card binding group> config ‘{“runner”:{“name”:”activebackup”}}’
2.1.2 添加网卡捆绑组的案例
# nmcli connection add type team con-name team0 ifname team0 config ‘{“runner”:{“name”:”activebackup”}}’

2.2 添加网卡捆绑组的子网卡

2.2.1 添加网卡捆绑组子网卡的命令格式
# nmcli connection add type team-slave con-name <network card connection name> ifname <subnet card name> master <name of network card binding group>
2.2.2 添加网卡捆绑组子网卡的案例
# nmcli con add type team-slave con-name team0-port0 ifname eth0 master team0
# nmcli con add type team-slave con-name team0-port1 ifname eth1 master team0

步骤三:给网卡捆绑组配置 IP 地址

# nmcli connection modify team0 ipv4.addresses 192.168.100.5/24 ipv4.gateway 192.168.100.1 ipv4.method manual autoconnect yes

步骤四:启动网卡捆绑组

4.1 显示现有的网卡捆绑组和对应的子网卡有哪些

# nmcli connection show

4.2 启动网卡捆绑组里的子网卡

4.2.1 启动网卡捆绑组里子网卡的命令格式
# nmcli connection up <subnet card name>
4.2.2 启动网卡捆绑组里的子网卡
# nmcli connection up team0-port0
# nmcli connection up team0-port1

或者:

# nmcli connection reload

4.3 启动网卡捆绑组

4.3.1 启动网卡捆绑组的命令格式
# nmcli connection up <name of network card binding group>
4.3.2 启动网卡捆绑组的案例
# nmcli connection up team0
4.3.3 显示网卡捆绑组的状态
# teamdctl team1 status

步骤五:确认网卡捆绑组的 IP 地址配置成功

# ip address show 

(补充:如果网卡组里出现了我们配置的 IP 地址,则代表 IP 地址配置成功)

[内容] Linux 网卡速率的显示

方法一:通过网卡当前的工作状态得知

# ethtool ens192
Settings for ens192:
        Supported ports: [ TP ]
        Supported link modes:   1000baseT/Full 
                                10000baseT/Full 
        Supported pause frame use: No
        Supports auto-negotiation: No
        Supported FEC modes: Not reported
        Advertised link modes:  Not reported
        Advertised pause frame use: No
        Advertised auto-negotiation: No
        Advertised FEC modes: Not reported
        Speed: 10000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: off
        MDI-X: Unknown
        Supports Wake-on: uag
        Wake-on: d
        Link detected: yes

(补充:由上面的输出结果可以得知 ens192 网卡目前工作在 1000baseT/Full 状态)

方法二:通过网卡的型号得知

# lspci -vvv | grep Ethernet
0b:00.0 Ethernet controller: VMware VMXNET3 Ethernet Controller (rev 01)
        Subsystem: VMware VMXNET3 Ethernet Controller

(补充:由上面的输出结果可以得知,网卡设备为 VMware VMXNET3 Ethernet Controller (rev 01) ,我们可以在网上搜索此设备名以得知此网卡的速率)