收藏官网首页
查看: 13248|回复: 1

使用autossh隧道搭建私服,访问内网家里的服务器

36

主题

69

帖子

265

积分

中级会员

Rank: 3Rank: 3

积分
265
跳转到指定楼层
楼主
发表于 2015-10-17 18:41:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
汉枫LPB120模块
本帖最后由 feel 于 2015-10-17 18:43 编辑

应同事alex的要求:他想实现远程登入家里的局域网服务器。
情况是这样的。家里有台服务器(笔记本即可)。一台外网服务器。
想通过在公司远程登入家里的那台局域网服务器。

开始我的想法是:搭建openvpn 。但是毕竟不是什么人都能搭建成功,而且还有很多缺点。 操作复杂
一个周末的下午我突然想起可以通过隧道反向代理出去。也是一个非常不错的方法。-->(这个想法来自我现在的上google 的方式)
理论基础:autossh 是一个用来启动 ssh 并进行监控的程序,可在需要时重启 ssh,例如程序挂掉或者是网络出现问题。其灵感和机制来自于 rstunnel  (Reliable SSH Tunnel). autossh 1.2 的方法已经改变:autossh 使用 ssh 来构造一个 ssh 重定向循环(本地到远程和远程到本地),然后发送测试数据并获得返回结果。

实验环境: 一台外网服务器。
                  一台局域网服务器(我这里使用虚拟机)

外网机器ip (这里设置为google)***
虚拟机ip查看 为  192.168.1.100   
  1. [root@centos ~]# ifconfig |grep "inet addr"
  2.           inet addr:192.168.1.100  Bcast:192.168.1.255  Mask:255.255.255.0
  3.           inet addr:127.0.0.1  Mask:255.0.0.0
复制代码

编写 脚本: 该脚本可以根据你自己的需求进行优化和编写
  1. [root@centos ~]# cat a.sh
  2. #!/bin/bash
  3. autossh -M 5678 -NR 19999:localhost:22 feel@google
复制代码
外网服务器 打开端口 19999
添加防火墙规则:
  1. -A INPUT -p tcp -m state --state NEW -m tcp --dport 19999 -j ACCEPT
复制代码

*******
** 靠,写到一半的时候家里断网了,什么情况???????
*******
之后重启防火墙
  1. [feel@cloud ~]$ sudo service  iptables  restart
  2. iptables: Setting chains to policy ACCEPT: filter nat      [  OK  ]
  3. iptables: Flushing firewall rules:                         [  OK  ]
  4. iptables: Unloading modules:                               [  OK  ]
  5. iptables: Applying firewall rules:                         [  OK  ]
复制代码

在虚拟机那台机器上执行刚才的脚本
  1. [root@centos ~]# sh a.sh
  2. feel@google's password:
复制代码

在远程机器上查看端口,可知已经被监听了
  1. [feel@cloud ~]$ sudo  netstat  -tanpl |grep 19999
  2. tcp        0      0 127.0.0.1:19999             0.0.0.0:*                   LISTEN      6109/sshd           
  3. tcp        0      0 ::1:19999                   :::*                        LISTEN      6109/sshd     
复制代码


那么就这样就成功了。我们可以向登入远程机器的方式登入我们局域网那台服务器了
  1. [feel@cloud ~]$ ssh  -p  19999   root@localhost
  2. root@localhost's password:
  3. Last login: Sun Oct 18 01:52:57 2015 from localhost
  4. [root@centos ~]# pwd
  5. /root
  6. [root@centos ~]# ifconfig
  7. eth0      Link encap:Ethernet  HWaddr 00:0C:29:F0:EB:AE  
  8.           inet addr:192.168.1.100  Bcast:192.168.1.255  Mask:255.255.255.0
  9.           inet6 addr: fe80::20c:29ff:fef0:ebae/64 Scope:Link
  10.           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
  11.           RX packets:10482 errors:0 dropped:0 overruns:0 frame:0
  12.           TX packets:5908 errors:0 dropped:0 overruns:0 carrier:0
  13.           collisions:0 txqueuelen:1000
  14.           RX bytes:10781447 (10.2 MiB)  TX bytes:526988 (514.6 KiB)
复制代码

至此使用成功!

56

主题

144

帖子

1066

积分

金牌会员

Rank: 6Rank: 6

积分
1066
QQ
沙发
发表于 2015-10-17 21:38:11 | 只看该作者
feel 好厉害
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表