登录 |

SSH端口转发

2013年04月17日 下午 33:25 | 作者:

ssh-client和sshd-server之间支持双向数据转发

[*:*]<——redirect——[ssh-client]——–[sshd-server]——redirect——>[*:*]

  1. 本地转发 Local forwarded

    [src-host:port]—–>>—–[ssh-client:local-port]—–>>—–[sshd-server]—–>>—–[dst-host:port]

    在client打开一个监听端口,访问这个端口,经由sshd-server代理到指定地址(dst-host:port)

    ssh -L [bind_address:]local-port:dst-host:port [user@]hostname

  2. 远程转发 Remote forwarded

    [dst-host:port]—–<<—–[ssh-client]—–<<—–[sshd-server:remote-port]—–<<—–[src-host:port]

    在server打开一个监听端口,访问这个端口,经由ssh-client代理到指定地址(dst-host:port)

    ssh -R [bind_address:]remote-port:dst-host:port [user@]hostname

  3. 动态端口转发(本地)

    [src-host:port]——(socks4/5)—–>[ssh-client:local-port]—–>>—–[sshd-server]—–>>—–[dst-host*:port*]

    client作为socks代理服务器,打开一个监听端口,(使用SOCKS4/5协议)访问这个端口,经由server代理到任意地址(*:*)

    ssh -D [bind_address:]local-port [user@]hostname

默认只能监听本地环回地址(127.0.0.1),通过修改ssh_config/sshd_config,指定GatewayPorts = yes,可以监听所有地址(0.0.0.0)。