SSH隧道转发
SSH隧道转发
本地转发
SSH客户端监听来自某个端口的连接,当它收到连接时,将请求通过隧道转发到SSH服务器;然后SSH服务器将请求转到目标端口。
1 | ssh -L [bind_address:]localport:host:hostport remotehost |
bind_address限制了ssh客户端的监听地址, localport表示监听ssh客户端的该端口, host是remotehost可以访问的地址, hostport是host所监听的端口
效果就是访问ssh客户端的localport可以访问host的hostport
bind_address通常有127.0.0.1 [::1] 0.0.0.0 [::] *, man里说省略这个参数=*, 我实测好像=localhost
远程转发
适用于将ssh客户端所能访问的服务暴露给remotehost, 也就是内网穿透
1 | ssh -R [bind_address:]port:host:hostport remotehost |
bind_address好像没啥用, port是remotehost所监听的端口, host是ssh客户端网络范围内的地址, hostport是该host运行服务的端口
默认remotehost的
/etc/ssh/sshd_config
中GatewayPorts no
, 所以在remotehost中是127.0.0.1:port, 服务只能remotehost访问修改
GatewayPorts yes
之后, 在remotehost中是0.0.0.0:port, 如果remotehost有公网IP, 就达到了内网穿透
动态端口转发
1 | ssh -D 7890 remotehost |
7890是ssh客户端监听的端口, 就可以使用
ssh客户端ip:7890
的socks5代理
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.