树莓派3B+ VPN路由(PPTP、AP)

版权声明:本文多数内容来自互联网,只经过本人修改组合,无版权,故可随意转载。( ¯▽¯;) https://blog.csdn.net/kxwinxp/article/details/78764406

树莓派3B+ VPN路由(PPTP、AP)

该教程不是基于OpenWrt,而是直接基于 raspbian-lite 版(在2017-11-29-raspbian-stretch-lite.img测试成功)。
原理是:在树莓派进行 PPTP的VPN 连接,将连接后的网络通过 AP热点的形式共享出来。
注:PPTP连接成功后,树莓派默认也是使用的VPN的网络。


1.安装AP热点工具

这里选用的是:https://github.com/billz/raspap-webgui
基于 php7.0-cgi hostapd dnsmasq 搭建

// 一键脚本
wget -q https://git.io/voEUQ -O /tmp/raspap && bash /tmp/raspap
// 期间有多次询问是否 确认 继续,输入 y 确认安装。

安装完成后需要重启来生效,以下是一些默认配置:

IP address: 10.3.141.1
Username: admin
Password: secret
DHCP range: 10.3.141.50 to 10.3.141.255
SSID: raspi-webgui
Password: ChangeMe

浏览器访问树莓派IP,输入管理用户和密码后,可以看到管理页面:

这里写图片描述

2.安装PPTP客户端

这里使用的pptp-linux。

// 安装客户端
sudo apt-get install -y pptp-linux
// 建立一个配置文件(这里就不使用pptpsetup配置了,那个更麻烦)
sudo vim /etc/ppp/peers/pptpconf
// 添加如下内容:(自行做相应更改)
pty "pptp 172.20.76.154 --nolaunchpppd"
name pi
password 0000
remotename PPTP
require-mppe-128
require-mschap-v2
refuse-eap
refuse-pap
refuse-chap
refuse-mschap
noauth
persist
maxfail 0
defaultroute
replacedefaultroute
usepeerdns

pptp客户端操作:
启动:pon pptpconf
关闭:poff pptpconf

3.网络的转发配置

对于来自pptp的网络,并不会默认分享给我们的ap热点。所以我们要自己配置转发规则。

// 开启内核转发:
sudo vim /etc/sysctl.conf
// 找到下面两行:
#Uncomment the next line to enable packet forwarding for IPv4
#net.ipv4.ip_forward=1
// 把net.ipv4.ip_forward 前面的#去掉,保存退出。
// 立即生效
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

// 设置路由映射规则
sudo iptables -t nat -APOSTROUTING -o ppp0 -j MASQUERADE
sudo iptables -A FORWARD -i ppp0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o ppp0 -j ACCEPT

// 保存并添加到启动加载
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
sudo vim /etc/rc.local
// 在 exit 0 前添加如下代码:
sudo pon pptpconf
sudo iptables-restore < /etc/iptables.ipv4.nat

这里写图片描述

4.设置定时任务

可能很多伙伴并不需要一直开着VPN,故可以通过设置定时任务来控制vpn的启动和关闭。
这里介绍自带的系统定时任务:crontab
每个用户都有自己的crontab列表

# 查看当前crontab任务列表
crontab -l
# 进入crontab编辑页面,默认是nano编辑器,点回车即可
crontab -e
# 在最后一行加入如下内容【每天晚上11:30启动vpn,凌晨5点关闭】 
30 23 * * *  sudo pon pptpconf
0 5 * * *  sudo poff pptpconf

# 重启生效
sudo service cron restart


# 具体设置规则:
# m h  dom mon dow   command  
# * * * * *  command to execute  
# ┬ ┬ ┬ ┬ ┬  
# │ │ │ │ │  
# │ │ │ │ │  
# │ │ │ │ └───── 星期中的哪一天(0-7)(从0到6代表星期日到星期六,也可以使用名字;7是星期天,等同于0)  
# │ │ │ └────────── 月份 (1 - 12)  
# │ │ └─────────────── 月份中的日 (1 - 31)  
# │ └──────────────────── 小时 (0 - 23)  
# └───────────────────────── 分钟 (0 - 59) 
阅读更多

没有更多推荐了,返回首页