檢視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即可