1.
准备与前提
在香港VPS(常见为Debian/Ubuntu/CentOS)上配置L2TP/IPsec前,请确认:1) 能以root或sudo权限操作;2) 服务商控制面板和系统防火墙允许UDP 500、UDP 4500端口以及ESP协议(IP协议50)或开启NAT-T;3) VPS有公网IP或映射策略。备份重要配置文件,准备一个强PSK(pre-shared key)和用户凭证。
2.
安装必要软件包(以Ubuntu为例)
执行:apt update && apt install -y strongswan xl2tpd ppp lsof。CentOS请使用yum/dnf安装 libreswan(或strongswan)、xl2tpd、ppp。确保安装的strongSwan/Libreswan版本支持nat-t。
3.
配置IPsec(/etc/ipsec.conf 和 /etc/ipsec.secrets)
示例ipsec.conf简要:config setup... conn L2TP-PSK { keyexchange=ikev1 authby=psk type=transport left=%any leftid=@server right=%any rightsubnet=0.0.0.0/0 ike=aes128-sha1-modp1024 esp=aes128-sha1; auto=add } 将PSK写入/etc/ipsec.secrets格式:%any : PSK "YourStrongPSK"。保存后运行ipsec restart或systemctl restart strongswan。
4.
配置xl2tpd(/etc/xl2tpd/xl2tpd.conf)
示例:[global] port = 1701 [lns default] ip range = 10.10.10.2-10.10.10.254 local ip = 10.10.10.1 require chap = yes refuse pap = yes require authentication = yes name = L2TPServer ppp debug = yes pppoptfile = /etc/ppp/options.xl2tpd length bit = yes。确保pppoptfile存在且设置正确。
5.
设置PPP选项与用户(/etc/ppp/options.xl2tpd 与 /etc/ppp/chap-secrets)
options.xl2tpd示例:ipcp-accept-local ipcp-accept-remote ms-dns 8.8.8.8 ms-dns 8.8.4.4 noccp auth mtu 1400 mru 1400 noccp defaultroute refuse-eap nodefaultroute name l2tpd debug。chap-secrets格式:username server password *。注意用户名与密码明文保存,权限设置为600。
6.
内核与路由:开启IP转发与iptables转发/NAT
启用转发:sysctl -w net.ipv4.ip_forward=1 并写入/etc/sysctl.conf。配置NAT(假设公网网卡为eth0):iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE;允许Forward链:iptables -A FORWARD -s 10.10.10.0/24 -j ACCEPT;iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT。若使用nftables或云防火墙,请相应添加规则并保存。
7.
开放服务端端口与检查主机防火墙
确保VPS控制面板与系统防火墙放行:UDP 500、UDP 4500、UDP 1701(L2TP),并允许ESP协议(50)。大多数云平台需在安全组/防火墙规则中添加对应项。可用命令ss -lunp | grep -E "500|4500|1701" 检查监听。
8.
启动服务并检查状态
依次启动:systemctl restart strongswan ipsec (或 libreswan)、systemctl restart xl2tpd。使用ipsec statusall查看IPsec SA信息,journalctl -u xl2tpd -f和tail -f /var/log/syslog观察连接日志。若出现“no acceptable proposals”类错误,检查ike/esp加密算法匹配。
9.
客户端配置:Windows 10/11
步骤:控制面板→网络和共享中心→设置新连接或网络→连接到工作区→使用我的Internet连接(VPN)。VPN类型选择L2TP/IPsec带预共享密钥,输入服务器地址、用户名、密码、PSK。高级选项里设置使用证书或PSK(选择PSK)。若显示错误789/812,检查防火墙或DDNS、PSK一致性。
10.
客户端配置:macOS / iOS / Android
macOS:系统偏好设置→网络→添加VPN→类型选择L2TP over IPsec,输入服务器、账户、密码、机器证书或共享密钥。iOS设置类似。Android部分厂商(旧系统)原生支持L2TP/IPsec PSK,Android 9+ 可能对明文密码和加密选项有不同表现,建议使用OpenVPN或IKEv2作为备选。
11.
常见故障与排查要点
错误要点:1) 无法建立IPsec(检查UDP 500/4500、ESP、psk、算法);2) 建立IPsec但L2TP无法协商(检查1701端口、xl2tpd日志、ppp认证);3) 连接后无流量(检查NAT/iptables、IP转发,客户端默认路由是否被推送);4) Windows提示“原因:未知网络”或错误809/800,尝试重启IPsec服务并检查路由策略。
12.
故障命令与具体排查示例
常用命令:ipsec statusall(查看IKE/ESP协商)、journalctl -u xl2tpd -f(L2TP日志)、tail -f /var/log/syslog(PPP日志)、tcpdump -n -i eth0 udp port 500 or 4500 or 1701(抓包确认数据包到达)。如果看到IKE报错“no shared key”或“AUTH_FAILED”,核对/etc/ipsec.secrets与客户端PSK一致。
13.
安全与优化建议
不要使用弱PSK或明文密码,限制登录用户,使用iptables限制管理端口来源IP。定期更新strongSwan/XL2TPD并设置日志轮转。若对抗封锁或丢包严重,可考虑将VPN改为IKEv2或WireGuard以提高稳定性。
14.
问:香港服务器上L2TP常见不能连接的首要原因是什么?
答:多数情况是防火墙或云平台未放行UDP 500/4500或ESP协议被阻断,或PSK/加密算法不匹配。建议先检查端口与协议通达,然后查看ipsec与xl2tpd日志。
15.
问:连上后没有互联网访问怎么办?
答:通常是没有启用IP转发或未配置NAT。检查sysctl net.ipv4.ip_forward=1,确认iptables有MASQUERADE规则并允许转发。另外确认ppp options中没有禁止defaultroute,客户端是否接收到正确路由。
16.
问:为什么Windows客户端总报错789/812,如何处理?
答:错误789多为IPsec协商失败(PSK或IKE设置问题),812为访问被拒。解决方法:核对PSK、加密算法,确保服务器和客户端使用IKEv1(L2TP常用),开放UDP 500/4500,检查Windows服务“IPsec Policy Agent”和“RAS Connection Manager”是否运行。
来源:香港服务器l2tp配置详解与常见故障排查方法