一、安全層選取錯誤
1、L2TP協議需要在PPTP協議的基礎上再添加一個安全層(Security Layer)協議,常用的安全層協議有PAP、CHAP、MSCHAP V1和MSCHAP V2等,但是在實際使用中要根據服務器端的配置情況來選擇。如果安全層選取錯誤,會導致連接嘗試失敗。
2、例如,服務器端配置為PAP,則客戶端也需要選擇PAP才能夠連接成功。如果客戶端選擇了其他的安全層協議,則連接嘗試會失敗。這時候,只需要將安全層的選取與服務器端保持一致即可。
3、以下是L2TP連接中安全層的選取示例代碼:
# 客戶端配置
ipsec.auto = add
conn L2TP
keyexchange = ikev1
type = transport
leftauth = psk
left = 客戶端公網IP地址
leftprotoport = 17/1701
right = 服務器端公網IP地址
rightauth = psk
rightprotoport = 17/1701
auto = route
authby = secret
# 注意以下值需要根據服務器端的設置來選擇
phase2 = pap
phase2auth = yes
phase2alg = sha1
phase2key = 0123456789abcdef0123456789abcdef
二、防火牆屏蔽了端口
1、L2TP連接需要使用UDP端口進行通信,如果防火牆屏蔽了UDP的端口,也會導致連接嘗試失敗的問題。這時候,需要在防火牆中打開相應端口才能夠連接成功。
2、UDP端口號為1701,需要在防火牆中打開該端口的UDP通信通道。下面是CentOS 7防火牆打開L2TP連接所需要的命令:
firewall-cmd --permanent --zone=public --add-port=1701/udp firewall-cmd --reload
三、IPsec配置錯誤
1、L2TP連接需要使用IPsec進行加密和認證,IPsec的配置錯誤也會導致連接嘗試失敗的問題。IPsec配置主要包括PSK和參數的配置。
2、PSK是預共享密鑰(Pre-Shared Key),是加密使用的密鑰。客戶端和服務器端需要使用同一個PSK才能夠互相認證和加密。參數的配置包括加密算法、哈希算法和Diffie-Hellman群等。客戶端和服務器端需要設置相同的參數才能夠互相匹配。
3、以下是L2TP連接中IPsec的配置示例代碼:
# 客戶端配置
ipsec.auto = add
conn L2TP
keyexchange = ikev1
type = transport
leftauth = psk
left = 客戶端公網IP地址
leftprotoport = 17/1701
right = 服務器端公網IP地址
rightauth = psk
rightprotoport = 17/1701
auto = route
authby = secret
phase2 = pap
phase2auth = yes
phase2alg = sha1
phase2key = 0123456789abcdef0123456789abcdef
# PSK配置
ike = aes256-sha1-modp1024
phase1 = 3des-sha1-modp1024
keyingtries = 3
ikelifetime = 8h
salifetime = 1h
aggressive = no
dpddelay = 30
dpdtimeout = 120
dpdaction = restart
auto = route
leftid = @客戶端ID
rightid = @服務器端ID
leftsubnet = 0.0.0.0/0
rightsubnet = 0.0.0.0/0
leftsourceip = %config4
rightsourceip = 192.168.10.0/24
mark = 0x6d65
# 參數配置
ikev2 = never
keyexchange = ikev1
forceencaps = yes
esp = 3des-sha1
ike = 3des-sha1-modp1024
ikelifetime = 8h
salifetime = 1h
type = transport
四、客戶端操作系統問題
1、L2TP連接在不同的操作系統中可能會有不同的支持情況,從而導致連接嘗試失敗。例如,有些Windows系統版本中並沒有內置L2TP連接的支持。
2、如果是操作系統版本問題,可以考慮升級操作系統或者使用第三方的L2TP客戶端軟件來連接。
3、以下是在Windows系統中連接L2TP的示例代碼:
# 打開控制面板 -> 網絡和共享中心 -> 設置新連接或網絡 -> 連接到工作區 # 選擇「使用我的 Internet 連接(VPN)」 # 輸入服務器地址,例如:11.22.33.44 # 連接名稱可以任意填寫 # 用戶名和密碼需要與服務器端保持一致
五、服務器端配置錯誤
1、L2TP連接需要服務器端和客戶端的配合,如果服務器端的配置有誤,也會導致連接嘗試失敗的問題。
2、服務器端的配置主要包括IPsec配置和L2TP配置。IPsec配置包括PSK和參數的配置,與客戶端需要保持一致。L2TP配置包括L2TP服務的啟動以及用戶的添加和認證等。
3、以下是在Ubuntu中配置L2TP服務的示例代碼:
# 安裝L2TP服務
apt-get update
apt-get install xl2tpd
# 配置PSK和參數
vim /etc/ipsec.secrets
%any %any : PSK "0123456789abcdef0123456789abcdef"
vim /etc/ipsec.conf
conn L2TP-PSK
authby=secret
auto=add
ike=3des-sha1-modp1024
esp=3des-sha1
forceencaps=yes
pfs=no
rekey=no
type=transport
left=服務器端公網IP地址
right=%any
leftprotoport=17/1701
rightprotoport=17/1701
# 配置L2TP服務並添加用戶
vim /etc/xl2tpd/xl2tpd.conf
[global]
ipsec saref = yes
[lac vpn-connection]
lns = 服務器端公網IP地址
ppp debug = yes
pppoptfile = /etc/ppp/options.l2tpd.client
vim /etc/ppp/options.l2tpd.client
require-pap
refuse-chap
require-mschap-v2
require-mppe-128
# 加密使用的密鑰,需要與客戶端保持一致
ms-dns 8.8.8.8
ms-dns 8.8.4.4
asyncmap 0
auth
crtscts
lock
hide-password
modem
# 添加認證用戶
vim /etc/ppp/chap-secrets
# 格式:用戶名 服務名 密碼 IP地址
test * testpassword *
六、總結
本文從安全層選取錯誤、防火牆屏蔽了端口、IPsec配置錯誤、客戶端操作系統問題、服務器端配置錯誤等多個方面對L2TP連接嘗試失敗的原因進行了詳細的闡述,並提供了相應的解決辦法和示例代碼。希望本文對大家理解和解決L2TP連接問題有所幫助。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/155480.html
微信掃一掃
支付寶掃一掃