SSH tunnel 设置

  • Post author:
  • Post category:其他


目标:

比我本地电脑开发了1个程序,需要让别人调用,但是我本地电脑没有外网地址,如何让别人能访问到?

假设我有另外1台机器具有外网地址,可不可以通过这台机器做个birdge 把我的程序开放出去?这样就不用每次我改了程序后一定要发布到这个服务器,方便测试?

答案是可以的。

利用 ssh Tunnel技术可以。

方法:

假设本地机器地址 192.168.1.1 ,启动了1个web server,有个程序 http://192.168.1.1/info.php

而且我同时有个外网地址机器(170.235.154.72),8080闲置,但是可用;那么

1)在外网地址机器上编辑配置文件 /etc/ssh/sshd_config中修改GatewayPorts no为GatewayPorts yes ,

/etc/init.d/sshd restart

2)在本地机器 192.168.1.1 (假设为linux),键入命令:

ssh -R 8080:localhost:80 root@170.235.154.72

键入170.235.154.72的root用户密码, 那么这个tunnel就建了了。linux在192.168.1.1提示符会变换成 170.235.154.72提示符,当然,如果此时,你运行logout,那么这个通道会终止。

好了,这时候,在任一机器上访问 http://170.235.154.72:8080/info.php,效果和 http://192.168.1.1/info.php 一样。

这既是神奇的SSH Tunnel !

注意事项:

  • 这里注意自己的电脑得支持 ssh协议,得有ssh命令,linux机器都有。那么Windows机器呢?安装1个SSH工具就可以了,一般这些工具都包含ssh.exe命令行。当然 windows下可以考虑frp软件方案。其实linux也有frp版,不用这个ssh也行。
  • 不过这个,对于要被穿透的源机器,它ip出口地址,最好是固定的,比如在办公室内部的机器,虽然办公室也不是固定的ip出口,但是相对于手机这样的移动设备,它的上网ip相对来说算是固定的了(几天变一次)。
  • 如果是像手机这样的,安装了移动4g卡的设备,想做ssh tunnel,是比较困难的,出口ip几乎一小时一变,这个,就要用专门的像向日葵一类的工具了。



版权声明:本文为taikeqi原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。