手动?
虽然 L2TP 已经是一个上古的 VPN 协议了,但是总会有连接这种服务的需求。Linux 上似乎除了 OpenWrt 这种侧重于路由器功能的发行版并没有傻瓜级的客户端,一般用的是命令行工具 xL2tpd。这个需要进行一些设置,因此我在这里分享一下手动连接并设置路由的过程。
准备
安装 xL2TPd
|
|
拥有一个使用 L2TP (without IPsec) 连接协议的 VPN
由于目前我使用的是不带 IPsec 的,所以暂时不会提及 strongSwan 这些 IPsec 相关内容,以后用到时我会找时间补。
步骤
设置 xL2tpd,添加连接
向 /etc/xl2tpd/xl2tpd.conf
里添加如下模板的内容:
|
|
其中 server_address 为 VPN 的地址,entry_name 和 file_name 按照自己的实际情况命名即可。
设置 PPP 连接
根据上一步设置的 file_name,向 /etc/ppp/{file_name}
里添加如下模板的内容:
|
|
name 和 password 字段的内容需要在两端加引号。
重载配置
|
|
连接 VPN
根据之前的结果,执行如下命令即可连接 VPN:
|
|
运行后可以查看 ip link
和 ip address
,如果出现了 ppp0 接口且有地址说明连接成功。
(OpenWrt)设置接口及防火墙
打开 OpenWrt 的 luci 界面,进入「网络」-「接口」,点击「添加新接口…」。「新接口的协议」选择「不配置协议」;「包括以下接口」选择此前连接时新出现的接口(例如 ppp0),点击「提交」。
然后进入「网络」-「防火墙」,在下面的「区域」部分点击「添加」,勾选 「IP 动态伪装」;「覆盖网络」选择上一步创建的接口;「允许转发到目标区域」和 「允许从源区域转发」都选择 lan,点击「保存并应用」。
设置开机自启
向 /etc/rc.local
里添加如下内容:
|
|
由于需要先有网络连接才能开启 VPN,这里设置了 5 秒的启动等待时间,可以按照自己实际情况修改。
一些发行版可能没有这个文件,可以参考我的这篇文章。