Ubuntu搭建VPN服务器以及配置客户端连接

服务器环境:Ubuntu 16.0.4.2 

客户端环境:windows7

VPN服务器搭建

一,卸载pptpd以及iptables(对于之前VPN配置错误的)

#卸载pptpd
sudo apt-get autoremove pptpd
sudo apt-get purge pptpd
#卸载iptables
sudo apt-get autoremove iptables*
sudo apt-get purge iptables*

二,安装pptpd

#安装pptpd
sudo apt-get install pptpd

三,配置pptpd

1.修改pptpd.conf配置文件信息

sudo vim /etc/pptpd.conf 

打开文件后,在文件末尾找到

#localip  192.168.0.1
#remoteip 192.168.0.234-238,192.168.0.245

去掉前面的注释

localip  192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245

localip是指本机IP,这个IP不是指公网IP也不是局域网IP.代表的是VPN服务器的ip地址,你可以把整个VPN网络理解为另一个局域网。remoteip是客户端连接后分配的ip地址;这里可以不用修改,如果要修改也可以,例如:

localip  10.0.0.1
remoteip 10.0.0.2-100

客户端连接后,服务器网卡接口如图:(ppp0)

2.添加VPN用户账号

sudo vim /etc/ppp/chap-secrets 

打开文件以后,看见:

# Secrets for authentication using CHAP
# client        server  secret                  IP addresses

client代表用户名,server代表使用的VPN服务类型, secret代表用户登录的密码,IP address代表可以可以登录连接的IP

我的如下:

test            pptpd   123456          *

如果是新搭建的VPN,服务类型填pptpd(常用的用PPTPD,LT2P,IKEv2,IPSec, 后面三种需要其它配置),IP address 填*(*代表不限制登录连接的IP)

3,设置VPN的ms-dns

sudo vim /etc/ppp/pptpd-options 

找到下面内容:

#ms-dns 10.0.0.1
#ms-dns 10.0.0.1

去掉注释,修改为8.8.8.8、8.8.4.4或者你其它的DNS服务器;我的是:

ms-dns 8.8.8.8
ms-dns 8.8.4.4

如果你使用的是云服务器,这个地方建议是使用云服务器内部的DNS服务器地址,不然,有可能会无法访问外网

如:

ms-dns 100.100.2.138
ms-dns 100.100.2.136

三,开启内核IP转发

sudo vim /etc/sysctl.conf

在打开的文档中找到

#net.ipv4.ip_forward=1

去掉注释

net.ipv4.ip_forward=1

保存以后,输入命令,使修改及时生效

sudo sysctl -p

四,安装配置iptables

1.安装iptables

sudo apt-get install iptables

2,清除iptables里旧的规则

sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -t nat -X

3,允许gre协议以及1723端口、47端口

sudo iptables -A INPUT -p gre -j ACCEPT 
sudo iptables -A INPUT -p tcp --dport 1723 -j ACCEPT 
sudo iptables -A INPUT -p tcp --dport 47 -j ACCEPT 

4,开启NAT转发

注意这里的网卡名称要些自己的网卡名称,我这里是eth0

sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE

5.防止VPN代理上网慢

sudo iptables -I FORWARD -p tcp --syn -i ppp+ -j TCPMSS --set-mss 1356

6.保存iptables规则

sudo iptables-save > /etc/iptables-rules

打卡网卡配置文件

sudo vim /etc/network/interfaces

在文件末尾添加

pre-up iptables-restore < /etc/iptables-rules

五,重启pptpd服务

sudo service pptpd restart

查看端口1723是否被启用

如图,代表pptpd启动成功

客户端配置

一,打开网络共享中心

二,点击设置新的连接或网络

三,点击连接到工作区

点击下一步

四,点击使用我的Internet连接VPN

五,输入VPN服务器地址

继续下一步

六,输入VPN登录用户名密码

点击连接

点击跳过,最后关闭

七,回到网络共享中心,点击更改适配器设置

我这里已经是连接上了的

选中之前创建的新的网络连接,我的叫VPN连接,右键属性

八,点击安全修改VPN类型为PPTP

九,点击网络,双击TCP/IPV4或者选中TCP/IPV4

十,填写dns地址,我这里是8.8.8.8/8.8.4.4因为要访问外网

十一,打开高级设置,勾选在远程网络上使用默认网关

这里一定要勾选上,不然依然不能访问外网,如果国内网站也不能访问,那就是IP转发配置有问题,参考

1. 设置允许转发

                 sysctl -w net.ipv4.ip_forward=1 (这步一般文档都有)


2.  设置ppp0 -> eth0的跳转

                iptables --insert FORWARD 1 --source 192.168.0.0/24 /
                      --destination 0.0.0.0/0.0.0.0 --jump ACCEPT

 

3.  设置Target-> eth0 的返回

                 iptables --table nat --append POSTROUTING --out-interface eth0 /
                     --jump MASQUERADE

 

4. 设置ppp0 -> eth0 的返回

                 iptables --insert FORWARD 1 --source 0.0.0.0/0.0.0.0 /
                      --destination 192.168.0.0/24 --jump ACCEPT --out-interface ppp0

设置完成,选中VPN连接,右键连接

如果你是云服务器,那么需要开启入网和出网的1723,47端口,可以在云服务器控制台设置安全组即可,重启服务器;

否则会出现807错误

猜你喜欢

转载自blog.csdn.net/qq_33571718/article/details/81543408