ssh 端口转发
2020-03-31 19:42 linux
有时需要临时在本地访问一下服务器上的未公开访问权限的服务,可以用 ssh 将此服务的
端口重映射到本地。使用起来也很简单,比如之前常用的 X11Forward
类似实现的。
下面以访问服务器的 127.0.0.1:8080
web 服务为例说明:
ssh -p 22 -v -N -L 0.0.0.0:8080:127.0.0.1:8080 user@example.com
以上命令即可将服务器上 8080
端口的服务映射到本地网络。其中各个参数的意义是:
-p 22
为服务器上的sshd
服务的端口号,默认是22
,可以略去这个选项-v
交互式模式,会打印一些日志到终端里;可以略去-N
表示不在服务器端执行命令,这样就不会打开服务器上的远程终端;可以略去-L 0.0.0.0:8080:127.0.0.1:8080
将服务器上的8080
映射到本地的8080
端口user@example.com
是ssh
服务的用户名及服务器地址
之后就可以在本机浏览器里面访问 http://127.0.0.1:8080
地址了。
Socks5 反向代理
也可以将本地的网络数据经 ssh
转发到服务器上,然后经服务器发送出去。简单来说
就是使用 ssh 创建 socks5 反向代理,这里其实 ssh
就相当于一个 socks server
。
这种情况可以应急使用,网络速度无法跟专门的代理工具相比。
在本地终端里运行以下命令,就可以在本地创建 127.0.0.1:1080
的 socks5 代理:
ssh -p 22 -N -v -D localhost:1080 user@example.com
这里的 -D
选项用于指定本地要绑定的端口号以及地址。