要在 Linux 上让 Xftp 能连接,核心是在 Linux 上开启 SSH 服务。因为 Xftp 本质上是一个 Windows 端的 SFTP 客户端,它通过 SSH 协议(默认端口 22)来连接 Linux 服务器。
🐧 在 Linux 端开启 SSH 服务
大多数 Linux 服务器版已经预装了 SSH 服务。如果没有,或者你用的是精简系统,可以按下面的步骤操作。
1. 安装 SSH 服务
根据你的系统类型,选择对应的命令:
-
Ubuntu / Debian:
bash
sudo apt update sudo apt install openssh-server -
CentOS / RHEL / Fedora:
bash
sudo yum install openssh-server # 或 sudo dnf install openssh-server
2. 启动并设置开机自启
bash
# Ubuntu/Debian 系统通常服务名是 ssh
sudo systemctl start ssh
sudo systemctl enable ssh
# CentOS/RHEL 系统通常服务名是 sshd
sudo systemctl start sshd
sudo systemctl enable sshd
3. 检查 SSH 是否在监听 22 端口
bash
ss -lntp | grep :22
# 或者
netstat -lntp | grep :22
如果看到 0.0.0.0:22 或 :::22 等字样,就说明 SSH 服务已正常监听,可以接受连接了。
4. 放行防火墙(如果开启了防火墙)
-
Ubuntu (ufw) :
sudo ufw allow ssh -
CentOS (firewalld) :
sudo firewall-cmd --permanent --add-service=ssh && sudo firewall-cmd --reload
虽然之前 ufw 显示"不活动",但麒麟系统(尤其是 V10)往往默认使用 iptables 或 firewalld 进行底层拦截,ufw 不活动不代表没有其他防火墙在生效。
请在麒麟终端执行以下命令,查看是否有针对 ICMP 的 DROP 规则:
检查 iptables 规则
bash
sudo iptables -L INPUT -n -v | grep icmp
如果看到类似 DROP icmp -- 0.0.0.0/0 0.0.0.0/0 或 REJECT 的条目,说明 ping 请求被拦截了。你可以临时放行来验证:
bash
sudo iptables -I INPUT -p icmp -j ACCEPT
🔧 如何让规则持久化
根据你的麒麟系统实际使用的防火墙管理工具,选择对应方式:
如果系统用的是 iptables 直接管理(无 firewalld/ufw)
安装 iptables-persistent 来保存规则:
bash
sudo apt install iptables-persistent
sudo netfilter-persistent save
这样重启后规则会自动恢复。
如果系统用的是 firewalld(麒麟 V10 常见)
建议用 firewalld 的原生方式放行 ICMP,而不是直接改 iptables:
bash
sudo firewall-cmd --permanent --add-icmp-block-inversion
sudo firewall-cmd --reload
--add-icmp-block-inversion 会反转 ICMP 屏蔽逻辑,允许 echo-request 通过。执行后用 sudo firewall-cmd --list-all 确认 icmp-block-inversion 已生效。
如果系统用的是 ufw
你之前看到 ufw 是"不活动"状态,说明它没在管理规则,可以忽略。