在学校想上网就需要进行上网认证,但是,一个账号只能登陆一次,这就导致了如果多台机子要上网的话就需要找研发中心创建多个帐号,这个时候自己在学校服务器上搭建一台PPTP VPN服务器的话,只需要在服务器上进行上网认证,然后底下的PC机直接用PPTP VPN连接到服务器就能上网了,这个时候Linux系统要想连接PPTP的话,只能通过命令行来连接
先安装ppp、pptp、pptp-setup
1 | yum -y install ppp* pptp pptp-setup |
安装好后,创建一个vpn并连接它
1 | pptpsetup --create vpn1 --server 172.16.13.228 --username stephen --password Dai1932@* --start |
这个时候会报LCP: timeout sending Config-Requests,是因为客户端防火墙拦截了pptp端口的数据包,只需要允许pptp端口通过或者关闭防火墙即可
1 | systemctl stop firewalld |
再运行一遍创建并连接vpn的命令
1 | pptpsetup --create vpn1 --server 172.16.13.228 --username stephen --password Dai1932@* --start |
这个时候会报LCP terminated by peer (MPPE required but peer refused),是因为服务端要求MPPE加密,但是客户端不支持,只需要加个encrypt参数就行了
1 | pptpsetup --create vpn1 --server 172.16.13.228 --username stephen --password Dai1932@* --start --encrypt |
这个时候就提示连接成功了。
但是这并不代表可以上网了,我们还需要添加条默认路由,将所有的网段指向ppp0
1 | route add -net 0.0.0.0 dev ppp0 |
好了,这下可以上网了,但是还有个问题,就是在连接vpn前我的IP是172.16.13.234,连接后虽然本地网卡的IP没有变,但是多了个ppp0的网卡,将路由指向ppp0后,在外网通过VPN进入到内网的话 172.16.13.234是无法连接上的,所以,我们只能通过vpn分配的IP地址192.168.2.10 来ssh我们的服务器。如果是在内网的话,172.16.13.234是可以直接连接的