你的位置:首页 > 操作系统

[操作系统]搭建虚拟私人网络


网上的教程说多也不多说少也不少,就要看你怎么找。本章为个人笔记 :)

 

搭建环境:

1.检测搭建的环境要求

#cat /dev/net/tun

如果这条指令显示结果为下面的文本,则表明通过:
cat: /dev/net/tun: File descriptor in bad state
 
2.安装pptp
apt-get install pptpd

 

3.编辑 vi /etc/pptpd.conf

此地方地设置的IP在后面会用到。。。。注意。。。。`

去掉文件最末端的 localip 和 remoteip 两个参数的注释(可以进行相应地修改,可我没有)localip 10.100.0.1 remoteip 10.100.0.2-10

localip 是 VPN 连通后服务器的 ip 地址,而 remoteip 则是客户端的可分配 ip 地址。

 

4.编辑 vi /etc/ppp/pptpd-options

需要改变其中的 ms-dns 选项,为 VPN 客户端指派 DNS 服务器地址ms-dns 8.8.8.8 ms-dns 8.8.4.4 

解析:ms-dns 8.8.8.8, ms-dns 8.8.4.4是使用google的dns服务器。

 

5.编辑 vi /etc/ppp/chap-secrets

存放着VPN的用户名和密码如文件中注释所示,第一列是用户名,第二列是名(默认写 pptpd 即可,如果在 pptpd-options 文件中更改过的话,注意这里保持一致),第三列是密码,第四列是 IP 限制(不做限制写 * 即可)例子:vpn1 pptpd "ys1995." *

 

6.我们需要重启 pptpd 服务使新配置生效

/etc/init.d/pptpd restart

 

至此,如果我们建立连接之后,将会发现除了可以访问服务器的资源,其余内外和互联网的内容均无法访问。如果需要访问这些内容的话,我们还需要进一步设置: 首先,开启 ipv4 forward 。方法是,修改 /etc/sysctl.conf,找到类似下面的行并取消它们的注释(*.ipv4.* = 1的都要去掉注释哦):

 

7.编辑 vi /etc/sysctl.conf

取消如下注释:(有问题酒吧的话,  *.ipv4.* = 1   的都去掉注释)net.ipv4.ip_forward=1

使配置生效:

sysctl -p

作用:修改内核设置,使其支持转发

 

 

有些时候,经过这样设置,客户端机器就可以上网了(我在虚拟机上这样操作后就可以了)。 但我在实验室的服务器上这样操作后仍然无法访问网络,这样我们就需要建立一个 NAT。这里我们使用强大的 iptables 来建立 NAT。首先,先安装 iptables

8.添加iptables转发规则等操作

启动iptables和nat转发功能,很关键的呀

  1.安装iptables

apt-get intall iptables

  2.为了客户端能够顺利连接到VPN服务器,还需主机防火墙开放VPN端口(默认为1723)

 sudo iptables -I INPUT -p tcp --dport 1723 -j ACCEPT sudo iptables -I INPUT -p tcp --dport 47 -j ACCEPT sudo iptables -I OUTPUT -p tcp --dport 1723 -j ACCEPT sudo iptables -I OUTPUT -p tcp --dport 47 -j ACCEPT

  3.然后,我们向 nat 表中加入一条规则:

设置iptables NAT转发

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

这里的设置与之前的 /etc/pptpd.conf有关联,详细查阅:http://www.dabu.info/centos6-4-structures-pptp-vpn.html里地 第四步:启动pptp vpn服务和iptables

 

  4.这样操作后,客户端机器应该就可以上网了。 但是,只是这样,iptables 的规则会在下次重启时被清除,所以我们还需要把它保存下来,方法是使用 iptables-save 命令:

iptables-save > /etc/iptables-rules

 

   按着教程走,应该到了这里了

  5.编辑vi /etc/network/interfaces

找到 eth0 那一节,在对 eth0 的设置最末尾加上下面这句:pre-up iptables-restore < /etc/iptables-rules

 

  可是我这里我的文件里面没有此eth0,估计网卡名称不一样,可用ifconfig查看

  详细可查阅:http://www.dabu.info/centos6-4-structures-pptp-vpn.html

  

  6.设置MTU来确保过大的包不会被丢弃(这个可以不做)  

iptables -I FORWARD -s 192.168.0.0/24 -p tcp --syn -i ppp+ -j TCPMSS --set-mss 1300

 

    

 

9.启动服务

/etc/init.d/pptpd restart

 

 

 

 

感谢:

http://octree.me/buid-vpn-on-ubuntu/

http://www.dabu.info/centos6-4-structures-pptp-vpn.html

http://blog.sina.com.cn/s/blog_6797a6700100mhnl.html

http://blog.fens.me/ubuntu-vpn-pptp/