ubuntu 下使用pptp搭建VPN服务器

发布于:2016年07月11日    浏览:1090 次    属于:服务器运维 > 环境配置 原创作者:张晓栋

 

VPN可以帮助我们在公共网络上建立一个私有的网络直连隧道,服务器在香港,大家连接VPN后仿佛就和处在香港的服务器属于一个局域网了,而此时香港的服务器扮演了一个路由器的功能,本文记录的是如何在Ubuntu上配置VPN服务。这里我们采用PPTP协议来搭建。


安装VIM编辑器
sudo apt-get install vim-gtk



登陆服务器,安装pptpd:
sudo apt-get install pptpd


设置VPN服务器和客户端的IP
sudo vim /etc/pptpd.conf

取消如下两句前面的井号
#localip 192.168.0.1
#remoteip 192.168.0.234-238,192.168.0.245


设置VPN客户机的DNS地址
sudo vim /etc/ppp/pptpd-options
删除 #ms-dns 前面的#号,修改DNS server: 114.114.114.114

配置VPN账户信息
vim /etc/ppp/chap-secrets
添加账号、服务器名、密码和IP限制,如 xiaoming    *    888888    *
 
开启内核转发功能
vim /etc/sysctl.conf

删除 #net.ipv4.ip_forward=1 前的#号,开启ipv4 forward
sudo sysctl –p 若运行后显示 net.ipv4.ip_forward = 1,表示修改生效了。

安装iptables建立一个NAT
sudo apt-get install iptables


设置从外网端口,转发从VPN客户端来的数据包
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
注:eth0代表可以访问外网的网卡,可以通过命令 ifconfig 查看,你自己的网卡名称


到这里VPN服务器的配置就完成了,但是为了避免连接后无法上网建议设置MTU为1024
iptables -A FORWARD -s 192.168.0.0/24 -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1024


保存数据转发规则
sudo iptables-save > /etc/iptables-rules
vim /etc/network/interfaces
找到 eth0 那一节,在对 eth0 的设置最末尾加上下面这句:
pre-up iptables-restore < /etc/iptables-rules

 
重启 pptpd
sudo /etc/init.d/pptpd restart