系统:MintLinux(基于Ubuntu)
类型:PPTP
搭建 VPN 服务器的方法非常多,比较著名的有 PPTP, L2TP/IPSec 和 OpenVPN。这三种方式中后两者的安全性比较好,但配置较麻烦。其中 OpenVPN 在 Windows/Mac 平台上还需要额外的客户端。
操作如下:
安装pptpd
apt install pptpd
编辑pptpd配置文件
打开 pptp.conf 配置文件
vi /etc/pptpd.conf
找到
#localip 192.168.0.234-238,192.168.0.245
#remoteip 192.168.1.234-238,192.168.1.245
去掉前面的注释#号,修改为
localip 192.168.1.234
remoteip 192.168.1.100-192.168.1.200
localip是linux主机的ip地址
remoteip是地址池,也就是远程拨进来的计算机所分配到的ip地址。
配置DNS
打开 pptpd-options 配置文件
vi /etc/ppp/pptpd-options
找到
#ms-dns 10.0.0.1
#ms-dns 10.0.0.2
去掉前面的注释#号,修改为客户端连接后分配的DNS,如:
ms-dns 114.114.114.114
ms-dns 114.114.115.115
配置用户
打开 chap-secrets
vi /etc/ppp/chap-secrets
如图:
用户名(tab)主机名(tab)密码(tab)分配到的ip地址
按上面的格式来填写,其中主机名可以用“*”代替,如果不强制指定该用户分配到哪一个ip地址,可以将最后一项也改为“*”
添加后保存,重启服务
service pptpd restart
如果开启了iptables,则需要加入以下规则:
iptables -A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT iptables -A INPUT -p gre -j ACCEPT iptables -A OUTPUT -p gre -j ACCEPT
连接外网
使用另一台windows建立vpn连接成功,但是不能上网。这种情况需要打开内核的转发功能和配置防火墙。
打开/etc/sysctl.conf
vi /etc/sysctl.conf
去掉“net.ipv4.ip_forward=1”前的注释号,保存后输入以下命令应用配置。
sysctl -p
配置iptables防火墙
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE iptables -A FORWARD -s 192.168.1.0/24 -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1200
重启服务
service pptpd restart
再重新连接VPN,可以上网了。
发表回复