SSH本地开启socks5,-D-R-L参数详解

ssh 命令除了登陆外还有三种代理功能:

正向代理(-L):相当于 iptable 的 port forwarding 反向代理(-R):相当于 frp 或者 ngrok socks5 代理(-D):相当于 ss/ssr 如要长期高效的服务,应使用对应的专用软件。如没法安装软件,比如当你处在限制环境下想要访问下某个不可达到的目标,或者某个临时需求,那么 ssh 就是你的兜底方案。

ssh -fqCND port user@host
其中 -C 为压缩数据,-q 安静模式,-T 禁止远程分配终端,-n 关闭标准输入,-N 不执行远程命令。此外视需要还可以增加 -f 参数,把 ssh 放到后台运行。

可实现短时间科学上网,想稳定的话推荐安装antossh,或者直接付费享受。

正向代理:

所谓“正向代理”就是在本地启动端口,把本地端口数据转发到远端。

用法1:远程端口映射到其他机器

HostB$ ssh -g -f -N -L forwardingPort:targetIP:targetPort user@sshServerIP

本机上的forwardingPort将会被监听,访问本机的forwardingPort,就相当于访问targetIP的targetPort,ssh隧道建立在本机与sshServer之间。

反向代理(一般做内网穿透)

所谓“反向代理”就是让远端启动端口,把远端端口数据转发到本地。

HostA$ ssh -f -N -R forwardingPort:targetIP:targetPort user@sshServerIP

举个例子:

ssh -vgfNR 1000:127.0.0.1:8889 root@cc
	```
sshServer上的forwardingPort将会被监听,访问sshServer上的forwardingPort,就相当于访问targetIP的targetPort,ssh隧道建立在本机与sshServer之间。
```shell
#在远程服务器的sshd_config中配置
GatewayPorts yes
#配置ssh免密,或者copy自己的key自己放
(ssh-copy-id -i rsa.pub user@host)