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 选项用于指定本地要绑定的端口号以及地址。