悲催的学校在寝室开放了学校的无线WIFI,结果又屏蔽了外网,只能上校园网。难不倒Linuxer!!!果断在办公室UBUNTU12.04上装VPN server来共享网络,因为办公室算是在学校内部,不过这样的话办公室的电脑就不能关了。
服务器端
-
安装pptpd
$sudo apt-get install pptpd
-
编辑文件
/etc/pptpd.conf
,取消以下内容中的文件注释(也就是去掉语句前面的#号)option /etc/ppp/pptpd-options debug #调试好了过后这个应该可以不用打开,这是输出日志的,日志在/var/log/syslog里 logwtmp localip 192.168.1.1 #这个IP是自己自定义的主机IP,就好像局域网内路由器IP一样 remoteip 192.168.1.100-102 #表示可以分配给客户端的IP范围,这里我只打开了3个地址,注意主机IP和客户端IP应该在同一网段内
-
编辑文件
/etc/ppp/pptpd-options
name pptpd #服务器名称,默认为pptpd # 采用mschap-v2协议及mppe-128加密 refuse-pap refuse-chap refuse-mschap require-mschap-v2 require-mppe-128 # 给客户端分配的DNS,和服务器主机一样就行 ms-dns 202.120.80.2 ms-dns 202.120.80.67
nodefaultroute lock nobsdcomp
-
编辑文件
/etc/ppp/chap-secrets
这个文件是存储VPN客户端用户名和密码的地方,非常抱歉这个是明文存储的,pptpd的安全性不是很好啊。
# client用户名 server服务器名 secret密码 IP 允许的addresses客户端IP nick pptpd IamSecret * #任意IP均可
-
接下来就是进行IP转发设置等
编辑
/etc/sysctl.conf
,找到以下内容取消注释以开启数据包转发net.ipv4.ip-forward=1
保存后在终端中运行
sudo sysctl -p
使配置生效编辑
/etc/default/ufw
,找到以下内容更改以打开数据包转发防火墙DEFAULT_FORWARD_POLICY="ACCEPT"
保存后打开服务器端口
$sudo ufw allow 1723/tcp #打开TCP1723端口 $sudo ufw allow 47/tcp #打开TCP47端口
如果服务器是在路由器下面还需要在路由器打开这个端口的映射
然后添加iptables规则:
$iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT #24表示子网掩码,代表24个1. $iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
为防止重启后丢失规则,保存规则到文件(注意权限问题)
$sudo iptables-save |sudo tee /etc/iptables-rules
编辑
/etc/network/interfaces
添加以下语句到工作的界面上(如eth0等)$pre-up iptables-restore < /etc/iptables-rules
如果iptables经常变化,可以在interface中再次添加以下语句以实现每次变化时备份规则
$post-down iptables-save > /etc/iptables-rules
-
重启
sudo service pptpd restart #重启pptpd服务 sudo service ufw restart #重启防火墙 sudo reboot #重启计算机
用户端
在客户端,可以通过如下方式进行连接
首先新建一个VPN账户:
sudo pptpsetup --create vpnname --server ip --username test --password test --encrypt --start
start参数表示立即开始这个拨号,password密码是可选的。以后要用时:
sudo pon vpnname
sudo poff#断开
plog#查看状态
sudo pptpsetup --delete vpnname#删除保存的会话
开启VPN后还需要添加一条路由信息
sudo route add default dev ppp0