之前聊過暴露服務器到外網,比如有公網IP通過NAT或DMZ方式暴露機器到公網,那還多余搭建VPN干啥, 從某些角度看確實有相同的地方,比如都可以從外網訪問到內網機器,但是VPN更像是把外網的機器虛擬的放到內網中,這樣就可以訪問內網中的任何設備了.
如果服務端部署在公司機器上,那么有疫情就可以居家辦公了.
如果服務端部署在家庭網中樹莓派或閑置機器,也可以隨時訪問家中的設備了.如遠程養魚等.
今天使用的是Docker來搭建,需要基本的Docker使用知識,以下操作基于Debian的樹莓派,centos系統基本一樣,操作步驟超級簡單:
0.前提
需要在服務端提前安裝好Docker,如果不會操作也可以留言.
1.搭建VPN服務器
拉取鏡像
|
docker pull hwdsl2/ipsec-vpn-server:debian |
啟動一個容器實例
|
docker run --name ipsec-vpn-server --env-file /usr/local/etc/ipsecVpn.env --restart=always -p 500:500/udp -p 4500:4500/udp -d --privileged hwdsl2/ipsec-vpn-server:debian |
參數說明:
每行后邊的不要去掉,它表示一條命令沒結束,在下一行繼續
--name 表示啟動后實例的名稱
--env-file 表示配置文件的位置,可配置用戶名密碼,密鑰等,參考如下, VPN_IPSEC_PSK的長度至少20位
|
VPN_IPSEC_PSK=abcx1x2x3x4x5xx67890x VPN_USER=test VPN_PASSword=testvpn123 |
--restart 表示每次啟動docker服務后自動啟動這個實例
-p 表示把容器中的端口映射到主機的對應端口上
啟動后驗證是否啟動成功,可以用docker ps 命令, 也可以?.NETstat查看端口是否在監聽
更深入的操作參考
https://github.com/hwdsl2/docker-ipsec-vpn-server/blob/master/README-zh.md
2.防火墻開端口
執行如下兩行命令
|
ufw allow 500/udp comment 'docker的VPN使用' ufw allow 4500/udp comment 'docker的VPN使用' |
如果是CenterOs系列,則用Firewall-cmd開端口
3.客戶連連接
可以是mac,windows,linux,鴻蒙,Android,IOS等.
參考
https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients-zh.md
如果Mac之前連過無密鑰的VPN,請檢查文件/etc/ppp/options ,本次連接VPN請注釋掉 #l2tpnoipsec
當然如果內網中沒有公網IP可以通過frp映射相應端口到有公網IP的機器上 (如VPS)也一樣.參考<<沒有公網IP的機器如何能被外網訪問>>
擴展:
如果公司網絡限制訪問視頻音樂等網站,則連接VPN后即可突破此限制,且手機亦同理.
如果有國外的VPS, 那么科學上網也是一樣的道理
-----------------end-----------------






