当你需要连接一台子网或防火墙内的且没有做端口映射的SSH服务器,又刚好你的客户端是有公网地址的,你是怎么怎么做的呢?现在我有一个比较不错的办法,就是SSH的TCP转发功能。
SSH 客户端可以将本地机器上的一个端口M与远程主机上的一个端口N映射起来,这样我们在本地机器访问这个端口M就和在远程主机访问端口N一样了。
对了,这里地要想实现我们的反向连接还有一个条件,就是你的本地机器也得安装 SSH 服务器程序。下面我们说一下具体的操作。
子网主机执行
$ ssh -f -N -R 8000:localhost:22 [email protected]_ip
这是是将本地的 22 号端口与远程主机的 8000 号端口(SSH服务)映射起来。
公网主机执行
$ ssh [email protected] -p 8000
Over!
另外有一个比较有意思的东西,你可以在本地登陆 unix-center 的服务器。
$ ssh -f -N -L 8000:localhost:22 [email protected]
$ ssh [email protected] -p 8000
$ who
你的登陆地址是 localhost 吧?
如果我把 80 号端口给映射了,这样对于需要 localhost 才可以访问的页面,我不是可以访问了吗?因为本人是 localhost 访问的!
两个子网主机建立TCP转发,子网M中的主机A有端口为80的HTTP服务,子网N中的主机B需要访问子网M中的主机A上的HTTP服务。这种情况我们可以利用 unix-center 的服务器中转一下。
主机A上执行
$ ssh -f -N -R 8000:localhost:80 [email protected]
主机B上执行
$ ssh -f -N -L 8080:localhost:8000 [email protected]
现在主机B就可以在浏览器中访问 http://localhost:8080 了。
嗯,unix-center 是个不错的代理。
ssh -f -N -D 6000 [email protected]
设置 sockv5 代理,地址:localhost 端口:6000
您好!
我有个问题想请教,
1.有一个远端设备(linux系统),我用GPRS将这个设备连接上网,地址是动态的,但是可以访问我公司的固定IP
2.公司固定IP设置在防火墙上,内网有几台linux主机连在防火墙上。
我如何能在公司的机器上远程登录到远端的设备,如telnet ftp.
谢谢!
你的问题是不是不知道这个远程设备的IP地址?如果是这样可以使用动态域名的。
主机B上执行
$ ssh -f -N -L 8080:localhost:8000 [email protected]
这里的localhost应该写为ubuntu.unix-center.net吧。
把上面的8000映射到本地的8080端口。
不是,只能用 localhost
4楼的可以实现,固定IP的防火墙上映射ssh 22端口到内网linux机器。
远端设备上:ssh -R 8000:localhost:22 [email protected]防火墙IP //将远端设备的22端口数据转发到内网Linux 22端口,此处username为内网linux用户。
内网Linux:ssh [email protected] -p 8000 //此处username为远端设备用户。
我现在用的SecureCRT带的vsh.exe代理linux的ssh,可能命令格式不大一样。
正解,不過ftp會很麻煩。