Ubuntu下使用PPTPD搭建VPN
搭建PPTP服务器
参考:https://blog.csdn.net/sanve/article/details/80882731
安装
| 1 | apt install pptpd | 
配置IP
| 1 | vim /etc/pptpd.conf | 
查找并解开这3处的注释并修改相应配置
| 1 | #bcrelay eth1 | 
bcrelay的意思我理解是来自虚拟局域网的广播要从哪个物理网卡转发出去
localip的意思本机是VPN服务器的IP地址
remoteip的意思是当有远程VPN客户端连接上来时被分配的IP段
我认为应该把虚拟局域网的网段和物理局域网分开,而且localip和remoteip应该在同一个网段,网上有localip和remoteip不应该在同一个网段的说法我并不认同。
配置DNS
| 1 | vim /etc/ppp/pptpd-options | 
找到ms-dns解开注释并修改相应配置
| 1 | ms-dns 114.114.114.114 | 
配置用户名密码
| 1 | vim /etc/ppp/chap-secrets | 
| 1 | # Secrets for authentication using CHAP | 
修改配置后重启PPTP服务器
| 1 | service pptpd restart | 
打开IPv4转发
| 1 | vim /etc/sysctl.conf | 
找到并修改或添加
| 1 | net.ipv4.ip_forward = 1 | 
使配置生效
| 1 | sysctl -p service | 
在网关上添加指向VPN网段的静态路由,设置下一跳地址为架设VPN服务器主机的IP,这样整个局域网都是可以通过VPN正常访问的。
如果没有操作网关的权限,也可以在需要访问的主机上添加静态路由
| 1 | ip route add 192.168.10.0/24 via 192.168.1.99 | 
这里192.168.1.99就是架设VPN服务器的主机IP
Ubuntu PPTP客户端
参考:https://www.jianshu.com/p/1680c721f397 http://www.linuxfly.org/post/641/
| 1 | pptpsetup --create 连接名 --server VPN服务器地址 --username 用户名 --password 密码 --encrypt | 
启动VPN连接
| 1 | pon 连接名 | 
关闭VPN连接
| 1 | poff 连接名 | 
查看路由表
| 1 | route -n | 
添加路由,将通过VPN接入的物理局域网网段路由指定通过ppp0网口转发
| 1 | route add -net 192.168.1.0 netmask 255.255.255.0 dev ppp0 | 
每次重连后路由会丢失,需要重新配置,可以用下面的方法在ppp0 up时自动添加路由
pptp连接时自启动添加路由
参考:https://blog.csdn.net/qq_27434019/article/details/102920504
| 1 | vim /etc/ppp/peers/连接名 | 
增加ipparam一行
| 1 | ipparam 连接名 | 
下面这步似乎不必要,不清楚作用
| 1 | vim /etc/network/interfaces | 
增加
| 1 | auto tunnel | 
======================================
新建脚本文件并修改权限
| 1 | touch /etc/ppp/ip-up.d/连接名 | 
编辑脚本
| 1 | vim /etc/ppp/ip-up.d/连接名 | 
在脚本中加入添加路由的语句
| 1 | route add -net 192.168.1.0 netmask 255.255.255.0 dev ppp0 | 
可以poff 再 pon 再 route -n 看看路由是否自动添加