zoukankan      html  css  js  c++  java
  • ssh远程转发使远程主机在所有ip上监听

    起因:突然一夜之间电信扰拨号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客户端更新顺利执行!

     

  • 相关阅读:
    如何学习自动化测试?
    Jenkins中,执行py文件,python找包的路径(找不到自定义包的问题解决)
    数据库的架构设计
    iOS密码框的实现方式
    UISearchController 的大坑
    <第三方>TGRefreshO按照QQ的刷新方式下拉刷新
    关于项目颜色和字体的宏定义
    <iOS 导航栏>第一节:导航栏透明方法实现代码
    <iOS小技巧>UIview指定设置控件圆角
    关于这次KPL春季决赛的感悟
  • 原文地址:https://www.cnblogs.com/wellbye/p/4792701.html
Copyright © 2011-2022 走看看