全部版块 我的主页
论坛 数据科学与人工智能 IT基础
93 0
2025-11-21

openEuler 24.03包与网络服务管理 —语法详解与实战案例

一、软件包管理概述

1.1 软件包(Package)

在 Linux 系统中,软件包是将预编译程序、配置文件、依赖关系以及元数据整合在一起的集合体,便于实现统一化的安装、升级、卸载和系统化管理。

CentOS Stream 9 主要采用 RPM 包格式(以 .rpm 结尾),并通过高级工具 DNF 进行依赖解析和自动化安装。该工具已取代早期的 YUM,成为默认推荐方式。

RPM 包命名遵循特定规范:

name-version-release.architecture.rpm
示例:httpd-2.4.53-1.el9.x86_64.rpm
  - name: httpd
  - version: 2.4.53
  - release: 1.el9
  - arch: x86_64

1.2 软件包安装方式

安装方式 说明 常用工具
本地 RPM 包安装 手动下载 .rpm 文件并进行本地安装
rpm
在线仓库安装 从官方或第三方软件源自动下载,并由系统自动解决依赖问题
dnf

/
yum
源码编译安装 获取源代码后自行编译安装,灵活性高但需手动处理依赖
make install

?? 生产环境中强烈建议使用

dnf
方式进行安装,避免因手动干预导致依赖缺失或版本冲突!

二、软件包管理工具详解

2.3 DNF(Dandified YUM)—— CentOS Stream 9 默认包管理器

功能说明:作为新一代高级包管理工具,DNF 具备自动依赖解析能力,支持模块化软件流(module streams),且整体性能优于旧版 YUM。

? 常用命令一览:

命令 用途说明
dnf install package
安装指定软件包
dnf remove package
卸载已安装的软件包
dnf update
更新系统中所有可升级的软件包
dnf search keyword
根据关键词搜索可用软件包
dnf info package
查看某软件包的详细信息
dnf list installed
列出当前系统中所有已安装的软件包
dnf list available
显示所有可安装的软件包列表
dnf clean all
清理本地缓存中的元数据与下载包
dnf repolist
列出当前启用的软件仓库
dnf module list
查看支持模块化的软件(如 php、nginx 等)
dnf module enable name
启用某一特定版本的模块流

? 实战案例:常规软件包操作(安装、查询、卸载)

# 安装 Web 服务 httpd
sudo dnf install -y httpd

# 搜索包含 "ftp" 关键词的软件包
dnf search ftp

# 查看 httpd 的详细信息
dnf info httpad

# 列出已安装的与 httpd 相关的包
dnf list installed | grep httpd

# 卸载 httpd 及其相关组件
sudo dnf remove -y httpd

? 实战案例:通过模块机制安装指定版本 PHP

# 查看 PHP 模块的所有可用版本
dnf module list php

# 启用 PHP 8.0 版本模块
sudo dnf module enable php:8.0 -y

# 安装 PHP 核心组件
sudo dnf install -y php php-cli php-fpm

# 验证安装后的 PHP 版本
php -v

? 实战案例:清理缓存并重建元数据缓存

sudo dnf clean all      # 删除所有下载的 rpm 包及临时元数据
sudo dnf makecache      # 重新下载仓库元数据并生成本地缓存

? 实战案例:查看当前启用的软件源列表

dnf repolist
# 输出示例:appstream, baseos, epel, extras 等

2.1 RPM(Red Hat Package Manager)

功能说明:RPM 是底层包管理工具,直接对 .rpm 文件进行操作,但不具备自动解决依赖的能力。

? 常见命令对照表:

命令 功能描述
rpm -ivh package.rpm
安装一个本地 RPM 软件包
rpm -e package_name
卸载已安装的软件包
rpm -q package_name
检查某个软件包是否已安装
rpm -qa
列出系统中所有已安装的 RPM 包
rpm -qi package_name
显示指定软件包的详细属性信息
rpm -ql package_name
列出该软件包所安装的所有文件路径
rpm -qf /path/to/file
反向查询某个文件归属于哪个 RPM 包

? 案例演示:安装本地 RPM 包(需自行处理依赖)

# 下载示例 RPM 包
wget https://example.com/packages/example.rpm

# 执行安装(-i 表示安装,-v 显示过程,-h 显示进度条)
sudo rpm -ivh example.rpm

# 若出现依赖错误提示,则必须手动安装所需依赖包
# ? 注意:不推荐在生产环境使用此方法

? 案例演示:查询 httpd 软件包的安装信息

rpm -qi httpd
# 输出内容包括:Name, Version, Release, Install Date, Size, License 等字段

rpm -ql httpd | head -5
# 显示前五个由 httpd 安装的文件路径,例如:
# /etc/httpd
# /usr/sbin/httpd
# /var/www/html

? 案例演示:确定某个文件属于哪个软件包

rpm -qf /usr/bin/ls
# 输出结果示例:coreutils-8.32-31.el9.x86_64

2.2 YUM(Yellowdog Updater, Modified)—— 已被 DNF 取代

在 CentOS Stream 9 中,

yum
实际上是
dnf
的符号链接。因此建议用户直接调用 DNF 命令以获得最新功能支持。

可通过以下命令验证其指向关系:

ls -l $(which yum)
# 输出示例:
# /usr/bin/yum -> /etc/alternatives/yum -> /usr/bin/dnf-3

三、网络服务管理基础

3.1 网卡配置与状态查看

传统命令

ifconfig
已逐渐被淘汰,官方推荐使用更现代的替代工具
ip

值得注意的是,CentOS Stream 9 默认不再预装

net-tools
(其中包含 ifconfig 命令),建议管理员掌握新的网络管理方式以确保运维效率。

3.1 网络接口管理命令

安装 ifconfig 工具(如未预装):

sudo dnf install -y net-tools

尽管 ifconfig 仍可使用,但推荐使用更现代的 ip 命令进行网络配置。

ip

常用网络操作命令一览:

功能 命令
查看 IP 地址
ip addr show


ip a
查看路由信息
ip route show


ip r
启用指定网卡
sudo ip link set eth0 up
禁用指定网卡
sudo ip link set eth0 down
临时设置 IP 地址
sudo ip addr add 192.168.1.100/24 dev eth0

实际应用示例:

  • 查看当前网络接口状态:
    ip a
    # 或等价写法
    ip addr show
    # 示例输出:
    # 2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500...
    #     inet 192.168.1.10/24 brd 192.168.1.255 scope global dynamic ens192
  • 启用或禁用网卡(需 root 权限):
    sudo ip link set ens192 down   # 禁用网卡
    sudo ip link set ens192 up     # 启用网卡
  • 临时配置 IP 地址(重启后失效):
    sudo ip addr add 192.168.1.100/24 dev ens192
    sudo ip route add default via 192.168.1.1

注意:若需永久生效,请编辑网络配置文件:

/etc/NetworkManager/system-connections/

或使用图形化/交互式工具:

nmcli

3.2 使用 ping 测试网络连通性

ping

功能:检测与目标主机之间的网络是否通畅。

语法格式:

ping [选项] 目标IP或域名

常用参数说明:

选项 说明
-c N
发送指定数量的数据包后自动停止
-i N
设定发送间隔时间(单位:秒,默认为1秒)
-W N
设置响应超时等待时间
-q
静默模式,仅显示最终统计结果

使用案例:

  • 测试访问 Google 的连通性:
    ping -c 4 google.com
    # 输出示例:4 packets transmitted, 4 received, 0% packet loss
  • 快速探测某 IP 是否可达(3秒超时):
    ping -c 1 -W 3 8.8.8.8
  • 在脚本中进行静默检测:
    if ping -c 1 -W 2 8.8.8.8 > /dev/null 2>&1; then
    echo "? 网络正常"
    else
    echo "? 网络故障"
    fi

3.3 查看系统网络连接状态

lsof

lsof:用于列出当前系统中被进程打开的文件和网络连接。

  • 查看监听在 22 端口的进程:
    sudo lsof -i :22
    # 输出示例:sshd  1234  root  3u  IPv4 0x... TCP *:ssh (LISTEN)
  • 查看所有 TCP 类型的网络连接:
    sudo lsof -i TCP
netstat

传统工具 netstat 已逐渐被弃用。如需使用,可通过以下命令安装:

sudo dnf install -y net-tools
  • 查看当前监听端口:
    netstat -tuln
    # 参数含义:-t(TCP), -u(UDP), -l(监听中), -n(以数字形式显示地址和端口)
ss

ss(Socket Statistics) 是推荐替代 netstat 的高效工具。

命令 说明
ss -tuln
查看正在监听的 TCP 和 UDP 端口
ss -tulnp
显示关联的进程名和 PID
ss -o state established
查看已建立的连接状态

实用示例:

  • 查看所有监听端口及其对应服务进程:
    sudo ss -tulnp
    # 输出示例:
    # tcp  0  0 0.0.0.0:22  0.0.0.0:*  LISTEN  1234/sshd
    # tcp  0  0 0.0.0.0:80  0.0.0.0:*  LISTEN  4567/httpd
  • 筛选并查看 HTTP 相关的活跃连接:
    sudo ss -t state established '( dport = :80 or sport = :80 )'

四、综合案例:FTP 服务器的部署与配置

案例目标:

安装 vsftpd(Very Secure FTP Daemon),支持匿名访问与本地用户登录,完成防火墙规则配置,实现安全可靠的文件传输服务。

ip

详细配置脚本(含注释说明):

#!/bin/bash
# 文件名:install_vsftpd.sh
# 功能:自动化安装并配置 vsftpd FTP 服务

echo "???? 开始安装和配置 vsftpd..."
echo "=================================="

# === 1. 安装 vsftpd 软件包 ===
echo "???? 正在安装 vsftpd..."
sudo dnf install -y vsftpd
sudo systemctl enable vsftpd --now
echo "? vsftpd 安装并启动完成"

# === 2. 备份原始配置文件 ===
# === 3. 配置 vsftpd ===
echo "??  正在配置 vsftpd..."

# 备份原始配置文件
echo "???? 备份原始配置文件..."
sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

# 生成新的 vsftpd 主配置文件(覆盖方式)
cat << 'EOF' | sudo tee /etc/vsftpd/vsftpd.conf > /dev/null
# 基础运行参数
listen=YES                  # 启用独立监听模式
listen_ipv6=NO              # 关闭 IPv6 支持(可根据实际需求开启)
anonymous_enable=YES        # 开启匿名用户访问权限
local_enable=YES            # 允许系统本地账户登录
write_enable=YES            # 启用文件写入功能(上传、删除等)
local_umask=022             # 设置本地用户创建文件的默认掩码
dirmessage_enable=YES       # 启用目录消息提示功能
xferlog_enable=YES          # 开启传输日志记录
connect_from_port_20=YES    # 使用 FTP 数据连接端口 20
xferlog_std_format=YES      # 采用标准格式记录日志内容
# 匿名用户权限控制
anon_upload_enable=YES      # 允许匿名用户上传文件(需配合目录权限)
anon_mkdir_write_enable=YES # 允许匿名用户创建新目录
anon_other_write_enable=YES # 允许匿名执行其他写操作(如重命名、删除)
# 安全与访问限制
chroot_local_user=YES       # 将本地用户锁定在其主目录内
allow_writeable_chroot=YES  # 允许被 chroot 的根目录具备可写权限(适用于 vsftpd 3.0 及以上版本)
pam_service_name=vsftpd     # 指定 PAM 认证所使用的服务名称
userlist_enable=YES         # 启用用户列表机制
tcp_wrappers=YES            # 支持 tcp_wrappers 访问控制
# 日志输出设置
xferlog_file=/var/log/vsftpd.log    # 指定传输日志路径
dual_log_enable=YES                 # 同时启用 syslog 记录
EOF

echo "? 配置文件已更新"

# === 4. 创建匿名上传目录并设置权限 ===
echo "???? 创建匿名上传目录..."
sudo mkdir -p /var/ftp/upload
sudo chmod 777 /var/ftp/upload
sudo chown ftp:ftp /var/ftp/upload
echo "? 匿名上传目录 /var/ftp/upload 已创建"

name-version-release.architecture.rpm
示例:httpd-2.4.53-1.el9.x86_64.rpm
  - name: httpd
  - version: 2.4.53
  - release: 1.el9
  - arch: x86_64
# === 5. 创建测试用户 === echo "???? 创建测试用户 ftpuser..." echo "设置密码为 'password123'" sudo useradd -m ftpuser echo "password123" | sudo passwd --stdin ftpuser 2>/dev/null || \ echo "ftpuser:password123" | sudo chpasswd # === 6. 防火墙配置 === echo "???? 配置防火墙允许 FTP..." sudo firewall-cmd --permanent --add-service=ftp sudo firewall-cmd --reload echo "? 防火墙配置完成" # === 7. 重启服务 === echo "???? 重启 vsftpd 服务..." sudo systemctl restart vsftpd # === 8. 检查服务状态 === echo "???? 验证服务状态..." sudo systemctl status vsftpd --no-pager | grep "active (running)" if [ $? -eq 0 ]; then echo "? vsftpd 服务运行正常" else echo "? vsftpd 服务启动失败,请检查日志:journalctl -u vsftpd" exit 1 fi # === 9. 本地连接测试 === echo "???? 本地测试连接..." if nc -zv localhost 21 2>/dev/null; then echo "? FTP 端口 21 监听正常" else echo "? FTP 端口 21 未监听" fi echo echo "???? vsftpd 安装配置完成!"
五、综合案例:Samba服务器的安装和配置

???? 案例概述  
目标:  
部署 Samba 服务,设置共享路径,实现 Windows 与 Linux 客户端通过 SMB 协议访问资源,支持无需密码及认证登录两种模式。

anonymous_enable=NO
禁用匿名访问(生产环境安全建议):
ssl_enable=YES
启用 SSL/TLS 加密通信配置说明:
fail2ban
防范暴力破解攻击,限制用户操作权限,提升系统安全性。 ???? 使用方法: chmod +x install_samba.sh sudo ./install_samba.sh ???? 安全建议(适用于生产环境): - 关闭匿名访问功能,避免数据泄露风险 - 启用 SSL/TLS 加密传输,保障通信安全 - 配置访问控制策略,防止未授权访问 - 限制账户权限范围,遵循最小权限原则 #!/bin/bash # 文件名:install_samba.sh # 功能描述:自动化安装并配置 Samba 服务 echo "???? 开始安装和配置 Samba..." echo "==================================" # === 1. 安装 Samba 软件包 === echo "???? 正在安装 Samba..." sudo dnf install -y samba samba-client samba-common sudo systemctl enable smb nmb --now echo "? Samba 已成功安装并启动" # === 2. 备份原始配置文件 === echo "???? 正在备份原有配置..." sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak echo "? 配置文件已备份至 .bak 文件" # === 3. 创建共享目录结构 === echo "???? 建立共享目录..." sudo mkdir -p /srv/samba/public sudo mkdir -p /srv/samba/secure sudo chmod 777 /srv/samba/public sudo chmod 755 /srv/samba/secure echo "? 共享目录创建完毕,权限已设定" # === 4. 添加 Samba 认证用户 === echo "???? 创建用户 alice..." sudo useradd -m alice echo "password123" | sudo passwd --stdin alice 2>/dev/null || \ echo "alice:password123" | sudo chpasswd # 设置该用户的 Samba 密码(自动输入两次确认) (echo "password123"; echo "password123") | sudo smbpasswd -a alice echo "? 用户 alice 的 Samba 账户已建立" # === 5. 写入新的 smb.conf 配置 === echo "?? 正在更新 Samba 主配置文件..." cat << 'EOF' | sudo tee /etc/samba/smb.conf > /dev/null [global] workgroup = WORKGROUP server string = Samba Server %v netbios name = centos-samba security = user map to guest = bad user dns proxy = no log file = /var/log/samba/%m.log max log size = 1000 guest account = nobody # 匿名可访问共享区(允许读写) [Public] path = /srv/samba/public browsable = yes writable = yes guest ok = yes read only = no create mask = 0777 directory mask = 0777 # 受保护共享区域(需身份验证) [Secure] path = /srv/samba/secure browsable = yes writable = yes guest ok = no valid users = alice create mask = 0644 directory mask = 0755 EOF echo "? Samba 配置文件已写入并保存" ???? 访问方式: - 匿名访问:ftp://your-server-ip/ (用户名:anonymous,密码任意) - 本地用户访问:ftp://your-server-ip/ (用户名:ftpuser,密码:password123) - 匿名上传路径:/var/ftp/upload ???? 注意事项:生产环境中请务必强化安全措施(例如关闭匿名登录、启用 SSL/TLS 加密)

六、综合案例:Linux防火墙配置(firewalld)

???? 案例概述

目标:
配置 firewalld 防火墙,达成以下目的:
- 允许 SSH、HTTP、HTTPS 服务通行
- 开放自定义端口(例如 8080)
- 对特定 IP 地址实施访问控制
- 使用富规则(Rich Rules)进行精细化管理
- 所有配置永久生效,重启后仍有效

???? 案例详解(带详细注释)

#!/bin/bash
# 文件名:configure_firewalld.sh
# 功能:配置 CentOS Stream 9 firewalld 防火墙
echo "???? 开始配置 firewalld 防火墙..."
echo "=================================="

# === 1. 检查 firewalld 状态 ===
echo "???? 检查 firewalld 状态..."
if ! sudo systemctl is-active firewalld > /dev/null; then
    echo "??  firewalld 未运行,正在启动..."
    sudo systemctl start firewalld
    sudo systemctl enable firewalld
fi

# === 2. 查看默认区域 ===
DEFAULT_ZONE=$(sudo firewall-cmd --get-default-zone)
echo "???? 默认区域:$DEFAULT_ZONE"

# === 3. 添加常用服务 ===
echo "? 允许 SSH、HTTP、HTTPS..."
sudo firewall-cmd --permanent --add-service=ssh
    

# === 7. 配置防火墙 ===

设置防火墙以允许 Samba 服务通过:

sudo firewall-cmd --permanent --add-service=samba
sudo firewall-cmd --reload
echo "? 防火墙配置完成"
    

# === 6. 配置 SELinux(如启用)===

若系统启用了 SELinux,需调整相关安全上下文和布尔值,确保共享目录可正常访问:

echo "???? 配置 SELinux 上下文..."
sudo setsebool -P samba_export_all_rw on 2>/dev/null && echo "? SELinux bool 设置完成"
sudo semanage fcontext -a -t samba_share_t "/srv/samba(/.*)?" 2>/dev/null && \
sudo restorecon -R /srv/samba && echo "? SELinux 上下文设置完成"
    

# === 8. 重启服务 ===

重新启动 Samba 相关服务以应用所有更改:

echo "???? 重启 Samba 服务..."
sudo systemctl restart smb nmb
    

# === 9. 验证服务状态 ===

检查 Samba 主服务是否处于运行状态:

echo "???? 验证服务状态..."
sudo systemctl status smb --no-pager | grep "active (running)"
if [ $? -eq 0 ]; then
    echo "? Samba 服务运行正常"
else
    echo "? Samba 服务启动失败,请检查日志:journalctl -u smb"
    exit 1
fi
    

# === 10. 测试本地连接 ===

使用本地客户端测试共享列表是否可以成功获取:

echo "???? 本地测试 Samba 共享..."
smbclient -L localhost -U%
if [ $? -eq 0 ]; then
    echo "? 本地共享列表获取成功"
else
    echo "? 本地连接失败"
fi
    

输出完成提示信息及访问方式说明:

echo
echo "???? Samba 安装配置完成!"
echo "???? 访问方式:"
echo "   - Windows: \\\\your-server-ip\\Public (匿名访问)"
echo "   - Windows: \\\\your-server-ip\\Secure (用户:alice,密码:password123)"
echo "   - Linux: smbclient //your-server-ip/Public -U%"
echo "???? 注意:生产环境请使用强密码,限制访问 IP"
echo "=================================="
    

???? 使用方法:

chmod +x install_samba.sh
sudo ./install_samba.sh
    

???? 说明:

smbclient -L localhost -U%

:匿名列出共享

valid users = alice

:仅允许 alice 访问 Secure 共享

SELinux 配置确保共享可访问

# === 4. 开放自定义端口 ===
echo "? 开放 TCP 8080 端口..."
sudo firewall-cmd --permanent --add-port=8080/tcp

# === 5. 限制特定 IP 访问(示例:仅允许 192.168.1.0/24 访问 3306)===
echo "? 限制 MySQL 端口 3306 仅允许内网访问..."
sudo firewall-cmd --permanent --remove-service=mysql 2>/dev/null
sudo firewall-cmd --permanent --add-rich-rule='
rule family="ipv4"
source address="192.168.1.0/24"
port protocol="tcp" port="3306" accept
'

# === 6. 拒绝特定 IP ===
echo "? 拒绝 IP 10.0.0.100 访问所有服务..."
sudo firewall-cmd --permanent --add-rich-rule='
rule family="ipv4"
source address="10.0.0.100"
reject
'

# === 7. 配置端口转发(示例:8080 → 80)===
echo "? 配置端口转发:外部访问 8080 转发到本地 80..."
sudo firewall-cmd --permanent --add-rich-rule='
rule family="ipv4"
forward-port port="8080" protocol="tcp" to-port="80"
'

# === 8. 重新加载防火墙 ===
echo "???? 重新加载防火墙配置..."
sudo firewall-cmd --reload

# === 9. 验证配置 ===
echo "???? 验证当前配置..."
echo "→ 已启用服务:"
sudo firewall-cmd --list-services
echo "→ 已开放端口:"
sudo firewall-cmd --list-ports
echo "→ 富规则:"
sudo firewall-cmd --list-rich-rules

# === 10. 保存运行时配置(冗余,--permanent 已保存)===
echo "???? 保存运行时配置到永久配置(冗余操作)..."
sudo firewall-cmd --runtime-to-permanent

echo
echo "???? firewalld 配置完成!"
echo "???? 常用命令:"
echo "   - 查看状态:sudo firewall-cmd --state"
echo "   - 查看区域:sudo firewall-cmd --get-active-zones"
echo "   - 查看所有配置:sudo firewall-cmd --list-all"
echo "   - 删除规则:sudo firewall-cmd --permanent --remove-rich-rule='rule...'"
echo "???? 注意:修改后务必执行 --reload 使配置生效"
echo "=================================="

???? 使用方法:
chmod +x configure_firewalld.sh
sudo ./configure_firewalld.sh

? 常用 firewalld 命令速查:
# 查看所有配置
sudo firewall-cmd --list-all
# 查看开放端口
sudo firewall-cmd --list-ports
# 临时开放端口(重启失效)
sudo firewall-cmd --add-port=8081/tcp
# 永久开放
sudo firewall-cmd --permanent --add-port=8081/tcp
sudo firewall-cmd --reload
# 删除规则
sudo firewall-cmd --permanent --remove-port=8081/tcp
sudo firewall-cmd --reload

? 学习建议与最佳实践
优先使用 DNF  
:避免手动安装 RPM 包,依赖问题由系统自动处理更安全。  
配置前备份  
:在对配置文件进行任何更改之前,应先做好备份工作(
.bak
)。 防火墙最小权限 :遵循最小权限原则,只开放必要的服务和端口,提升系统安全性。

测试连接:可使用

nc
telnet
curl
等工具来验证端口的连通性,确保服务正常对外提供访问。

日志监控:通过

journalctl -u servicename
查看相关服务的日志信息,及时发现并排查异常行为或配置错误。

SELinux 配置建议:不要直接禁用 SELinux,应学会合理配置安全上下文和调整布尔值,以在保障系统安全的前提下支持服务运行。

setenforce 0

防火墙策略:仅开放服务所必需的端口,其余所有连接请求一律拒绝,遵循最小权限原则提升系统安全性。

服务管理:确保关键服务已设置为开机自启,保障系统重启后服务能自动恢复运行。

systemctl enable servicename

附录:命令速查表

功能 命令示例
安装软件包
sudo dnf install -y package
卸载软件包
sudo dnf remove -y package
更新系统
sudo dnf update -y
查看 IP 地址
ip a
测试网络连通性
ping -c 4 google.com
查看监听中的端口
sudo ss -tulnp
安装 vsftpd 服务
sudo dnf install -y vsftpd
安装 Samba 服务
sudo dnf install -y samba
开放防火墙指定端口
sudo firewall-cmd --permanent --add-port=8080/tcp
重载防火墙配置
sudo firewall-cmd --reload
查看当前防火墙规则
sudo firewall-cmd --list-all

本内容全面涵盖 CentOS Stream 9 中软件包管理与网络服务配置的核心知识点、语法细节、实用操作案例以及综合项目实践。所有命令均配有详细注释,适用于教学演示、自主学习或生产环境参考使用。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群