Skip to main content

ssh高级用法

ssh高级用法

一、本地端口转发(正向代理)

访问本地的127.0.0.1:8000,实际上相当于访问远程主机自身(192.168.1.15)上监听在127.0.0.1:18789的服务

-N 不执行远程命令,只做端口转发

ssh -N -L 8000:127.0.0.1:18789 root@192.168.1.15

二、远程端口转发(反向代理)

将远程主机192.168.1.71:9000的端口转发到本地,让远程机器可以访问本地localhost:8000的服务

ssh -R 9000:localhost:8000 kk@192.168.1.71

三、动态端口转发(socks代理)

做作为vpn使用

在本地启动一个端口为8000的socks代理,访问本地8000端口的所有流量通过ssh隧道传输

ssh -D 8000 root@192.168.1.10

在A主机启动这个命令,在B主机浏览器通过A的8000端口代理所有流量通过192.168.1.10出去

ssh -D 0.0.0.0:8000 root@192.168.1.10

四、跳板机

通过一台中间服务器连接到目标服务器,适合多层网络环境

我能直接访问192.168.1.112,无法直接访问192.168.8.8,但是192.168.1.112能直接访问192.168.8.8

通过192.168.1.112作为跳板机,ssh访问192.168.8.8,需要输入两次密码,先是跳板机192.168.1.112的密码,然后是目标机器192.168.8.8的密码

ssh -J root@192.168.1.112 root@192.168.8.8

五、x11转发

在远程运行图形应用程序,界面显示在本地

需要本地运行 X Server(Linux 默认,Windows 需 Xming 等),Windows推荐使用MobaXterm连接,可启用x11转发选项

ssh -X root@192.168.1.7

登陆后直接在ssh连接中输入程序的名称,即可在本地启动图形程序

六、远程执行命令

直接在 SSH 命令后附加要执行的命令,不登录交互式 Shell

ssh root@192.168.1.71 "shutdown now"

七、压缩传输

对传输的数据进行压缩,适合慢速网络传输大量文本

备份文件到本地,方便打包日志信息

ssh -C root@192.168.1.15 "tar czf - /data" > backup.tar.gz