Docker搭建L2TP-VPN伺服器
阿新 • • 發佈:2018-11-10
轉自:https://my.oschina.net/u/3269534/blog/2236595
Docker搭建L2TP-VPN伺服器
[TOC]
一、VPN伺服器端配置
(1)首先需要在 Docker 主機上載入 IPsec af_key 核心模組:
sudo modprobe af_key
(2)使用本映象建立一個新的 Docker 容器 (將 ./vpn.env 替換為你自己的 env 檔案):
VPN_IPSEC_PSK=預共享金鑰
VPN_USER=使用者名稱
VPN_PASSWORD=密碼
(3)建立一個新的 Docker 容器 (將 ./vpn.env
替換為你自己的 env
檔案)
# 安裝docker curl -sSL https://get.daocloud.io/docker | sh # 指令碼安裝(方式一) # 開啟docker同時自啟動 systemctl start docker systemctl enable docker # 關閉防火牆和禁止自啟動 systemctl stop firewalld systemctl disable firewalld # 拉取映象同時建立VPN伺服器容器 docker run \ --name ipsec-vpn-server \ --env-file ./vpn.env \ --restart=always \ -p 500:500/udp \ -p 4500:4500/udp \ -v /lib/modules:/lib/modules:ro \ -d --privileged \ hwdsl2/ipsec-vpn-server
(4)修改VPN伺服器端配置
# 進入VPN伺服器
docker exec -it ipsec-vpn-server /bin/bash
編輯 VPN 伺服器上的 /etc/ipsec.conf
。找到 phase2alg=...
一行並在末尾加上 ,aes256-sha2_256
字樣。然後找到 sha2-truncbug=yes
並將它替換為 sha2-truncbug=no
。儲存修改並執行 service ipsec restart
。
# 退出VPN伺服器容器 exit # 重啟VPN伺服器容器 docker restart ipsec-vpn-server
(5)或者我已經封裝好的包括伺服器中安裝了nano編輯器,預共享金鑰、使用者名稱和密碼都是guxiaotu
docker run \
--name ipsec-vpn-server \
--restart=always \
-p 500:500/udp \
-p 4500:4500/udp \
-v /lib/modules:/lib/modules:ro \
-d --privileged \
guxiaotu/l2tp-vpn
二、Windows 10(1803)客戶端配置
(1)解決 VPN 伺服器 和/或 客戶端與 NAT (比如家用路由器)的相容問題。修改登錄檔管理員許可權開啟CMD執行以下命令,或者下載.reg檔案,管理員身份執行
REG ADD HKLM\SYSTEM\CurrentControlSet\Services\PolicyAgent /v AssumeUDPEncapsulationContextOnSendRule /t REG_DWORD /d 0x2 /f
(2)另外,某些個別的 Windows 系統配置禁用了 IPsec 加密,此時也會導致連線失敗。要重新啟用它,可以執行以下命令,或者下載.reg檔案,管理員身份執行
REG ADD HKLM\SYSTEM\CurrentControlSet\Services\IPSec /v AssumeUDPEncapsulationContextOnSendRule /t REG_DWORD /d 0x2 /f
==重啟計算機後開始配置本地VPN連線==
Windows 10 and 8.x
- 右鍵單擊系統托盤中的無線/網路圖示。
- 選擇 開啟網路與共享中心。
- 單擊 設定新的連線或網路。
- 選擇 連線到工作區,然後單擊 下一步。
- 單擊 使用我的Internet連線 (VPN)。
- 在 Internet地址 欄位中輸入
你的 VPN 伺服器 IP
。 - 在 目標名稱 欄位中輸入任意內容。單擊 建立。
- 返回 網路與共享中心。單擊左側的 更改介面卡設定。
- 右鍵單擊新建立的 VPN 連線,並選擇 屬性。
- 單擊 安全 選項卡,從 VPN 型別 下拉選單中選擇 "使用 IPsec 的第 2 層隧道協議 (L2TP/IPSec)"。
- 單擊 允許使用這些協議。確保選中 "質詢握手身份驗證協議 (CHAP)" 複選框。
- 單擊 高階設定 按鈕。
- 單擊 使用預共享金鑰作身份驗證 並在 金鑰 欄位中輸入
你的 VPN IPsec PSK
。 - 單擊 確定 關閉 高階設定。
- 單擊 確定 儲存 VPN 連線的詳細資訊。