查看ssh帮助文档是发现有个-w的参数,说明如下:
可以建立“point-to-point”的隧道,类似于pptp的作用
假设现在有北京和上网两个组网,内外网IP如下:

准备工作:
服务端需要开启隧道参数(上图中的上海节点)
登录北京的机器操作:
TCPKeepAlive ServerAliveInterval 两个参数是为了保持连接,防止网络抖动是ssh隧道断掉
-f表示后台运行
-w 10:10 表示两边用于隧道通信的网卡名字为 tun10 ,如果0:0,那两边网卡就是tun0
注意:不要混淆了Linux下面名为tunl0的预设Tunnel界面,请用 ip addr show 命令检查。
执行完成这一步之后连边会同时增加一个tun10名的网卡
此时隧道已经建立,但是两边暂时还不能通信,需要制定两边网卡的ip和启动网卡
执行完成上面命令之后 两边已经可以相互ping通了,
如果需要两个子网通信需要指定路由和利用iptables做snat
例如上海访问北京:
执行完成后在上海的子网 已经可以和北京的子网内其他机器通信了
如果需要北京子网也访问上海子网的话
根据上面修改即可;
ssh 隧道还有个有点就是只需要服务端有公网IP就行,客户端不需要有公网IP,只要可以访问服务端的公网IP即可