本文由腾讯云 社区自动同步,原文地址 https://stackoverflow.club/article/pptpd-V**-on-ubuntu/
背景
正常人的上网始于花钱买宽带,而非正常人,比如程序员的上网始于自力更生。
- 我们的内网机器经常不能上网,又没有IT部门的人帮忙,只好自己装个V**,把流量转发到可以上网的机器上;
- 内网上的服务器不想暴露在公网上,如公司的oa系统,那么在外出差的人怎么办? 搭建一个V**服务器,满足随时随地
常回家看看
的需求。
要求
搭建V**服务器的,一般都是在Linux系统上,推荐Ubuntu 16.04
.
步骤
安装PPTPD服务
代码语言:javascript复制
sudo apt-get update
sudo apt-get install pptpd
配置pptpd.conf
代码语言:javascript复制
sudo vim /etc/pptpd.conf
#确保如下选项的配置
option /etc/ppp/pptpd-option #指定PPP选项文件的位置
debug #启用调试模式
localip 192.168.0.1 #V**服务器的虚拟ip
remoteip 192.168.0.200-238,192.168.0.245 #分配给V**客户端的虚拟ip
配置PPP
代码语言:javascript复制
sudo vim /etc/ppp/pptpd-options
#确保如下选项的配置
name pptpd #pptpd服务的名称
refuse-pap #拒绝pap身份认证模式
refuse-chap #拒绝chap身份认证模式
refuse-mschap #拒绝mschap身份认证模式
require-mschap-v2 #允许mschap-v2身份认证模式
require-mppe-128 #允许mppe 128位加密身份认证模式
ms-dns 8.8.8.8 #使用Google DNS
ms-dns 8.8.4.4 #使用Google DNS
proxyarp #arp代理
debug #调试模式
dump #服务启动时打印出所有配置信息
lock #锁定TTY设备
nobsdcomp #禁用BSD压缩模式
logfile /var/log/pptpd.log #输出日志文件位置
添加用户
代码语言:javascript复制
sudo vim /etc/ppp/chap-secrets
#格式:用户名 服务类型 密码 分配的ip地址
test * 1234 *
#第一个*代表服务可以是PPTPD也可以是L2TPD,第二个*代表随机分配ip
重启PPTPD服务
代码语言:javascript复制
sudo service pptpd restart
配置网络和路由规则 转发ipv4
代码语言:javascript复制
sudo sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf
sudo sysctl -p
设置iptables NAT转发
代码语言:javascript复制
#注意这里wlp4s0b1代表你的外网网卡,请用ifconfig查看或者咨询网络管理员
sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o wlp4s0b1 -j MASQUERADE
配置MTU,可以转发大数据包,提高网速
代码语言:javascript复制
sudo iptables -I FORWARD -s 192.168.0.0/24 -p tcp --syn -i ppp -j TCPMSS --set-mss 1300
注意:经实测,配置完iptables NAT转发之后手机可以上网,但是电脑不能。配置完MTU之后,电脑手机都可以上网。
我的测试条件:
- 手机:nubia z9 max(NX512J), Android 5.1.1, QQ浏览器
- 电脑:联想小新锐7000,win10, chrome浏览器 客户主机配置:
按照正常流程设置V**即可,服务器地址填写服务主机所在的校园网地址。
TroubleShooting:
如果V**连接出错,可能是防火墙问题,关掉防火墙
代码语言:javascript复制
sudo ufw disable
可以参考官方pptp说明排除问题。
或者参考这里允许1723端口以及其他可能需要开放的端口。