ssh 反向代理举例

来源:互联网 发布:在线aes算法 编辑:程序博客网 时间:2024/04/25 14:59

 

 

实验:
1、测试pc至 192.168.1.98:80,使用浏览器访问192.168.1.98:80正常页面
2、在192.168.1.97机器上输入 
         Ssh –f –N –L 0.0.0.0:2001:192.168.1.98:80 test@192.168.1.102
         ssh -N -L2001:remotehost:80 user@somemachine

这个命令在本机打开了2001端口,对本机2001端口的请求通过somemachine作为跳板,转到remotehost的80端口上。

实现效果跟术语反向代理是相似的,实际上就是端口转发,注意上面的描述涉及了3台主机,但当然somemachine可以变成localhost。

这个命令比较抽象,但有时候是很有用的,比如因为众所周知的原因国内的IP的80端口无法使用,又或者公司的防火墙只给外网开了ssh端口,需要访问内部服务器一个web应用,以及需要访问某些限定了来源IP的服务,就可以用上这个方法了。

举一个具体例子,运行:

ssh -f -N -L 0.0.0.0:443:twitter.com:443 shell.cjb.net
ssh -f -N -L 0.0.0.0:80:twitter.com:80 shell.cjb.net

然后在/etc/hosts里面添加127.0.0.1 twitter.com,好吧剩下的你懂的。

当然通常做这个功能的反向代理,应该要用squid、nginx之类,ssh就算是轻量级的尝试吧!

-a:利用这个参数,可以使转发的认证代理无效。其结果是使已装入内存的口令无效。如果愿意,你也可以针对每台主机指定这个参数,而不是使其成为全程的设置。

-c cipher:可以通过这个参数为你的网上传输指定一个用来加密数据的密钥对。

-C:该参数将使ssh压缩所有通过Secure Shell客户端发送的数据,包括输入、输出、错误消息及转发数据。它使用gzip算法,压缩级别可通过设置配制文件中的参数Compressicn Level来指定。这对于缓慢的传输线路特别有用的。但对于传输速度已经很快的网络则显得没有必要。同样,你可以利用配制文件针对每台主机配置这个参数。

-f:该参数将ssh连接送入后台执行。这在验证已经完成且TCP/IP转发已经建立的情况下会生效。这对在远程主机上启动X程序显得十分重要。其后用户将被提示要求输入口令(提供的认证代理不运行),然后将连接送往后台。
-g:该参数允许远程主机通过端口转发与主机端口相连,通常情况下仅允许本地主机这样做。

-k:这个参数使Kerberos转发功能无效。

-l login_name:这个参数指定你在远程主机上的登录用户名。默认情况下该用户名与你在本地机上的用户名相同。它可以通过配置文件为不同的主机量体裁衣。这个参数是一个很实用的参数,因为许多人在不同的主机上有着不同的用户名。

-L port:host:hostport这个参数转发在本地主机上的指定端口与远程主机上的指定端口连接完成的信息。

-n :这个参数与-f参数类似。然而,在需要敲入口令时它将不会工作。标准输入由/dev/null重定向而得到,当SecureShell客户端被送往后台时必须使用它。这个参数在用来发送X流量至远程主机时被普遍地使用。最好在使用该参数时启用认证代理。

-o option:在命令行参数未被定义时,该参数用来从配置文件中传递参数。这包括StrictHostke yChecking和Use Rsh,它们没有自己的命令行参数。

-p port:可以指定哪个端口用作SecureShell客户端与服务器的连接。默认值为22,它为SecureShell而保留。记住,除非特殊指定,用于服务器的端口号在/etc/services文件中定义。可以通过配置文件针对不同的主机而分别设置。

-P:使用大于1023的端口号(非特权的端口)。不能使用这些端口进行rhost认证。(无论是它自身还是与RSA的组合)。

-q:这个参数选用哑模式。这意味着任何信息,包括警告与诊断信息都不会被显示出来。在你碰到认证或连接问题时,最好关闭该模式。

-R port:host:hostport该参数转发远程主机指定端口到本地主机指定端口上的连接。它和-L参数的工作过程刚好相反。套接字监听远程主机上的端口,只要针对该端口有一个连接,它将被转发到本地主机和主机端口。该转发端口可以在不同的主机上通过配置文件来进行不同的配置。特权端口只能在以超级账号登录到远程主机时转发。

-t:该参数通过指定一个伪终端迫使SecureShell客户端以交互模式工作,即使在给定命令的情况下也是如此。它被用于执行在远地主机上的基于屏幕的程序。

-V:该参数打印出客户端的版本号后退出。

-v :详尽模式。该参数使ssh打印出调试信息,在调试连接、认证及配置问题时该参数特别有用。

-x:该参数用于X流量转发,X被公认为在启动时是不安全的,对安全敏感的站点最好设置这个参数。该参数可以通过配置文件为每一台主机分别设置。