需求與現狀
如果要遠程訪問內網的資源,如電腦,NAS,路由器等等,目前的做法大概有下面幾種:
- 在路由器上面進行ARP綁定和端口映射。這種方式操作簡單方便,但是缺點也不少,比如不安全,無法突破端口封鎖(比如80,443,445)等等;
- 搭建VPN,將多個機器組成一個虛擬局域網。這種方法效果最好,但是門檻要高點。目前常用的VPN協議有L2TP/PPTP,不出意外的話家庭環境中運營商都把這些協議的端口屏蔽了。SoftEther是一個VPN客戶端和服務器軟件,支持多種VPN協議,功能強大,可以方便地在各種網絡環境中使用。
當然,上述方法都需要一個公網IP地址,IPV4或者V6都可以,動態IP的最好配合DDNS使用。
SoftEther基本概念
略,反正你也不會關心,一兩句也說不清,需要的自己去看文檔吧。
安裝准備
https://www.softether.org,可能需要翻牆,翻不了牆的可以從其他網站下載。
SoftEther有客戶端和服務器軟件,支持多種平台。
SoftEther需要安裝服務器來配合客戶端實現VPN連接。服務器可以安裝在路由器或者服務器或者任意的電腦上面,根據自己的環境下載對應的版本並安裝。
SoftEther的客戶端目前只有桌面版本的,移動平台官方給出的方案是使用安卓或者蘋果的內置客戶端,但是由於上面所說的原因,在國內的網絡環境中大概率無法使用。
一般的家庭網絡環境大概如下圖所示,下面將介紹如何使用SoftEther來搭建VPN實現對內網資源的訪問。

我們可以將服務器安裝在路由器(如果你的路由器支持的話)或者內網的其他任意一台設備上面。簡單起見,下面使用Windows版本的為例,一路Next 。

安裝完畢,打開管理工具,連接到服務器。

初次連接需要設置管理密碼。

連接后,會彈出安裝向導,這兒我們直接關掉,后面我們自己配置方案。

然后進入主界面,這兒我們按照需要配置監聽端口,不需要的端口可以刪掉。接着在路由器上面設置端口映射和ARP綁定,將VPN Server的IP固定,然后把外網的監聽端口映射Server的監聽端口上面。

至於動態DNS,可以使用它自帶的,也可以關閉,自己去買個域名然后映射下,阿里雲的某些域名超級便宜。然后是加密,可以配置安全證書。
上面工作准備完畢后,下面就可以開始配置了,根據自己的需要看哪種方案適合。
PC-PC LAN
這種方案的網絡拓撲如圖,非常簡單。客戶端通過VPN隧道連接到服務器,然后客戶端之間就處於同一個虛擬局域網之中了。

建立一個虛擬HUB,比如PC-PC,然后添加用戶。如果要給連接的客戶端自動分配IP,可以打開虛擬DHCP服務器,否則需要手動設置IP地址,或者需要其他的DHCP服務器。客戶端連接到這個HUB之后,就可以通信了,是不是非常簡單?

PC-LAN
如果需要訪問某些設備,但是這些設備無法安裝客戶端,或者不想給每一個設備都安裝客戶端,可以搭建一個PC-LAN的VPN,遠程客戶端直接連接到這個服務器所在局域網,這時候可以使用本地網橋將虛擬HUB和本地網絡關聯起來。
建立一個PC-LAN的HUB,然后在本地網橋設置中,選中這個HUB和連接目標局域網的網卡,創建網橋。有條件的可以使用一塊專用網卡來提高效率。

這樣VPN客戶端就可以訪問局域網中的設備了。一般地,局域網中的路由器都自帶DHCP,所以這個HUB不需要打開NAT和DHCP功能,路由器會給VPN客戶端自動分配IP。
客戶端路由設置
客戶端安裝完畢打開后,會創建一個本地網卡。默認情況下,客戶端連接到服務器后,本地的網絡流量會全部從VPN連接走(翻牆的原理就是這樣),這可能並不是我們希望的。如果是訪問外網的話,我們希望還是從原來的WAN連接直接出去,訪問內網的話再從VPN走。

上述目的是可以達到的。首先,修改網卡設置,將VPN網卡對應的網絡躍點數改大。

接着,建立新的VPN連接,高級設置中勾選不要調整路由表即可。

三層交換機
有空再寫。