利用SSH的代理能力我们可以只用一行代码就可以开启正向代理功能,方法如下:
ssh -CNL localhost:8001:192.168.1.99:8080 root@192.168.1.99
这句命令会将本地 localhost:8001 映射到远程电脑192.168.1.99的 8080端口上, 使用 -f 参数可后台运行。
现在在本机直接打开: http://localhost:8001/ 实际访问的就是 192.168.1.99上面的8080 服务。
参数说明:
-C 请求压缩所有数据(包括stdin、stdout、stderr以及转发的X11、TCP和UNIX域连接的数据)。压缩算法与gzip(1)使用的算法相同。压缩在调制解调器线路和其他慢速连接上是可取的,但在快速网络上只会减慢速度。默认值可以在配置文件中逐个主机设置;请参见“压缩”选项。
-N 不要执行远程命令。这仅适用于转发端口。
-L local_socket:remote_socket 指定到本地(客户端)主机上给定TCP端口或Unix套接字的连接要转发到远程侧的给定主机和端口或Unix插座。这是通过分配一个套接字来侦听本地端的TCP端口(可选地绑定到指定的bind_address)或Unix套接字来实现的。无论何时连接到本地端口或套接字,都会通过安全通道转发连接,并从远程机器连接到主机端口hostport或Unix套接字remote_socket。端口转发也可以在配置文件中指定。只有超级用户才能转发特权端口。IPv6地址可以通过将地址括在方括号中来指定。
默认情况下,本地端口是根据GatewayPorts设置绑定的。但是,显式bind_address可能是用于将连接绑定到特定地址。“localhost”的bind_address表示侦听端口仅绑定为本地使用,而空地址或“*”表示端口应可从所有接口使用。
-f 请求ssh在执行命令之前转到后台。如果ssh要请求密码或密码短语,但用户希望在后台请求,这将非常有用。这暗指 -n 。
建议在远程站点启动X11程序的方法是使用 ssh -f host xterm.
如果ExitOnForwardFailure配置选项设置为“yes”,则使用-f启动的客户端将等待所有远程端口转发成功建立,然后再将其置于后台。
更多SSH的使用方法和参数见 SSH命令使用方法,最详细的ssh官方帮助文档-CSDN博客 或者直接 man ssh