我是在自己windows电脑上下载的虚拟机测试的,原理就是,自己电脑和服务器的系统版本一致的话就给复制粘贴一份过去。应该没什么毛病吧
银河麒麟V10系统离线安装FTP和SFTP
系统环境确认
系统: Kylin Linux Advanced Server V10 (Halberd)
架构: x86_64
我下载的包在这里
安装
1. 传输软件包
将下载的所有.rpm文件通过U盘或内网共享复制到目标离线系统的相同目录
/root/下载/offline-packages/
2.安装所有软件包
# 进入软件包目录
cd /root/下载/offline-packages
#安装所有RPM包
sudo rpm -Uvh *.rpm
配置和启动服务
1. 配置FTP服务 (vsftpd)
修复配置文件冲突(关键步骤)
# 备份原配置
sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.backup
# 编辑配置文件
sudo vi /etc/vsftpd/vsftpd.conf
vsftpd.conf:
确保以下配置正确:
# 基本配置
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=no
userlist_file=/etc/vsftpd/user_list
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
anon_root=/var/ftp
anon_world_readable_only=NO
# 监听配置(二选一,避免冲突)
listen=YES # IPv4监听
listen_ipv6=NO # 关闭IPv6监听
# 或者使用IPv6:
# listen=NO
# listen_ipv6=YES
# 安全配置
pam_service_name=vsftpd
userlist_enable=YES
User_list
确保配置中有:
anonymous
ftp
没有则添加
2.配置匿名用户目录和权限
# 创建匿名用户上传目录
sudo mkdir -p /var/ftp/pub/upload
# 设置正确的权限
sudo chown ftp:ftp /var/ftp/pub/upload
sudo chmod 755 /var/ftp/pub/upload
# 匿名用户写权限:
sudo chmod 777 /var/ftp/pub/upload
3.从FTP禁止列表中移除root用户
# 从ftpusers文件中移除root
sudo sed -i '/^root$/d' /etc/vsftpd/ftpusers
# 验证是否已移除
sudo cat /etc/vsftpd/ftpusers | grep root
4.防火墙配置
# 放行FTP服务和被动模式端口
sudo firewall-cmd –permanent –add-service=ftp
sudo firewall-cmd –permanent –add-port=30000-31000/tcp
sudo firewall-cmd –reload
5.启动并启用服务
启动FTP服务:
# 停止可能冲突的进程
sudo pkill vsftpd
# 重新加载systemd配置
sudo systemctl daemon-reload
# 启动vsftpd服务
sudo systemctl start vsftpd
# 设置开机自启
sudo systemctl enable vsftpd
# 检查服务状态
sudo systemctl status vsftpd
SFTP服务(通常已随SSH安装):
# 检查SSH服务状态
sudo systemctl status sshd
# 如果未运行,启动服务
sudo systemctl start sshd
sudo systemctl enable sshd
步骤四:防火墙配置(如需要)
# 检查防火墙状态
sudo firewall-cmd –state
# 如果防火墙开启,放行服务
sudo firewall-cmd –permanent –add-service=ftp
sudo firewall-cmd –permanent –add-service=ssh
sudo firewall-cmd –reload
6.创建 SFTP 用户和组
为了安全,建议不要让普通 SSH 用户直接使用 SFTP。
创建受限用户组和用户:
sudo groupadd sftpusers
sudo useradd -g sftpusers -s /usr/sbin/nologin sftpuser
sudo passwd sftpuser
创建目录并设置权限
sudo mkdir -p /sftp/uploads
sudo chown root:root /sftp
sudo chmod 755 /sftp
sudo chown sftpuser:sftpusers /sftp/uploads
sudo chmod 700 /sftp/uploads
7.修改 SSH 配置
编辑 /etc/ssh/sshd_config:
确保存在以下内容:
Subsystem sftp internal-sftp
PasswordAuthentication yes
ChallengeResponseAuthentication no
UsePAM yes
在文件底部添加:
Match Group sftpusers
ChrootDirectory /sftp
ForceCommand internal-sftp -d /uploads
AllowTcpForwarding no
X11Forwarding no
PermitTunnel no
重启 SSH 服务
sudo systemctl restart sshd # CentOS / RHEL
测试服务
1. 验证安装结果
# 检查软件包安装
rpm -qa | grep vsftpd
rpm -qa | grep openssh
vsftpd -v
# 检查服务状态
sudo systemctl status vsftpd
sudo systemctl status sshd
# 检查端口监听
sudo netstat -tulnp | grep :21
sudo netstat -tulnp | grep :22
2. 测试连接
测试FTP连接:
ftp localhost# 使用系统用户(如root)和密码登录
ifconfig#获取IPv4地址
在本地客户端资源管理器(替换为自己的ip地址):
ftp://172.22.73.197/
ftp://root@172.22.73.197/
测试SFTP连接:
(1)sftp localhost# 使用系统用户(如root)和密码登录
(2)本地客户端命令:
sftp -P 22 sftpuser@your_server_ip
交互模式:
sftp> pwd
Remote working directory: /uploads
sftp> ls
sftp> put test.txt
sftp> get test.txt
服务管理命令
# 启动服务
sudo systemctl start vsftpd
sudo systemctl start sshd
# 停止服务
sudo systemctl stop vsftpd
sudo systemctl stop sshd
# 重启服务
sudo systemctl restart vsftpd
sudo systemctl restart sshd
# 查看服务状态
sudo systemctl status vsftpd
sudo systemctl status sshd
# 设置开机自启
sudo systemctl enable vsftpd
sudo systemctl enable sshd




