Debian 上 SFTP 的端口转发实用指南
一、概念与前提
二、本地端口转发访问内网 SFTP(最常用)
ssh -N -f -L 8022:10.0.0.10:22 user@203.0.113.5
含义:把本地的 8022 端口转发到 10.0.0.10:22,经由 203.0.113.5 中转;连接建立后不执行远程命令、转入后台。sftp -P 8022 user@127.0.0.1
ssh -N -f -L 8022:127.0.0.1:22 user@gateway。三、远程端口转发让外部访问本机 SFTP(反向隧道)
ssh -N -f -R 2222:127.0.0.1:22 user@203.0.113.5
含义:在跳板机 203.0.113.5 上监听 2222,把流量转发到本机 22。sftp -P 2222 user@203.0.113.5
GatewayPorts yes
然后重启 sshd:sudo systemctl restart sshd。四、多层转发与链路示例
ssh -N -f -L 8022:10.0.0.10:22 user@10.0.0.10
ssh -N -f -L 9022:127.0.0.1:8022 user@203.0.113.5
sftp -P 9022 user@127.0.0.1
五、防火墙放行与常见问题
sudo ufw allow 22/tcp
sudo ufw allow 8022/tcp # 本地转发端口示例
sudo ufw allow 2222/tcp # 远程转发端口示例
AllowTcpForwarding no,端口转发会被拒绝。示例(禁用某用户的转发):Match User www-data
AllowTcpForwarding no
需要转发时请改为 yes 或注释该行并重启 sshd。sshd -tsudo tail -f /var/log/auth.log