Overview
- 在一台长期开机的windows主机上用电信官网下载的NetKeeper客户端拨号。这台主机是连接了网线,并且能够访问内网资源的(例如:jwzx.cqupt.edu.cn)
- 在这台主机上搭一个ubuntu虚拟机,虚拟机需要有两块虚拟网卡,一块是nat,一块是桥接有线网卡
- 在ubuntu虚拟机上安装并配置pptpd
- 自动化(开机自启,断网检测,等脚本)
搭建步骤
硬件要求
一台空闲的物理机,长期开机。
有一块有线网卡,板载或usb转rj45
一台路由器(支持vpn如pptp,tp-link的一般都行)
环境准备
- 系统与软件
- win7 或 win10
- NetKeeper客户端
- 虚拟机或容器(不能是HyperV,因为HyperV会和NetKeeper冲突,docker和WSL都基于HyperV而无法使用)
- ubuntu16.04+ 镜像
- windows镜像可以去MSDN我告诉你下载,也可以在内网的邮资源下载站系统镜像部分下载(邮资源下载站的windows系统镜像全部来自msdn我告诉你)
- NetKeeper在中国电信高校专区下载最新版
- VMware请访问VMware官网首页寻找下载链接
- ubuntu镜像下载途径
- 阿里云OPSX
- 内网邮资源镜像站ubuntu镜像
- 内网重邮镜像站
- ubuntu的apt源可以设置为重邮镜像源,http://mirrors.cqupt.edu.cn/ubuntu
- 系统与软件
装系统
- windows
- 虚拟机ubuntu
虚拟机配置(Vmware示例):
给虚拟机加一块桥接网卡,桥接到物理机有线网卡上。确保虚拟机有两块网卡,一个是nat网卡,一个是桥接有线网卡(用来获得内网ip以供拨号连接)
开启虚拟机
安装pptpd
1
2apt-get update
apt-get install pptpd配置/etc/pptpd.conf
删除以下行的注释
1
2#localip 192.168.0.1
#remoteip 192.168.0.234-238,192.168.0.245变为
1
2localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245解释:
- localip是vpn中ubuntu虚拟机的ip,remoteip是分配给连接vpn的设备的ip
配置/etc/ppp/pptpd-options
注释以下两行。这两行是用来加密vpn的,但会对pptpd的运行有影响,可以关掉。如果你需要加密就不要注释。
1
2require-mschap-v2
require-mppe-128设置dns,以下两行可改为
1
2ms-dns 202.202.32.33
ms-dns 114.114.114.114202.202.32.33是内网dns,作为主dns服务器
114是电信dns作为备选dns
配置vpn的用户和密码 /etc/ppp/chap-secrets
1
2
3# Secrets for authentication using CHAP
# client server secret IP addresses
用户名 pptpd 密码 *每一行代表一个用户
每一行由四个部分组成。第一个是用户名,第二个(上图为pptpd)表示vpn的类型,第三个是密码,第四个(上图为*) 表示动态分配vpn的ip
重启pptpd
1
/etc/init.d/pptpd restart
配置/etc/sysctl.conf
删除这一行的注释
1
#net.ipv4.ip_forward=1
然后使配置生效
1
2sysctl -p
/etc/init.d/procps restart配置路由表
1
2
3
4
5
6
7
8
9
10
11#以下是设置nat转发
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o 虚拟机的nat网卡名(比如ens33或者eth0) -j MASQUERADE
#以下是设置双网卡默认路由
route add -net 202.202.32.0/20 gw 桥接网卡的网关ip(172开头的)
route add -net 172.16.0.0/12 gw 桥接网卡的网关ip(172开头的)
route add -net 172.32.0.0/15 gw 桥接网卡的网关ip(172开头的)
route add -net 211.83.208.0/20 gw 桥接网卡的网关ip(172开头的)
route add -net 222.177.140.0/25 gw 桥接网卡的网关ip(172开头的)
route add -net 219.153.62.64/26 gw 桥接网卡的网关ip(172开头的)
route add -net 10.10.10.0/24 gw 桥接网卡的网关ip(172开头的)虚拟机nat网卡和桥接网卡的网关ip可以通过ifconfig查看
注意:本路由表不是永久的,关机即灭失,每次开机需要重新运行。
配置pptpd开机自启
1
systemctl enable pptpd.service
ufw防火墙添加端口
1
ufw allow 1723/tcp
如上配置完就应该可以访问拨号了。
访问的方式为:
pptp拨号,无加密,服务器地址:桥接网卡的ip,用户名和密码为/etc/ppp/chap-secret 里写的
连接pptpd前请确保能够ping通桥接网卡ip
自动化
需要实现的
- 开机自动设置路由表
- 检测外部网络变化,如果网络不通则重启(如我的物理机网络从netkeeper变为wifi,那么虚拟机的外网访问可能会出问题,需要重启)
我的ping脚本
大致作用是,ping www.baidu.com 如果ping的通说明网络没有问题,睡眠30秒。如果ping不通,说明需要重启恢复网络,那么连续ping2次,如果第二次还不通就重启。第二次通了就把计数置0并且睡眠30秒。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17#!/bin/sh
count="0"
while true
do
ping -c 5 -w 10 www.baidu.com
if [ $? != 0 ];then
echo "target not approachable"
count=$((count+1))
else
count="0"
sleep 30
fi
if [ $count = "2" ]; then
reboot
fi
done
使用
连wifi拨号,适用移动类设备(手机,平板),笔记本,台式机
- 连接CQUPT或者其他接入内网的wifi
- vpn 类型设为pptp 服务器地址为上面提及的虚拟机桥接网卡ip 用户名密码见上面配置。如果配置pptpd的时候设置了加密(见上文),那么客户端也需要设置加密。否则不要设置
- 注,CQUPT这个热点校园内很多地方都有,但是连上了之后可能暂时无法拨号,这种情况下需要等一段时间(几分钟)或者重新连接。只要搜得到CQUPT并且连的上,那么就一定可以拨pptp。
网线拨号,使用笔记本,台式机
- 用网线接入内网
- vpn拨号同上
路由器拨号
- 连上路由器,进入管理员界面,tp-link的为网络参数页,其他的试试找一下wan口设置。设置为pptp拨号,拨号方式参考上面。