SSH 端口转发分为3种,分别是Local、Remote、Dynamic、X
Local 转发
Local 转发就是将远程服务器的某个端口转发到客户端本地监听
此时Local为客户端本地,Remote为远程服务器
bind_address为客户端绑定网卡地址,留空或者设置*表示绑定所有网卡
如需客户端本地网络其他主机需要访问,加上-g参数表示开启GatewayPorts
命令如下:
1 | ssh -L (-g) (<bind_address>:)<local port>:<remote host>:<remote port> <SSH hostname> |
SSH连接到远程服务器A,如需要将远程服务器B的80端口,转发到客户端的8080
命令如下
1 | ssh -L (127.0.0.1:)8080:SERVER_B:80 SERVER_A |
Remote 转发
Remote 转发就是将客户端本地的某个端口转发到服务器监听
此时Local为远程服务器,Remote为客户端本地
bind_address为服务器绑定网卡地址,留空或者设置*表示绑定所有网卡
默认无法启用GatewayPorts,如需开启需要在sshd_config里设置”GatewayPorts yes”
命令如下:
1 | ssh -R (<bind_address>:)<local port>:<remote host>:<remote port> <SSH hostname> |
SSH连接到远程服务器A,如需要将客户端本地主机B的80端口,转发到远程服务器A的8080
1 | ssh -R (127.0.0.1:)8080:LOCAL_B:80 SERVER_A |
Dynamic 转发
Dynamic 转发就是在客户端本地开启一个Socks代理,本地可以将各种连接通过该代理转发到服务器
1 | ssh -D <local port> <SSH Server> |
X 转发
X 转发就是将服务器远端的X Client连接到客户端本地的X Server,sshd会自动设置系统变量
如客户端需自行安装X Server
具体命令如下:
1 | ssh -X <SSH Server> |