Ubuntu SFTP端口转发可通过SSH隧道实现,主要有本地转发和远程转发两种方式,以下是具体步骤:
本地端口转发是将本地机器的某个端口通过SSH隧道转发到远程机器的某个端口。打开终端,使用以下命令:
ssh -L <本地端口>:<远程主机地址>:<远程端口> <用户名>@<远程服务器地址>
例如,将本地的2222端口转发到远程服务器的22端口:
ssh -L 2222:localhost:22 user@remote_server_ip
输入密码后,连接成功。此时可在本地使用SFTP客户端连接到localhost
的2222端口,即:
sftp -P 2222 localhost
远程端口转发是将远程机器的某个端口通过SSH隧道转发到本地机器的某个端口。命令格式为:
ssh -R <远程端口>:<本地主机地址>:<本地端口> <用户名>@<远程服务器地址>
例如,将远程服务器的3306端口转发到本地的3306端口:
ssh -R 3306:localhost:3306 user@remote_server_ip
若希望SSH隧道在后台持续运行,可使用autossh
工具。先安装:
sudo apt install autossh
然后使用以下命令启动持久化隧道:
autossh -M 0 -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -L <本地端口>:<远程主机地址>:<远程端口> <用户名>@<远程服务器地址>