Centos7配置yum仓库(三种简单易学)

CentOS 运维避坑实战

CentOS7.9 安装 Python3.8.16 后 yum 报错,快速修复方案

提示:本文将学习如何配置Centos系统的yum源 仅供学习参考

           如有问题或错误 感谢提示

目录

文章目录

一、yum的介绍

二、yum仓库的种类

1. 本地仓库

2. 网络仓库

3. 自定义仓库

三、yum配置文件

四、yum仓库搭建过程

1.本地yum仓库

编写yum仓库配置文件

挂载镜像

测试下载

2.网络仓库

FTP网络仓库

配置FTP服务器

HTTP网络仓库

配置HTTP服务器

云厂商网络仓库

更换阿里云yum仓库

3.自定义仓库 

总结



一、yum的介绍

Yum是什么?

Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

那么RPM又是什么?

在Linux下安装软件,一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序。
但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装.软件包和软件包管理器, 就好比 “App” 和 “应用商店” 这样的关系.

比如:Windows获取安装

Linux获取安装通过不同的包进行安装使用

 所以我们要学习配置好yum仓库(很重要)

二、yum仓库的种类

1. 本地仓库

  • 定义:本地仓库是存储在本地系统上的软件包集合,通常是通过挂载光盘、USB存储设备或本地目录来创建的。

  • 特点

    • 不需要网络连接,适合在离线环境中使用。

    • 可以直接访问存储在本地的.rpm文件。

    • 配置简单,只需指定本地目录路径即可。

2. 网络仓库

  • 定义:网络仓库是存储在远程服务器上的软件集合包,可以通过HTTP、HTTPS或FTP协议访问。

  • 特点

    • 可以通过网络动态获取最新的软件包。

    • 支持多种协议,安全性较高(如HTTPS)。

    • 可以配置多个网络仓库,方便获取不同来源的软件包。

3. 自定义仓库

  • 定义:自定义仓库是由用户自己创建和管理的仓库,可以包含自己编译的软件包或特定版本的软件包。

  • 特点

    • 可以完全控制仓库的内容。

    • 适合企业内部使用,可以确保软件包的安全性和一致性。


三、yum配置文件

在学习之前我们要学习yum配置文件中有什么参数

客户端文件配置内容:

[源名称] :自定义名称,具有唯一性

name:本软件源的描述字串

baseurl:指定YUM服务端的URL地址

enabled:是否启用此频道

gpgcheck:是否验证待安装的RPM包

gpgkey:用于RPM软件包验证的密钥文件

[root@localhost /]# vim     /etc/yum.repos.d/haha.repo  
[xixi]          #仓库的标识
name=xixi      #仓库描述信息,可以省略
baseurl=file:///mnt/AppStream   #指定仓库位置file://表示本地为服务端
enabled=1       #本文件启用,可以省略
gpgcheck=0       #不检测红帽签名信息    
  
[haha]           #仓库的标识,不能重复
name=xixi        #仓库描述信息,可以省略
baseurl=file:///mnt/BaseOS #指定仓库位置file://表示本地为服务端
enabled=1       #本文件启用,可以省略
gpgcheck=0         #不检测红帽签名信息  

其中有些内容可以选择不写 不写的话为默认值

四、yum仓库搭建过程

1.本地yum仓库

远程连接到虚拟机(使用什么软件都可以)我使用本地Powershell进行连接,接下来,上代码

 我们要记住这个路径/etc/yum.repos.d/ 这里存放的都是以.repo结尾的yum配置文件

[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo  CentOS-x86_64-kernel.repo
[root@localhost yum.repos.d]#

因为我们在装系统的时候,会自动编辑好这些,但是因为这里的配置都是Centos官方的yum仓库指向,我们连接比较麻烦,可以选择删除或者移到别的位置上,这里为了简单快捷直接删除

删除有风险,Linux中没有回收站这么一说 删除就是没有了 谨慎使用!!!

[root@localhost yum.repos.d]# rm -rf /etc/yum.repos.d/*
[root@localhost yum.repos.d]# ls
[root@localhost yum.repos.d]#

编写yum仓库配置文件

这里清除完仓库配置后,需要我们手动编写一份配置文件,根据前面配置信息编写即可

这里使用的是Centos7.9的镜像 挂载出来后是直接一个整体 并不是分开的Appstream和BaseOS

[root@localhost yum.repos.d]# vi yum.repo
[root@localhost yum.repos.d]# cat yum.repo
[xixi]
name=xixi
baseurl=file:///mnt/
enabled=1
gpgcheck=0

编写完成后 使用yum clean all 和yum repolist先清除缓存 然后查看已配置的源

挂载镜像

        这里发现有报错 提示Couldn’t open file 意思是打不开这个文件 是因为这个文件不存在 我们需要手动挂载(mount)一下镜像文件到/mnt目录下

[root@localhost yum.repos.d]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost yum.repos.d]# df -h /mnt/
文件系统        容量  已用  可用 已用% 挂载点
/dev/sr0        4.4G  4.4G     0  100% /mnt

镜像文件存储于/dev目录下 /dev/sr0cdrom都是镜像文件 一个是源文件 一个是链接 都可以挂载

这里看到使用挂载的是/dev/cdrom 然后使用df命令查看 发现实际挂载的是/dev/sr0文件

查看挂载后的目录 确保挂载成功

重新清除一下源缓存然后生成yum clean all; yum makecache 命令意思清除缓存并生成缓存

测试下载

这里就可以看到状态是有数据的存在 这里就将本地yum仓库配置完成了 可以下载vim进行测试

使用 yum install -y vim                 下载vim文本编辑器

rpm管理器可以查询下载的包 这里报错是因为vim软件包没有那么短 所以提示未安装

这里yum本地仓库所有都配置完成了

2.网络仓库

        网络仓库中包含了两种仓库  FTP网络仓库和HTTP网络仓库 两种都很方便 看个人喜欢哪种方式(我更喜欢HTTP仓库)

FTP网络仓库

 FTP文件传输协议 ,通过FTP协议,用户可以在FTP服务器中进行文件的上传或下载等操作

虽然现在通过HTTP协议下载的站点有很多,但是由于FTP协议可以很好地控制用户数量和宽带的分配,快速方便地上传、下载文件,因此FTP已成为网络中文件上传和下载的首选服务器,同时,它也是一个应用程序,用户可以通过它把自己的计算机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。

专门用于文件传输的服务FTP服务应运而生。

FTP大大简化了文件传输的复杂性,它能够使文件通过网络从一台主机传送到另外一台计 FTP 计

算机上却不受计算机和操作系统类型的限制。无论是PC、服务器、大型机,还是Linux、

Windows操作系统,只要双方都支持协议FTP,就可以方便、可靠地进行文件的传输。

配置FTP服务器

前面已经配置好本地yum仓库后 使用本地仓库进行下载ftp的安装包

yum -y install vsftpd

ftp默认存储位置在/var/ftp/目录下,可以自己进行更改存储位置,这里不做更改 直接选择默认

ftp默认允许匿名登录,可以根据自己所需要求进行更改

vim /etc/vsftpd/vsftpd.conf
 
anonymous_enable=YES            #开启匿名用户访问 默认已开启
local_enable=YES                #允许系统用户进行访问
write_enable=YES                #开放服务器的写权限(若要上传,必须开启)默认已开启
anon_umask=022                  #设置匿名用户所上传数据的权限掩码(反掩码)
anon_upload_enable=YES          #允许匿名用户上传文件。默认已注释,需取消注释
anon_mkdir_write_enable=YES     #允许匿名用户创建(上传)目录,默认已注释,需取消注释
anon_other_write_enable=YES     #允许删除、重命名、覆盖等操作,需添加

开启服务并设置开机自启 查看服务是否开启 端口是否开启(默认端口为21)

[root@localhost yum.repos.d]# systemctl start vsftpd;systemctl enable vsftpd --now
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
[root@localhost yum.repos.d]# systemctl status vsftpd
● vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled)
   Active: active (running) since 一 2025-06-23 16:02:50 CST; 7s ago
 Main PID: 3988 (vsftpd)
   CGroup: /system.slice/vsftpd.service
           └─3988 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

6月 23 16:02:50 localhost.localdomain systemd[1]: Starting Vsftpd ftp daemon...
6月 23 16:02:50 localhost.localdomain systemd[1]: Started Vsftpd ftp daemon.
[root@localhost yum.repos.d]# ss -untpl | grep 21
tcp    LISTEN     0      32     [::]:21                 [::]:*                   users:(("vsftpd",pid=3988,fd=4))
[root@localhost yum.repos.d]#

避免后期连接时出现错误,这里将防火墙和SELINUX临时关闭

[root@localhost yum.repos.d]# systemctl stop firewalld
[root@localhost yum.repos.d]# setenforce 0

编自己的仓库

在默认存储位置创建一个文件夹用来存储镜像文件,然后修改yum仓库配置文件中的URL地址

[root@localhost yum.repos.d]# mkdir /var/ftp/centos7
[root@localhost yum.repos.d]# umount /mnt/                #将原来挂载的取消
[root@localhost yum.repos.d]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 898M     0  898M    0% /dev
tmpfs                    910M     0  910M    0% /dev/shm
tmpfs                    910M  9.5M  901M    2% /run
tmpfs                    910M     0  910M    0% /sys/fs/cgroup
/dev/mapper/centos-root   27G  1.4G   26G    6% /
/dev/sda1               1014M  151M  864M   15% /boot
tmpfs                    182M     0  182M    0% /run/user/0
[root@localhost yum.repos.d]# mount /dev/cdrom /var/ftp/centos7/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost yum.repos.d]# ls /var/ftp/centos7/
CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL
[root@localhost yum.repos.d]# vim yum.repo
[root@localhost yum.repos.d]# cat yum.repo
[xixi]
name=xixi
baseurl=ftp://10.10.10.10/centos7
enabled=1
gpgcheck=0

清除缓存并重新生成缓存

下载httpd服务进行测试 下面http仓库会使用到

这里ftp仓库就配置完成了

HTTP网络仓库

Web服务器端是,基于HTTP(Hypertext Transfer Protocol)协议,将网页对应文件传输给客户端的服务器端。

Hypertext(超文本)是可以根据客户端请求而跳转的结构化信息。

HTTP协议是以超文本传输为目的而设计的应用层协议,同样基于TCP/IP实现。

常用在网站搭建过程中,但是也可以用于数据传输使用

我们可以自己做一个http服务器的yum仓库用于其他本地服务器的使用,也可以使用各大云厂商的现有仓库来使用,但是需要联网。

CentOS系统的yum源
#阿里云
https://mirrors.aliyun.com/centos/$releasever/ 
#腾讯云
https://mirrors.cloud.tencent.com/centos/$releasever/ 
#华为云
https://repo.huaweicloud.com/centos/$releasever/ 
#清华大学
https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/
 
EPEL的yum源
#阿里云
https://mirrors.aliyun.com/epel/$releasever/x86_64
#腾讯云
https://mirrors.cloud.tencent.com/epel/$releasever/x86_64
#华为云
https://mirrors.huaweicloud.com/epel/$releasever/x86_64
#清华大学
https://mirrors.tuna.tsinghua.edu.cn/epel/$releasever/x86_64
配置HTTP服务器

前面为了测试ftp服务器进行下载了Apache的httpd服务,继续使用http服务来进行设置网络仓库

首先下载好http服务后需要开启服务,为了避免后面使用的时候出现问题,我们可以将防火墙和SELINUX关闭

[root@localhost ~]# rpm -q httpd                                 #确认是否安装httpd
httpd-2.4.6-95.el7.centos.x86_64
[root@localhost ~]# systemctl stop firewalld;setenforce 0        #关闭防火墙与SELINUX
[root@localhost ~]# systemctl start httpd;systemctl enable httpd #开启http服务并设置开机自启

因为http服务是Web服务的一种,所以我们可以进行测试访问一下,浏览器打开访问IP

这里就是HTTP服务的测试页,该测试页存储在/usr/share/httpd/noindex/index.html目录下,版本不同或者源不同路径都不一样,可以使用find命令来查找一下具体在哪

或者我们可以自己写一个主页文件

[root@localhost ~]# vim /var/www/html/test.html
[root@localhost ~]# cat /var/www/html/test.html
Hello world!!
[root@localhost ~]# curl 10.10.10.10/test.html
Hello world!!

使用浏览器进行访问

这里就可以理解大概使用方法,我们可以在/var/www/html目录下创建一个文件夹,用来存放镜像文件相关的东西,通过http服务进行传输使用

[root@localhost ~]# mkdir /var/www/html/centos
[root@localhost ~]# ls /var/www/html/centos/
[root@localhost ~]# df -h /dev/cdrom
文件系统        容量  已用  可用 已用% 挂载点
/dev/sr0        4.4G  4.4G     0  100% /var/ftp/centos7
[root@localhost ~]# umount /var/ftp/centos7/
[root@localhost ~]# mount /dev/cdrom /var/www/html/centos/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# ls /var/www/html/centos/
CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL
[root@localhost ~]#

我们可以使用浏览器访问一下这个目录http://IP/centos

这里访问到之后就可以去修改配置文件内容

[root@localhost ~]# vim /etc/yum.repos.d/yum.repo
[root@localhost ~]# cat /etc/yum.repos.d/yum.repo
[xixi]
name=xixi
baseurl=http://10.10.10.10/centos
enabled=1
gpgcheck=0
[root@localhost ~]# yum clean all;yum makecache
已加载插件:fastestmirror
正在清理软件源: xixi
Cleaning up list of fastest mirrors
已加载插件:fastestmirror
Determining fastest mirrors
xixi                                                                                             | 3.6 kB  00:00:00
(1/4): xixi/group_gz                                                                             | 153 kB  00:00:00
(2/4): xixi/filelists_db                                                                         | 3.3 MB  00:00:00
(3/4): xixi/primary_db                                                                           | 3.3 MB  00:00:00
(4/4): xixi/other_db                                                                             | 1.3 MB  00:00:00
元数据缓存已建立
[root@localhost ~]# yum repolist
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
源标识                                                    源名称                                                   状态
xixi                                                      xixi                                                     4,070
repolist: 4,070
[root@localhost ~]#

这里就可以进行使用HTTP服务的网络仓库了。

我们进行测试一下

[root@localhost ~]# yum -y install wget            #网络下载工具
[root@localhost ~]# rpm -q wget
wget-1.14-18.el7_6.1.x86_64
[root@localhost ~]# yum -y install tree            #以树状图显示
[root@localhost ~]# rpm -q tree
tree-1.6.0-10.el7.x86_64
[root@localhost ~]# tree /root
/root
└── anaconda-ks.cfg

0 directories, 1 file

云厂商网络仓库

在网络上有很多云厂商,阿里云,腾讯云等等,他们都会有一个公用的镜像仓库来 提供使用

配置也很简单,只需要主机可以访问网络,直接修改yum配置文件即可

更换阿里云yum仓库
[root@localhost ~]# ping www.baidu.com -c 4
PING www.baidu.com (110.242.69.21) 56(84) bytes of data.
64 bytes from 110.242.69.21 (110.242.69.21): icmp_seq=1 ttl=128 time=26.7 ms
64 bytes from 110.242.69.21 (110.242.69.21): icmp_seq=2 ttl=128 time=34.0 ms
64 bytes from 110.242.69.21 (110.242.69.21): icmp_seq=3 ttl=128 time=31.3 ms
64 bytes from 110.242.69.21 (110.242.69.21): icmp_seq=4 ttl=128 time=33.2 ms

--- www.baidu.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 26.796/31.371/34.053/2.823 ms

使用wget工具直接下载好配置文件(curl也可以)

[root@localhost ~]# wget -O /etc/yum.repos.d/Centos.repo https://mirrors.aliyun.com/repo/Centos-7.repo
--2025-06-26 10:06:32--  https://mirrors.aliyun.com/repo/Centos-7.repo
正在解析主机 mirrors.aliyun.com (mirrors.aliyun.com)... 116.148.190.241, 119.36.166.74, 119.36.166.75, ...
正在连接 mirrors.aliyun.com (mirrors.aliyun.com)|116.148.190.241|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:2523 (2.5K) [application/octet-stream]
正在保存至: “/etc/yum.repos.d/Centos.repo”

100%[==============================================================================>] 2,523       --.-K/s 用时 0s

2025-06-26 10:06:32 (5.86 MB/s) - 已保存 “/etc/yum.repos.d/Centos.repo” [2523/2523])

[root@localhost ~]# mv /etc/yum.repos.d/yum.repo /etc/yum.repos.d/yum.bak    #将原来的源备份
[root@localhost ~]# ls /etc/yum.repos.d/
Centos.repo  yum.bak

###如果没有下载wget可以使用curl
[root@localhost ~]# curl -o centos.repo https://mirrors.aliyun.com/repo/Centos-7.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2523  100  2523    0     0   7183      0 --:--:-- --:--:-- --:--:--  7208
[root@localhost ~]# ls
anaconda-ks.cfg  centos.repo

 清除缓存并重新生成缓存

[root@localhost ~]# yum clean all;yum makecache
[root@localhost ~]# yum repolist
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
源标识                                       源名称                                                               状态
base/7/x86_64                                CentOS-7 - Base - mirrors.aliyun.com                                 10,072
extras/7/x86_64                              CentOS-7 - Extras - mirrors.aliyun.com                                  526
updates/7/x86_64                             CentOS-7 - Updates - mirrors.aliyun.com                               6,173
repolist: 16,771
[root@localhost ~]#

 配置完成后可以下载测试一下,

[root@localhost ~]# rpm -q createrepo
createrepo-0.9.9-28.el7.noarch
[root@localhost ~]# yum -y install createrepo

3.自定义仓库 

在工作中,往往环境都是在内网中,无法获取到网络上面的包,通常会使用mount命令来进行yum下载,这种方式虽然便捷,但是容易使磁盘压力过大,对运维人员十分不友好,我们可以自己来制作一个仓库,将常用到的rpm包放入到里面,然后进行使用

自定义Yum仓库(将自己的软件包文件构建成仓库)
    1.完整yum仓库的组成
        软件包和仓库清单
    2.操作步骤
        1.生成仓库清单
            createrepo + 软件包路径
        2.编写/etc/yum.repos.d/配置文件,配置yum
        3.更新自定义yum仓库内容:刷新仓库增加或减少的包
            1.更新仓库清单
                createrepo --update 文件路径
            2.更新yum缓存
                yum makecache

操作如下:

在挂载的镜像中有许多rpm包,这里我挂载的位置是/var/www/html/centos/下,在该目录中,有一个子目录Packages中存储的都是rpm包,我们进行测试可以使用一下,或者你有自己找的rpm包,也可以

[root@localhost ~]# mkdir /opt/repo
[root@localhost ~]# cp /var/www/html/centos/Packages/net-tools-2.0-0.25.20131004git.el7.x86_64.rpm /opt/repo/
[root@localhost ~]# ls /opt/repo/
net-tools-2.0-0.25.20131004git.el7.x86_64.rpm

存放好之后我们使用createrepo命令生成仓库清单

[root@localhost ~]# createrepo /opt/repo/
Spawning worker 0 with 1 pkgs
Spawning worker 1 with 0 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@localhost ~]# ls /opt/repo/
net-tools-2.0-0.25.20131004git.el7.x86_64.rpm  repodata

修改yum配置文件,将前面配置的都不使用,写一份新的配置文件然后进行测试

[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mv Centos.repo Centos.repo.bak 
[root@localhost yum.repos.d]# mv yum.repo yum.bak
[root@localhost yum.repos.d]# ls
Centos.repo.bak  yum.bak
[root@localhost yum.repos.d]# vim test.repo
[root@localhost yum.repos.d]# cat test.repo
[test]
name=test
baseurl=file:///opt/repo
enable=1
gpgcheck=0
[root@localhost yum.repos.d]# yum clean all;yum makecache
已加载插件:fastestmirror
正在清理软件源: test
Cleaning up list of fastest mirrors
Other repos take up 536 M of disk space (use --verbose for details)
已加载插件:fastestmirror
Determining fastest mirrors
test                                                                                             | 2.9 kB  00:00:00
(1/3): test/filelists_db                                                                         | 1.4 kB  00:00:00
(2/3): test/other_db                                                                             | 1.5 kB  00:00:00
(3/3): test/primary_db                                                                           | 2.3 kB  00:00:00
元数据缓存已建立
[root@localhost yum.repos.d]# yum -y install net-tools
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 net-tools.x86_64.0.2.0-0.25.20131004git.el7 将被 安装
--> 解决依赖关系完成
......

已安装:
  net-tools.x86_64 0:2.0-0.25.20131004git.el7

完毕!
[root@localhost yum.repos.d]# rpm -q net-tools
net-tools-2.0-0.25.20131004git.el7.x86_64

这里自定义仓库就配置完成了


总结

通过本篇文章,你可以学习到三种不同的方式来配置自己的yum仓库,从而提高软件包的下载速度和稳定性,您可以选择最适合自己需求的镜像源进行更换。因为镜像使用的是Centos7.9-2009的版本,所以配置文件中只有一种,对于不同版本的镜像是不一样的。请根据自己的具体情况来进行更改,流程都是一样的。

CentOS 运维避坑实战

CentOS7.9 安装 Python3.8.16 后 yum 报错,快速修复方案

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值