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

    技术2024-12-30  12

    参考资料:

    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

    最新回复(0)