Chinaunix首页 | 论坛 | 博客
  • 博客访问: 247168
  • 博文数量: 41
  • 博客积分: 1523
  • 博客等级: 上尉
  • 技术积分: 579
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-05 21:23
文章分类

全部博文(41)

文章存档

2014年(1)

2013年(2)

2012年(1)

2011年(2)

2010年(3)

2009年(1)

2008年(20)

2007年(11)

分类: LINUX

2008-02-13 09:40:18

ssh 是有端口转发功能的。
ssh的三个强大的端口转发命令:

QUOTE:
ssh -C -f -N -g -L listen_port:DST_Host:DST_port user@Tunnel_Host
ssh -C -f -N -g -R listen_port:DST_Host:DST_port user@Tunnel_Host
ssh -C -f -N -g -D listen_port user@Tunnel_Host
-f Fork into background after authentication.
后台认证用户/密码,通常和-N连用,不用登录到远程主机。

-p port Connect to this port. Server must be on the same port.
被登录的ssd服务器的sshd服务端口。

-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连用。

-g Allow remote hosts to connect to forwarded ports.
在-L/-R/-D参数中,允许远程主机连接到建立的转发的端口,如果不加这个参数,只允许本地主机建立连接。


阅读(2513) | 评论(4) | 转发(0) |
0

上一篇:学习udev

下一篇:读心术代码。

给主人留下些什么吧!~~

chinaunix网友2008-02-13 09:42:56

在windows机器下使用putty也可以建立端口转发 假设从windows机器上将本地的8888端口转发到B的21端口,可以做如下设置 Connection->SSH-Tunnels中可以设置putty的端口转发,Source port为listen_port,填8888,Destionation为DST_Host:DST_port,填写B机器IP:21,设置完了点Add. 注意是local还是remote? [p_w_upload=1198] 设置好后,我们可以在dos下用netstat命令看一下是否开启了本地的转发端口 [p_w_upload=1199] 接下来我们访问localhost的8888端口来访问ftp服务器了

chinaunix网友2008-02-13 09:42:11

基于SSH的加密通道   SSH (Secure Shell)是一套安全的网络连接程序,它可以实现通过网络远程登录其他系统,它就是加密的telnet协议。但是OPENSSH除了具有远程登录功能以外,更可以建立加密IP隧道。   [myimg]upload/tunnel.png[/myimg]   我们这里假设Alice.org服务器位于某个企业网的内网,其IP地址为192.168.2.200,它通过NAT方式可以访问互联网。我们现在需要通过位于互联网上的名字为bob.org的机器里访问Alice,也就是远程登录Alice。这时候我们就需要在bob和alice之间建立IP隧道。我们首先登录Alice,执行命令:   # ssh -R 11022:127.0.0.1:22 ideal@211.1.1.1   该命令表示登录服务器211.1.1.1,并将服务器的11022定向为本地的22号端口。执行完该命令以后,会提示输入ideal用户密码,输入以后就会登录到远程服务器bob。这时在bob上netstat -ln就会发现11022端口监听,保持从alice到bo

chinaunix网友2008-02-13 09:41:19

来一个稍微复杂一点的,做网关的例子: 假如内网有一台提供ftp(linux,port is 2121,称为A机器)的机器,通过网关服务器(linux,port is 8888,称为B机器)进去,现在外网有一台C机器需要访问网关服务器的某个端口(port is 21)来访问内网的ftp服务器。大家可以看到,其实这就像是一个基于ssh的防火墙程序,好,下面我们来具体操作: 1。login A 机器 # ssh -CNfg -R 8888:localhost:2121 root@B机器IP 这样我们就在B机器上开了一个8888->2121的端口转换,但是由于8888端口只能侦听在localhost主机上,因此,虽然我们已经可以在B机器上使用 # ftp localhost 8888 来访问真正的ftp服务器,但仍然无法提供给外网的机器访问 2。login B机器 # ssh -CNfg -L 21:localhost:8888 root@localhost 这样做,是做本地机器上的21->8888端口转换,可以侦听在任何地址上的请求。 2(1)。 如果C机器也是一台l

chinaunix网友2008-02-13 09:40:49

实例说明: 一台服务器提供ftp服务,因为ftp传输是明文密码,如果不做ssh端口之前,我们可以通过tcpdump命令很容易的捕捉到明文信息。所以我们要对21端口进行转发: (ftp-server)# ssh -CNfg -R 2121:localhost:21 root@10.4.2.50 然后登录到10.4.2.50机器,我们可以通过netstat -an|grep :2121查看端口已经侦听 (10.4.2.50)# ftp localhost 21就可以登录到ftp-server了,而且tcpdump无法捕获到有效的信息。 2121端口任意选择,只要是机器上没有占用的端口就行