feel 发表于 2015-10-17 18:41:04

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

本帖最后由 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   # ifconfig |grep "inet addr"
          inet addr:192.168.1.100Bcast:192.168.1.255Mask:255.255.255.0
          inet addr:127.0.0.1Mask:255.0.0.0
编写 脚本: 该脚本可以根据你自己的需求进行优化和编写# cat a.sh
#!/bin/bash
autossh -M 5678 -NR 19999:localhost:22 feel@google外网服务器 打开端口 19999
添加防火墙规则:-A INPUT -p tcp -m state --state NEW -m tcp --dport 19999 -j ACCEPT
********* 靠,写到一半的时候家里断网了,什么情况???????*******之后重启防火墙$ sudo serviceiptablesrestart
iptables: Setting chains to policy ACCEPT: filter nat      
iptables: Flushing firewall rules:                        
iptables: Unloading modules:                              
iptables: Applying firewall rules:                        
在虚拟机那台机器上执行刚才的脚本# sh a.sh
feel@google's password:
在远程机器上查看端口,可知已经被监听了$ sudonetstat-tanpl |grep 19999
tcp      0      0 127.0.0.1:19999             0.0.0.0:*                   LISTEN      6109/sshd         
tcp      0      0 ::1:19999                   :::*                        LISTEN      6109/sshd   

那么就这样就成功了。我们可以向登入远程机器的方式登入我们局域网那台服务器了$ ssh-p19999   root@localhost
root@localhost's password:
Last login: Sun Oct 18 01:52:57 2015 from localhost
# pwd
/root
# ifconfig
eth0      Link encap:EthernetHWaddr 00:0C:29:F0:EB:AE
          inet addr:192.168.1.100Bcast:192.168.1.255Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fef0:ebae/64 Scope:Link
          UP BROADCAST RUNNING MULTICASTMTU:1500Metric:1
          RX packets:10482 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5908 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:10781447 (10.2 MiB)TX bytes:526988 (514.6 KiB)
至此使用成功!

alex.lin 发表于 2015-10-17 21:38:11

feel 好厉害
页: [1]
查看完整版本: 使用autossh隧道搭建私服,访问内网家里的服务器