一、安全層選取錯誤
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-hant/n/155480.html