当前的系统是 Ubuntu 24.04(Noble)或更新版本,pptpd 软件包已经被从官方源中彻底移除。因此:
无论你使用脚本还是手动方式,系统无法再通过 apt 安装 pptpd。
仅使用 L2TP(xl2tpd + PPP)
这是一个轻量方案,完全不启用 IPsec 加密层,只使用用户名+密码认证,适合局域网或测试用途。
**
⚠️ 缺点:无加密,数据是明文传输,建议仅限于安全环境或内网使用。
**
🧱 步骤一:安装必要软件
sudo apt update
sudo apt install xl2tpd ppp
📝 步骤二:配置 xl2tpd
sudo nano /etc/xl2tpd/xl2tpd.conf
内容如下
[global]
ipsec saref = no
[lns default]
ip range = 192.168.100.10-192.168.100.100
local ip = 192.168.100.1
require chap = yes
refuse pap = yes
require authentication = yes
name = l2tpd
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes
🛠 步骤三:配置 PPP 选项
sudo nano /etc/ppp/options.xl2tpd
添加内容如下
require-mschap-v2
ms-dns 8.8.8.8
ms-dns 1.1.1.1
asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
🔐 步骤四:配置用户名和密码
sudo nano /etc/ppp/chap-secrets
添加 用户米和密码 这里是vpnuser 密码是 vpnpassword ,
vpnuser l2tpd vpnpassword *
*: 这是一个通配符,表示该用户名可以从任何 IP 地址连接到服务器。在某些情况下,可以使用具体的 IP 地址或子网(如 192.168.1.0/24)来限制哪些 IP 地址可以使用该用户连接 VPN。
示例:
vpnuser l2tpd vpnpassword *:表示 vpnuser 这个用户可以使用用户名 vpnuser 和密码 vpnpassword 从任何地方(任意 IP)连接到 L2TP VPN 服务器。
vpnuser l2tpd vpnpassword 192.168.1.0/24:表示 vpnuser 只能从 192.168.1.0/24 子网内的设备连接。
关键点:
用户名(vpnuser)和 密码(vpnpassword)用于身份验证。
- 通配符允许从任何地方连接,但你也可以使用具体的 IP 或子网来限制访问。
l2tpd 是身份验证类型,通常表示 L2TP 协议。
如果你想限制某些 IP 地址只能使用特定用户名/密码连接,替换 * 为 IP 地址即可。
步骤五:启用服务并设置转发
sudo systemctl restart xl2tpd
sudo systemctl enable xl2tpd
开启转发:
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
设置 NAT(需要先查看你的网卡名字):输入 ip a
root@ip-172-31-18-141:~# ip a
2: enX0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc fq_codel state UP group default qlen 1000
link/ether 03:30:33:31:43:05 brd ff:ff:ff:ff:ff:ff
inet 172.91.19.141/20 metric 100 brd 172.91.91.255 scope global dynamic enX0
valid_lft 2180sec preferred_lft 2180sec
inet6 fG30::60:33DE:ee91:3f05/64 scope link
我这里 网卡名字 是 enX0,接下来输入以下命令
sudo systemctl restart xl2tpd
sudo systemctl enable xl2tpd
开启转发:
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
设置 NAT(我的出口网卡是 enX0)
sudo iptables -t nat -A POSTROUTING -o enX0 -j MASQUERADE