ssh隧道/反向隧道相关[未完]

来源:互联网 发布:什么围棋软件好 编辑:程序博客网 时间:2024/04/29 03:38

参考资料:

http://blog.creke.net/722.html

http://blog.jianingy.com/content/ssh%E9%9A%A7%E9%81%93%E6%8A%80%E6%9C%AF%E7%AE%80%E4%BB%8B

http://blog.cathayan.org/item/1508

 

一、自己访问内网资源

1.双方都是内网,但是有一台外网机器

在本机运行:

 

 

2.资源房有外网机可用

 

3.客户方是外网机

 

二、让别的人访问内网资源

1.资源方有外网机可用

在资源机上执行

ssh -N -f -R 2222:127.0.0.1:22外网机ip

 

2.资源方无外网,但是有第三方的外网机

 与 -D 选项相反, -R选项在远端主机上打开一个tcp监听端口A,并与本机的一个端口B建立

 资源方内网A: ssh -R 10000:localhost:21  far@far.com
    外网用户 lftp far@far.com 10000 会连接到主机A的ftp服务器

 

三、使用某外网机器的网络(如翻墙)

1.自己翻墙(即将代理做在自己本机)

 

2.其他人也用(将代理做在远端)

 

四、仅通过ssh访问该机器其他端口(翻防火墙)

ssh -L 8080:127.0.0.1:80 user@ssh-host

这样通过访问本季的8080来访问远程主机的80端口

 

参数说明:

相关参数的解释:
-f Fork into background after authentication.
后台认证用户/密码,通常和-N连用,不用登录到远程主机。 告诉SSH客户端在后台运行

-L port:host:hostport
将本地机(客户机)的某个端口转发到远端指定机器的指定端口. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 同时远程主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有 root 才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport

-R port:host:hostport
将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口. 工作原理是这样的, 远程主机上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转向出去, 同时本地主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有用 root 登录远程主机才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport

-D port
指定一个本地机器 “动态的’’ 应用程序端口转发. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 根据应用程序的协议可以判断出远程主机将和哪里连接. 目前支持 SOCKS4 协议, 将充当 SOCKS4 服务器. 只有 root 才能转发特权端口. 可以在配置文件中指定动态端口的转发.

-C Enable compression.
压缩数据传输。

-N Do not execute a shell or command.
不执行脚本或命令,通常与-f连用。 告诉SSH客户端,这个连接不需要执行任何命令。仅仅做端口转发

-g Allow remote hosts to connect to forwarded ports.
在-L/-R/-D参数中,允许远程主机连接到建立的转发的端口,如果不加这个参数,只允许本地主机建立连接。注:这个参数我在实践中似乎始终不起作用。

以上摘录自:http://chenweiguang.blogspot.com/2009/03/ssh.html

原创粉丝点击