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客户端更新顺利执行!

     

  • 相关阅读:
    20.GC日志详解及日志分析工具
    19.JVM调优工具锦囊
    两个页面的传参(转自博客园的春哥也编程)
    纯js实现背景图片切换
    关于引用类型用ref传参的问题
    C++ return
    C++内存管理
    Chrome插件开发一(配置文件)
    C++对象传递
    const 与 #define 的比较
  • 原文地址:https://www.cnblogs.com/wellbye/p/4792701.html
Copyright © 2011-2022 走看看