码迷,mamicode.com
首页 > 其他好文 > 详细

ssh远程转发使远程主机在所有ip上监听

时间:2015-09-08 19:56:10      阅读:2315      评论:0      收藏:0      [点我收藏+]

标签:

起因:突然一夜之间电信扰拨号ip全变内网地址了,这样即使用了动态域名,绑定的也不是本机ip,外部无法访问了。虽然打电话找电信反映说是可以改回来,但必须先解决眼前的问题,访问内网服务器上的svn仓库。

办法:由于还有一台在公网上的云主机,想到可通过它中转,只要内网主机先与云主机建立连接,这正好可以用ssh的远程转发功能,命令如下:

ssh -gN -R 3690:0.0.0.0:3690 -o ServerAliveInterval=60 wellbye@ali

结果连接是建立了,但是此时访问云主机3690端口却连不上,上去查看端口状态:

[wellbye@AY130622174524343529Z:~]netstat -ln -A inet

输出如下:

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address           Foreign Address         State      

tcp        0      0 127.0.0.1:3690            0.0.0.0:*               LISTEN     

tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN

……

显示3690虽然在监听,但只在127.0.0.1上有效,因此无法接受外部连接。

可之前已经加上了-g参数,在ssh手册上说过此选项将使端口绑定在外部ip上,以使其它机器可以连接,但为何这里无效呢?

google得知答案(https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=228064):

原来-g只是对本地转发有效,要使远程转发也使用外部ip,必须修改远程主机上的sshd_config,增加

GatewayPorts yes

然后重启ssh服务即可。

再次建立转发并查看连接,发现已经监听的是0.0.0.0:3690,打开svn客户端更新顺利执行!

 

ssh远程转发使远程主机在所有ip上监听

标签:

原文地址:http://www.cnblogs.com/wellbye/p/4792701.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!