Top Words:  春色满园关不住,一枝红杏出墙来。(叶绍翁)

子雨轩网络

PHP互联网技术,互联网文摘,PHP技术,WEB开发,SEO,WAP技术,linux系统

Home » index.php » archives » date » 2010 » August

使用ssh转发

ssh实现转发,只要用到以下两条命令:

ssh -CfNg -L 6300:127.0.0.1:1080 anyside@192.168.1.119
ssh -CfNg -R 1080:127.0.0.1:6300 anyside@192.168.1.119

不论是做跳板,还是加密隧道,还是加密其他的网络连接也都是这两条命令。
视具体情况而定,有时只要用到其中一条,有时两条都要用到。

倒序解释:
-CfNg
C 表示压缩数据传输
f  表示后台用户验证,这个选项很有用,没有shell的不可登陆账号也能使用.
N 表示不执行脚本或命令
g 表示允许远程主机连接转发端口

-L 本地转发
ssh -CfNg -L 6300:127.0.0.1:1080 anyside@192.168.1.119

表示:
1、本机(运行这条命令的主机)和远程主机192.168.1.119建立加密隧道,anyside是远程主192.168.1.119      的账号。
2、在本机上打开6300端口.用 netstat -an|grep 6300 可看到 127.0.0.1:6300 或 127.0.0.1.6300
3、把本机的6300端口映通过加密隧道射到192.168.1.119的1080端口.
简单说,本机的6300端口就是远程主机192.168.1.119的1080端口。

-R 远程转发
ssh -CfNg -R 1080:127.0.0.1:6300 anyside@192.168.1.119

1、本机(运行这条命令的主机)和远程主机192.168.1.119建立加密隧道,anyside是远程主机192.168.1.119上的账号。
2、在远程主机192.168.1.119上打开1080端口.
3、把本机的6300端口映通过加密隧道射到192.168.1.119的1080端口.
注:本机的6300端口可直接看作远程主机192.168.1.119的1080端口。

举个实用的例子:
有A、B、C 3台服务器,A,C有公网IP,B是某IDC的服务器无公网IP。A希望同过B连接C的80端口,A<=>B<=>C

在B上执行如下命令即可:

[root@B root]# ssh -CfNg -L 6300:127.0.0.1:80 userc@C
[root@B root]# ssh -CfNg -R 80:127.0.0.1:6300 usera@A

服务器A和服务器C之间,利用跳板服务器B建立了加密隧道。在A上连接127.0.0.1:80,就等同C上的80端口

需要注意的是:
服务器B上的6300端口的数据没有加密,可被监 &听,
例:
#tcpdump [...]

  • Hotmail
  • LinkedIn
  • Yahoo Mail
  • Yahoo Messenger
  • Google Bookmarks
  • Share/Bookmark
.... ... ...