树莓派连接 L2TP VPN 教程、Raspberry/BIAN 连接 VPN

大中华局域网实在太蛋疼了,导致我想用小派上个 Google 都不得不翻墙,但是网上一搜大把是用述莓派搭建 VPN 的教程,却没有树莓派如何连接 VPN 的教程,研究半天,各种 GUI 工具更本不好使,最直接的方法还是命令行配置,又轻量,又有效率。
一、安装必要软件 xl2tpd,这个软件即可以作为 L2TP 的服务端,又可以作为客户端,好软件啊。。。

sudo apt-get install xl2tpd

二、配置 xl2tpd
配置xl2tpd,需要修改它的配置文件,如下所示:
命令 sudo vim /etc/xl2tpd/xl2tpd.conf
修改内容为:

[global]
port = 1701
access control = no

[lac HelloMac] ;HelloMac 是你的服务名称,自己设定一个,连接的时候需要用到,区分大小写
lns = vpn.hellomac.com.cn ;此处输入你的 VPN 服务器地址
redial = yes
redial timeout = 15
max redials = 5
require chap = yes ;使用使用chap质询握手认证协议
refuse pap = yes
require authentication = yes
name = name ;你的 VPN 用户名
pppoptfile = /etc/ppp/options.l2tpd.hellomac
ppp debug = no

接下来配置 ppoptfile,如下所示:

命令

sudo vim /etc/ppp/options.l2tpd.hellomac

修改内容为:

asyncmap 0
noauth
crtscts
lock
hide-password
modem
netmask 255.255.255.0
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
ipcp-accept-local
ipcp-accept-remote
noipx

最后配置 chap 认证的用户名和密码
命令

sudo vi /etc/ppp/chap-secrets

修改内容为:

# Secrets for authentication using CHAP
# client server secret IP addresses
name * password *

其中 name = 你的 VPN 用户名,password = 你的 VPN 密码
好了,配置到这里就完成了,现在开始连接:
首先启动 xl2tpd 服务:

sudo service xl2tpd start

sudo /etc/init.d/xl2tpd start

然后使用如下命令连接 VPN:

sudo -u root -H sh -c "echo 'c HelloMac' > /var/run/xl2tpd/l2tp-control"

使用这个命令命令并不会提示连接是否成功,那么我们需要用 ifconfig 来验证:
输入 ifconfig 后查看结果中是否有 ppp0,如果有,则连接成功,如果没有,检查你的 xl2tpd 服务是否正常。
最后一步,当 ifconfig 中出现 ppp0 时,说明 VPN 拨号已经成功,但是你上网却发现还是在大中华局域网里,所以需要最后一步,更改你的默认网关为 VPN,这样系统系统就会从 VPN 连接数据了,输入命令:

sudo ip route replace default dev ppp0

打开浏览器,赶紧去墙外看看祖国是多么的繁荣娼盛吧。
要断开 VPN 连接,输入命令:

sudo -u root -H sh -c "echo 'd HelloMac' > /var/run/xl2tpd/l2tp-control"

后记:
为了更加方便,我写了两个超简单的脚本用于连接和断开,需要的同志自己复制吧,根据实际情况简单修改即可:
连接 VPN 脚本:

#!/bin/sh
#
sudo service xl2tpd restart
sudo -u root -H sh -c "echo 'c HelloMac' > /var/run/xl2tpd/l2tp-control"
sleep 5
echo "VPN Conecting..."
sleep 5
echo "Waiting..."
sleep 10
sudo ip route replace default dev ppp0
echo "VPN Connected"

断开 VPN 脚本:

#!/bin/sh
#
sudo -u root -H sh -c "echo 'd HelloMac' > /var/run/xl2tpd/l2tp-control"
sudo service xl2tpd stop
echo "VPN Disconected"

—————————————
2015年1月15日更新:
昨天这样配置后发现一个问题,就是当 VPN 断线自动重拨以后,默认路由不会增加,所以只要断线,就没办法继续翻墙了,必须手动添加一次默认路由,这样就显得很麻烦,历经千辛万苦终于在大神lfw19891101的博客找到解决办法,在 /etc/ppp/options.l2tpd.hellomac 文件中添加关键配置命令 replacedefaultroute,同时更具大神指引更新了这个配置文件,如下:


ipcp-accept-local
ipcp-accept-remote
asyncmap 0
noauth
crtscts
lock
hide-password
modem
netmask 255.255.255.0
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
ipcp-accept-local
ipcp-accept-remote
noipx
defaultroute
replacedefaultroute
usepeerdns
debug
idle 1800
mtu 1410
mru 1410
connect-delay 5000
proxyarp

具体释义可以自己去大神博客浏览。
这样做了以后 replacedefaultroute 指令就会在ppp拨号成功以后,重置系统的默认路由,让所有浏览从 VPN 走了,所以我们就不再需要那么复杂的链接脚本去添加默认路由了,链接脚本更新为:


#!/bin/sh
#
sudo service xl2tpd restart
sudo -u root -H sh -c "echo 'c HelloMac' > /var/run/xl2tpd/l2tp-control"
sleep 2
echo "VPN Conecting..."
sleep 3
echo "Waiting..."
sleep 3
# sudo ip route replace default dev ppp0
route
echo "VPN Connected"

运行脚本,自动连接,在 route 输出里,就可以很清洗的看到,ppp0已经是默认路由了。

Related post

  1. NO IMAGE
  2. NO IMAGE
  3. NO IMAGE
  4. NO IMAGE

    2021.05.23

    Ngrok 搭建指南
  5. NO IMAGE
  6. NO IMAGE
  1. mac 2015.12.26 11:24下午

    谢谢分享~

  2. lone112 2017.07.04 1:13下午

    你好,我在令连接 VPN后没有出现 ppp0, 查看xl2tpd 状态也正常,这怎么办啊

ABOUT

老赵的个人博客,关于 Mac, iPhone, iPad, iPod等产品的软件和硬件技术交流。也讨论Linux/UNIX技术,服务器运维技术等。

2025 年 2 月
 1
2345678
9101112131415
16171819202122
232425262728  

Powerd by WordPress on Xserve
Xserve 2009
@2012-2024 HelloMac Copyright