新足迹

 找回密码
 注册

精华好帖回顾

· . (2007-3-20) snowberry · . (2020-5-8) 南瓜地
· 三试土炮SSV/Redline__周日提车。 (2015-5-23) evereve · 抓住秋天的尾巴~~~Mt Wilson (分享如何拍秋葉特寫) (2015-5-10) silvia
Advertisement
Advertisement
查看: 1394|回复: 7

ssh port forwarding问题 [复制链接]

头像被屏蔽

禁止发言

发表于 2013-11-8 15:25 来自手机 |显示全部楼层
此文章由 valpa 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 valpa 所有!转贴必须注明作者、出处和本声明,并保持内容完整
情况是这样:我需要远程支持几台在美国的服务器,不过必须通过一台这里的server,通过它连到一台proxy服务器,再用速度极慢的vpn link来ssh到美国的服务器1,再到服务器2。my laptop -> server 1 -> proxy server -> remote server 1 -> remote server 2。其中proxy我没法控制,而且有iptable.

我在server 1上建了.ssh/config 可以直接ssh到 proxy server, remote server 1和  remote server 2
key authentication was enabled already.

现在有个web应用8180端口在美国的服务器2上,需要测试。我现在用port forwarding:
ssh -L 0.0.0.0:9980:<ip remote s2>:8180 <ip remote s1> 可以做到直接在laptop上访问 http://server1:9980/ 显示的是美国的服务器2的web应用。

唯一的问题是会 提示bind: Address already in use
我担心所有服务的22端口被直接forward了,这样就会影响别人使用ssh,对吗?

还有 怎么可以查看一个节点的port forwarding 信息?
Advertisement
Advertisement

发表于 2013-11-8 16:05 |显示全部楼层
此文章由 商务车 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 商务车 所有!转贴必须注明作者、出处和本声明,并保持内容完整
第一段没看懂,不明觉厉的样子。

发表于 2013-11-8 16:19 |显示全部楼层
此文章由 jaszhou 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 jaszhou 所有!转贴必须注明作者、出处和本声明,并保持内容完整
LZ是想用SSH tunnel吗? 不会影响别人,只会使用你自己的ssh connection.
头像被屏蔽

禁止发言

发表于 2013-11-8 16:49 来自手机 |显示全部楼层
此文章由 valpa 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 valpa 所有!转贴必须注明作者、出处和本声明,并保持内容完整
laptop ->server1 -> proxy -> remote1 -> remote2坏境下用
[server1 ]$ ssh -L 0.0.0.0:9980:<remote2>:8180 <remote1>
是不是创建了一个从server1 <-> remote1的tunnel
通过这个tunnel,laptop访问server1:9980 等于 在remote1 上访问remote2:8180

发表于 2013-11-11 16:21 |显示全部楼层
此文章由 jaszhou 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 jaszhou 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 jaszhou 于 2013-11-11 16:26 编辑
valpa 发表于 2013-11-8 16:49
laptop ->server1 -> proxy -> remote1 -> remote2坏境下用
[server1 ]$ ssh -L 0.0.0.0:9980::8180
是不 ...


你说的这个有点儿复杂了,我不太清楚。 ssh tunnel可以用在这样的情况:

机器A 到 机器B只有port 23可以访问 (ssh). 但是你需要从A访问B的其它端口。 在不改变firewall rule的情况下,你可以用ssh tunnel.
这样你访问A的一个本地port就相当于访问B的一个另外的port. 其实就是所有的traffic被包装后从port 23传递。


e.g.  在Putty中配置Forwared ports:   L18080 localhost:18080

这个规则可以通过访问本地的18080 port来访问对方的port 18080. 当然前提是要先建立到对方的ssh连接。

头像被屏蔽

禁止发言

发表于 2013-11-12 12:30 来自手机 |显示全部楼层
此文章由 valpa 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 valpa 所有!转贴必须注明作者、出处和本声明,并保持内容完整
jaszhou 发表于 2013-11-11 16:21
你说的这个有点儿复杂了,我不太清楚。 ssh tunnel可以用在这样的情况:

机器A 到 机器B只有port 23可以访 ...

谢谢啦,从你的描述中了解了tunnel在中间节点的转送其实是通过IP封装,只有在头和尾两个节点才是port forwarding.

评分

参与人数 1积分 +1 收起 理由
jaszhou + 1 正解

查看全部评分

Advertisement
Advertisement

发表于 2013-11-12 13:32 |显示全部楼层
此文章由 EE1 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 EE1 所有!转贴必须注明作者、出处和本声明,并保持内容完整
valpa 发表于 2013-11-8 16:49
laptop ->server1 -> proxy -> remote1 -> remote2坏境下用
[server1 ]$ ssh -L 0.0.0.0:9980::8180
是不 ...

只是你的server1多监听了一个端口,其他的没有影响,出现warning可能是因为你同时连了多个,猜的

发表于 2013-11-16 13:14 |显示全部楼层
此文章由 finger|regnif 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 finger|regnif 所有!转贴必须注明作者、出处和本声明,并保持内容完整
每次用 ssh -g -L port:targetIp:targetPort root@127.0.0.1 都会见到 bind: Address already in use.
但用起来没有发现有什么问题. 后来发现用 ssh -4 就好了 (Forces ssh to use IPv4 addresses only).
asd

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部