ssh端口转发
好记性不如烂笔头,-L、-R和-D三个命令的格式老是忘,还是记一下吧……下面的$TSS和$BDW代表服务器地址。
正向代理-L
在远程服务器$TSS上做web开发,开发服务器端口8080,本地机器能够ssh访问到远程服务器。为了方便,在本地机器上运行下述命令,从而访问localhost:3000相当于访问$TSS:8080。注意这要求远程服务器开放了8080端口。
bash
ssh -qnNTCL 3000:localhost:8080 $TSS反向代理-R
在远程服务器$TSS上不能访问某些镜像源,而本地机器的7777端口运行有代理服务,同时本地机器能够ssh访问远程服务器。为了在服务器上临时访问一下镜像,在本地机器上运行下述命令,之后登录到$TSS上后,可认为自己的1080端口运行有代理服务。也即访问$TSS:1080相当于访问本地机器的localhost:7777。
bash
ssh -qnNTCR 1080:localhost:7777 $TSS本地socks5代理-D
更直白的隧道代理,本地机器能ssh登录代理服务器$BDW,在本地机器上执行如下命令后,可视为代理运行在本地的1080端口。所有走1080端口的流量都被转发给$BDW,由$BDW代为访问。
bash
ssh -qnNTCD 1080 root@$BDW -p 27266其他
测试通路可以使用curl,例如curl github.com --socks5 localhost:1080 -vL测试socks5代理的连通性。
上面出现的一些常用选项解释如下:
-q:安静模式,例如会隐藏预设的ssh欢迎字样-n:关闭标准输入-N:不执行远程命令-T:禁止远程分配终端-C:压缩数据