拓展 centos 7
  g4XyCtialgK0 2023年11月02日 72 0

查看端口的占用情况

Centos6/contos7(ECS) 使用

netstat
查询系统上有多少TCP 多少UDP会话

netstat -tun

  • -t: tcp
  • -u: udp
  • -a: all 表示列出所有的连接,服务监听,Socket资料
  • -n: port number 用数字的形式展示
  • -p: program显示哪个进程监听这个端口
  • -l :listening,列出当前处于监听状态的服务

contos7(Minimal) /contos7(ECS) 使用

命令 : ss

ss 尤其是在有海量并发时, 效率更高

  • -t: tcp
  • -u: udp
显示当前机器上有哪些端口提供服务
[root@139 bin]# ss -nlutp

centos7特性

操作

centos6

centos7

文件系统

ext4

xfs

修改主机名

/etc/sysconfig/network

/etc/hosthome

修改时区

/etc/sysconfig/clock

timedatectl set-timezone Asia/Tokyo

查看ip信息

ifconfig

ifconfig/ip(阿里ECS)

查看DNS信息

/etc/resolv.conf

-

查看端口状态

netsat

netsat/ss

核心服务

操作

centos6

centos7

防火墙

iptables

firewald

服务管理

System V init

systemd

时间同步服务

ntp

chrony

查看防火墙的状态

[root@大爱ECS bin]# sudo systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead) # 关闭
Docs: man:firewalld(1)

其他变化

  • centos7 默认支持docker
  • 内核支持: Overlay FS
  • Repo 源支持
  • centos7 的yum源支持一键安装docker
  • 不再支持32位操作系统
  • GNOME 3.X (桌面应用)
  • 支持40G以太网卡

文件目录

-rw-r--r--   1 root root     0 Sep 14 19:11 a2498
lrwxrwxrwx 1 root root 7 Feb 22 2019 bin -> usr/bin # 操作系统的命令
dr-xr-xr-x. 5 root root 4096 Jun 24 10:17 boot # boot loader files 基础引导文件,引导开机
drwxr-xr-x 7 root root 4096 Jun 3 14:41 CloudResetPwdUpdateAgent
drwxr-xr-x 7 root root 4096 Sep 1 22:47 CloudrResetPwdAgent
drwxr-xr-x 19 root root 3020 Sep 15 15:10 dev # 磁盘,设备文件
drwxr-xr-x. 84 root root 4096 Sep 15 15:10 etc # 存放大量的配置文件
drwxr-xr-x. 3 root root 4096 Sep 8 20:32 home # 普通用户的家目录
drwxr-xr-x 4 root root 4096 Aug 25 19:25 kong
lrwxrwxrwx 1 root root 7 Feb 22 2019 lib -> usr/lib # 系统的依赖库
lrwxrwxrwx 1 root root 9 Feb 22 2019 lib64 -> usr/lib64
drwx------. 2 root root 16384 Feb 22 2019 lost+found
drwxr-xr-x. 2 root root 4096 Apr 11 2018 media # 媒体数据
drwxr-xr-x. 2 root root 4096 Apr 11 2018 mnt # mount directory 挂载目录
drwxr-xr-x 3 root root 4096 Aug 25 17:32 node
drwxr-xr-x. 2 root root 4096 Sep 13 03:14 opt # optional add-on apps 原生添加的app
dr-xr-xr-x 85 root root 0 Sep 15 15:10 proc # process infornation 进程的信息 如top提取的数据就来自这个目录
dr-xr-x---. 8 root root 4096 Sep 15 15:06 root # 管理员的家目录
drwxr-xr-x 25 root root 740 Sep 15 15:10 run
lrwxrwxrwx 1 root root 8 Feb 22 2019 sbin -> usr/sbin
drwxr-xr-x. 2 root root 4096 Apr 11 2018 srv # Service Data 服务数据
dr-xr-xr-x 13 root root 0 Sep 15 15:10 sys
drwxrwxrwt. 13 root root 4096 Sep 15 15:13 tmp # 临时文件
drwxr-xr-x. 13 root root 4096 Feb 22 2019 usr # 用户安装的软件
drwxr-xr-x. 19 root root 4096 Sep 15 15:10 var # 可变的文件,如日志文件/帮助文档

centos6

centos7

bin

bin->usr/bin

sbin

sbin->user/sbin

lib

lib->usr/lib

lib64

lib64->usr/lib

  • | run

centos7 多出来了一个run目录.这个目录类似tmp目录,都用来存放临时文件, 但是不同的是它存放的正在运行的服务需要的临时文件

修改时区

centos6

就是拷贝一份文件到 /etc/localtime中

cp /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime

centos7

命令: timedatectl

[root@大爱ECS /]# timedatectl 
Local time: Sun 2019-09-15 15:40:34 CST # 本地时间
Universal time: Sun 2019-09-15 07:40:34 UTC # 世界时间
RTC time: Sun 2019-09-15 07:40:33 # 主板时间
Time zone: Asia/Shanghai (CST, +0800) # +0800 东八区
NTP enabled: yes
NTP synchronized: no
RTC in local TZ: no # 本地主板时间是否和当前时间保持一致
DST active: n/a

设置本地时间

timedatectl set-timezone Asia/Tokyo

设置主板时间

timedatectl set-local-rtc 1 
1 : 表示将硬件的时间调整为和本地时间一致

网卡接口命名

centos6

一般命名为:

eth0  eth1  eth2
em0 em1 em2
em* 类型的网卡是针对戴尔而设计

centos7

默认是基于固件,拓扑,位置信息来分配,但是更加灵活可预知,但是更加难读

强大的参数自动补全

[root@大爱ECS /]# yum install bash-completion

重新登录生效

systemd 服务管理

格式:

systemctl [options] conmand [name]

支持服务的并行启动,缩短开机时间

Systemd系统的服务管理

---

centos6

centos7

服务管理

service

systemctl

启动项管理(开机启动)

chkconfig

systemctl

系统启动级别

init

systemctl

定时任务

cron

timer

日志管理

syslog

Systemd-journal

还可以 设置环境变量,系统挂载,远程主机管理


systemd 可以管理各种各样的服务,为了区分,他给每个不同的服务取了不同的后缀名

[root@139 ~]# systemctl -t help
Available unit types:
service
socket
busname
target
snapshot
device
mount
automount
swap
timer
path
slice
scope

文件扩展名

作用

文件扩展名

作用

.service

用于定义系统服务

.snapshot

管理系统快照

.target

模拟实现运行级别

.swap

Swap设备

.device

定义内核识别设备

.automount

自动挂载点

.mount

文件系统挂载点

.path

监控文件/目录

.socket

进程间通信使用socket文件

.scope

外部线程

.timer

定时器

.slice

分层次管理系统进程

  • 如果没有扩展名,默认扩展名 .service

Systemd 基本命令

基础命令

作用

systemctl, systemctl list-units

查看已经激活的单元

systemctl --failed

查看运行失败的单元

systemctl list-unit-files

查看所有可用的单元,以及是否开机启动

systemctl help

查看单元的帮助手册页

systemctl daemon-reload

重新载入 systemd

systemctl start <单元>

激活单元

systemctl stop <单元>

停止单元

systemctl restart <单元>

重启单元

systemctl status <单元>

输出单元运行状态

systemctl is-enable

<单元>检测单元是否自动启动

systemctl enable <单元>

开机启动单元

systemctl enable --now <单元>

设置单元开机启动并且立即启动

systemctl disable <单元>

取消开机自动启动

systemctl mask <单元>

禁用一个单元

systemctl unmask <单元>

取消禁用某个单元

Systemd系统启动级别设置

centos6

查看系统的启动级别

[root@139 ~]# ll /etc/rc.d
total 36
drwxr-xr-x. 2 root root 4096 Sep 14 18:34 init.d
drwxr-xr-x. 2 root root 4096 Aug 24 10:58 rc0.d
drwxr-xr-x. 2 root root 4096 Aug 24 10:58 rc1.d
drwxr-xr-x. 2 root root 4096 Aug 24 10:58 rc2.d
drwxr-xr-x. 2 root root 4096 Aug 24 10:58 rc3.d
drwxr-xr-x. 2 root root 4096 Aug 24 10:58 rc4.d
drwxr-xr-x. 2 root root 4096 Aug 24 10:58 rc5.d
drwxr-xr-x. 2 root root 4096 Aug 24 10:58 rc6.d
-rw-r--r-- 1 root root 473 Apr 26 01:19 rc.local

进入每一个rcX, 都能看到在这个启动级别下,启动的服务列表

[root@139 ~]# cd /etc/rc.d/rc3.d
[root@139 rc3.d]# ll
total 0
lrwxrwxrwx. 1 root root 20 Feb 22 2019 K50netconsole -> ../init.d/netconsole
lrwxrwxrwx. 1 root root 17 Feb 22 2019 K90network -> ../init.d/network
lrwxrwxrwx 1 root root 28 Jun 3 14:41 S20cloudResetPwdAgent -> ../init.d/cloudResetPwdAgent
lrwxrwxrwx 1 root root 34 Jun 3 14:41 S20cloudResetPwdUpdateAgent -> ../init.d/cloudResetPwdUpdateAgent
lrwxrwxrwx 1 root root 24 Feb 22 2019 S50multi-queue-hw -> ../init.d/multi-queue-hw
lrwxrwxrwx 1 root root 19 Feb 22 2019 S98denyhosts -> ../init.d/denyhosts

在centos6中查询所在的启动模式

runlevel 

进入指定的模式

init 模式表示号数

---

SysVint

Systemd

关闭系统

0

runlevel0.target , poweroff.terget

单用户模式

1,s,single

runlevel1.target , rescue.terget (rescue急救模式)

多用户模式

2

runlevel2.target , multi-user.target

多用户带网络模式

3

runlevel3.target , multi-user.target

多用户, 网络模式,图像化

5

runlevel5.target , graphical.terget

重启

6

runlevel6.target , reboot.terget

centos7

查看当前系统所在的启动级别

[root@139 rc3.d]# systemctl get-default 
multi-user.target

改变启动级别慎用 , 需要reboot才能生效

[root@139 rc3.d]# systemctl set-default multi-user.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target.
它是创建了一个连接
  • 永久性的修改默认的启动级别
修改这个配置文件  /etc/inittab

防火墙 firewalld

  • 在centos7中 firewadlld和iptables共存
  • firewalld 底层调用的iotables

firewalld使用区域管理

centos7上的9个区域

[root@139 rc3.d]# ls /usr/lib/firewalld/zones/
block.xml # (阻塞区域)任何传入网络的数据包都将被阻止
dmz.xml # (隔离区域) 直选择接受传入的网络链接
drop.xml # (丢弃区域) 任何传入网络的连接都被拒绝
external.xml # (外部区域) 不相信网络上的其他计算机不会损伤你的计算机,只选择接受传入网络连接
home.xml # (家庭区域) 相信网络上的其他计算机不会损伤你的计算机
internal.xml # (内部区域) 相信网络上的其他计算机,不会损伤你的计算机,只选择接受传入的网络连接
public.xml # (公共区域)不相信网络上的任何计算机,只根据配置选择接受网络连接
trusted.xml (信任区域) 所有的网络连接都可以接受
work.xml # (工作区域) 相信网络上的其他计算机不会损伤你的计算机

家庭网络模式,相信网络上的计算机,安全系数低

[root@139 zones]# cat home.xml 
<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Home</short>
<description>For use in home areas. You mostly trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
<service name="ssh"/>
<service name="mdns"/>
<service name="samba-client"/>
<service name="dhcpv6-client"/>
</zone>

默认使用的 public.xml 在公共网络上使用,不相信网络上的任意一个计算机器

  • 启动防火墙
[root@139 zones]# systemctl start firewalld.service
  • 查看
[root@139 zones]# [root@139 zones]# systemctl start firewalld.service
-bash: [root@139: command not found
[root@139 zones]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: active (running) since Sun 2019-09-15 17:07:43 CST; 22s ago
Docs: man:firewalld(1)
Main PID: 4461 (firewalld)
CGroup: /system.slice/firewalld.service
└─4461 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

Sep 15 17:07:42 139.9.92.235 systemd[1]: Starting firewalld - dynamic firewall daemon...
Sep 15 17:07:43 139.9.92.235 systemd[1]: Started firewalld - dynamic firewall daemon.
  • 查看防火墙使用的默认区域 -- public (active)
[root@139 zones]# firewall-cmd  --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources: # 控制访问我的源ip的限制
services: dhcpv6-client ssh # 本机哪些服务对外开放, 仅这两个服务提供外部访问
ports: # 对外提供的端口
protocols: # 对外开放的协议
masquerade: no
forward-ports: # 目的端口的转发
source-ports: # 源 端口的转发
icmp-blocks: #
rich rules:# 更高级配置,如只允许某一个ip访问
  • 更改默认区域
[root@139 zones]# firewall-cmd --set-default-zone=home
success

再次查看
[root@139 zones]# firewall-cmd --list-all
home (active)
target: default

firewalld中的区域与接口

  • 一个网卡的接口,只能属于一个zone, 不能同属于多个zone
  • 1个zone 可以有多个网卡接口
  • 任何配置了一个网卡接口的区域,都是活跃区域
  • 查看本机的网卡接口
[root@139 zones]# ip a
# 本地回环网卡
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether fa:16:3e:d6:74:91 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.32/24 brd 192.168.0.255 scope global noprefixroute dynamic eth0
valid_lft 81533sec preferred_lft 81533sec
inet6 fe80::f816:3eff:fed6:7491/64 scope link
valid_lft forever preferred_lft forever
  • 查看网卡接口现在属于哪个区域
[root@139 zones]# firewall-cmd --get-active-zones
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:

可以看到,eth0 ,现在属于 默认的public区域

  • 将网卡接口转移到其他区域
[root@139 zones]# firewall-cmd --zone=home --change-interface=eth0
The interface is under control of NetworkManager, setting zone to 'home'.
success

再次查看现在活跃的区域,发现home替换了pulic,因为,配置了网卡接口的区域肯定是活跃的区域
[root@139 zones]# firewall-cmd --get-active-zones
home
interfaces: eth0

firewalld防火墙的端口配置规则及添加白名单

默认情况下,打开防火墙后从服务器往外随意发送数据, 但是任何进入服务器方向的数据都会被墙掉

其实开放了这个端口,就等于让占用这个端口的服务对外提供服务

接下来设置白名单:

  • 配置指定服务对外提供服务
  • 配置指定端口对外开放
  • 配置指定ip访问机器
[root@139 bin]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client ssh # 配置了 dhcpv6-client, 及ssh(允许远程登录)
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
  • 添加对外提供服务的端口号
# 查看机器上对外提供服务的端口, 最下面9998端口是服务器上对外提供服务应用程序
# 默认情况下,通过浏览器是访问不到它的,会被墙掉,需要把这个端口添加到白名单才能访问

[root@139 bin]# ss -nlutp
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
udp UNCONN 0 0 *:68 *:* users:(("dhclient",pid=3790,fd=6))
udp UNCONN 0 0 192.168.0.32:123 *:* users:(("ntpd",pid=3718,fd=21))
udp UNCONN 0 0 127.0.0.1:123 *:* users:(("ntpd",pid=3718,fd=18))
udp UNCONN 0 0 *:123 *:* users:(("ntpd",pid=3718,fd=16))
udp UNCONN 0 0 fe80::f816:3eff:fed6:7491%eth0:123 :::* users:(("ntpd",pid=3718,fd=22))
udp UNCONN 0 0 ::1:123 :::* users:(("ntpd",pid=3718,fd=19))
udp UNCONN 0 0 :::123 :::* users:(("ntpd",pid=3718,fd=17))
tcp LISTEN 0 128 *:22 *:* users:(("sshd",pid=4185,fd=3))
tcp LISTEN 0 50 :::9998 :::* users:(("java",pid=4939,fd=203))
tcp LISTEN 0 1024 :::9999 :::* users:(("java",pid=4939,fd=202))
tcp LISTEN 0 50 :::7473 :::* users:(("java",pid=4939,fd=208))
tcp LISTEN 0 128 :::22 :::* users:(("sshd",pid=4185,fd=4))

# 为public域添加允许对外提供的端口
[root@139 bin]# firewall-cmd --zone=public --add-port=9998/tcp
success

# 再次查看
[root@139 bin]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client ssh
ports: 9998/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:

# 不需要重启服务,
  • 移除白名单中的端口
[root@139 bin]# firewall-cmd --zone=public --remove-port=端口号 

通过这种方式添加的配置,是临时的,重启服务后,配置会消失

  • 永久生效
[root@139 bin]# firewall-cmd --zone=public --add-port=9998/tcp --permanent    (permanent永久的)
[root@139 bin]# firewall-cmd --zone=public --remove-port=端口号 --permanent

firewalld防火墙的配置规则及添加服务白名单

如果服务器上的应用程序是以服务的形式存在的, 想让他对它提供服务,仅仅需要将它添加到服务的白名单就行

其实服务的白名单规则,和上面的直接开放端口是一样的, 只不过把端口包装成服务更容易让人理解

查看系统上服务的xml配置文件

[root@139 zones]# ls  /usr/lib/firewalld/services/
amanda-client.xml elasticsearch.xml jenkins.xml mysql.xml puppetmaster.xml syncthing-gui.xml
amanda-k5-client.xml freeipa-ldaps.xml kadmin.xml nfs3.xml quassel.xml syncthing.xml
bacula-client.xml freeipa-ldap.xml kerberos.xml nfs.xml radius.xml synergy.xml
bacula.xml freeipa-replication.xml kibana.xml nmea-0183.xml redis.xml syslog-tls.xml
bgp.xml freeipa-trust.xml klogin.xml nrpe.xml RH-Satellite-6.xml syslog.xml
bitcoin-rpc.xml ftp.xml kpasswd.xml ntp.xml rpc-bind.xml telnet.xml
bitcoin-testnet-rpc.xml ganglia-client.xml kprop.xml openvpn.xml rsh.xml tftp-client.xml
bitcoin-testnet.xml ganglia-master.xml kshell.xml ovirt-imageio.xml rsyncd.xml tftp.xml
bitcoin.xml git.xml ldaps.xml ovirt-storageconsole.xml samba-client.xml tinc.xml
ceph-mon.xml gre.xml ldap.xml ovirt-vmconsole.xml samba.xml tor-socks.xml
ceph.xml high-availability.xml libvirt-tls.xml pmcd.xml sane.xml transmission-client.xml
cfengine.xml https.xml libvirt.xml pmproxy.xml sips.xml upnp-client.xml
condor-collector.xml http.xml managesieve.xml pmwebapis.xml sip.xml vdsm.xml
ctdb.xml imaps.xml mdns.xml pmwebapi.xml smtp-submission.xml vnc-server.xml
dhcpv6-client.xml imap.xml minidlna.xml pop3s.xml smtps.xml wbem-https.xml
dhcpv6.xml ipp-client.xml mongodb.xml pop3.xml smtp.xml xmpp-bosh.xml
dhcp.xml ipp.xml mosh.xml postgresql.xml snmptrap.xml xmpp-client.xml
dns.xml ipsec.xml mountd.xml privoxy.xml snmp.xml xmpp-local.xml
docker-registry.xml ircs.xml mssql.xml proxy-dhcp.xml spideroak-lansync.xml xmpp-server.xml
docker-swarm.xml irc.xml ms-wbt.xml ptp.xml squid.xml zabbix-agent.xml
dropbox-lansync.xml iscsi-target.xml murmur.xml pulseaudio.xml ssh.xml zabbix-server.xml

随便找一个打开

[root@139 services]# cat ssh.xml 
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>SSH</short>
<description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
<port protocol="tcp" port="22"/>
</service>

其实可以看到,服务中有一个配置添加的就是端口的信息, 把服务添加到白名单 == 把服务占用的端口添加到白名单

  • 添加服务到白名单
把http服务添加到白名单中, 开放80端口!!! 
[root@139 services]# firewall-cmd --zone=public --add-service=http
  • 移除服务
[root@139 services]# firewall-cmd --zone=public --remove-service=http

同样想持久话,添加 -permanent

ip白名单

[root@ecs-t6-large-2-linux-20190918000015 ~]# firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="211.123.123151" port protocol="tcp" port="9200" accept"

success

[root@ecs-t6-large-2-linux-20190918000015 ~]# firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="211.123.123151" port protocol="tcp" port="9200" accept"

success

[root@ecs-t6-large-2-linux-20190918000015 ~]# firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="211.123.123151" port protocol="tcp" port="9300" accept"

success

[root@ecs-t6-large-2-linux-20190918000015 ~]# firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="211.123.123151" port protocol="tcp" port="9998" accept"

success

[root@ecs-t6-large-2-linux-20190918000015 ~]# firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="localhost" port protocol="tcp" port="9998" accept"

Error: INVALID_ADDR: localhost

[root@ecs-t6-large-2-linux-20190918000015 ~]# firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="127.0.0.1" port protocol="tcp" port="9998" accept"

success

[root@ecs-t6-large-2-linux-20190918000015 ~]# firewall-cmd --reload

success

[root@ecs-t6-large-2-linux-20190918000015 ~]# firewall-cmd --list-all



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  9E2BTpjt8nym   2023年12月06日   36   0   0 WindowsgitCentOS
g4XyCtialgK0