1. 程式人生 > >CentOS7搭建VPN伺服器教程

CentOS7搭建VPN伺服器教程

遇到好多人說搭建VPN伺服器出錯的,今天正好搞了個Centos7的伺服器,搭建了個VPN耍耍。

1.先看看你的主機是否支援pptp,返回結果為yes就表示通過。

modprobe ppp-compress-18 && echo yes

2 .是否開啟了TUN,有的虛擬機器主機需要開啟,返回結果為cat: /dev/net/tun: File descriptor in bad state。就表示通過。

cat /dev/net/tun

3.安裝ppp , pptpd 和 iptables。

a.先更新一下再安裝。

yum install update

b.安裝ppp和pptpd

yum -y install ppp pptpd

c.安裝iptables。

這是自帶的,如果沒有的話就安裝。

yum install iptables

4.配置pptpd.conf。

vi /etc/pptpd.conf    #找到localip,去掉開始的那個#符號
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245
#這些是預設的,一般不需要去修改,分配給客戶端的ip就是234到238之間,你也可以往大了寫,看你的客戶端有多少。

5.配置options.pptpd

vi /etc/ppp/options.pptpd      #在末尾新增dns
ms-dns  8.8.8.8       #這是谷歌的,你也可以改成阿里巴巴的或者其它
ms-dns  8.8.4.4

6.配置連線VPN客戶端要用到的帳號密碼。

vi /etc/ppp/chap-secrets    #格式很通俗易懂。
#   client為帳號,server是pptpd服務,secret是密碼,*表示是分配任意的ip
# Secrets for authentication using CHAP
# client        server     secret                  IP addresses
  count         pptpd    771297972            *

7.配置sysctl.conf

vi /etc/sysctl.conf
#新增一行    net.ipv4.ip_forward = 1    到末尾即可,然後儲存
sysctl -p    #執行這個命令會輸出上面新增的那一行資訊,意思是使核心修改生效

8.這個時候把iptables關閉的話是可以連線VPN了,之所以要把iptables關閉是因為沒有開放VPN的埠,客戶如果直接連線的話是不允許的。這裡還需要設定iptables的轉發規則,讓你的客戶端連線上之後能訪問外網。

iptables -t nat -F
iptables -t nat -A POSTROUTING -s 192.168.0.234/24 -j SNAT --to 你的伺服器的公網IP
#192.168.0.234/24是你分配給客戶的ip,後面的那個是你的伺服器的公網IP

9.這個時候還是連線不上的,因為iptables把客戶的VPN連線攔截了,不允許連線,所以得開放相應的埠。

具體是哪個埠可以自己查下,我的是預設的,如果你沒有更改過的話也會是預設的。

iptables -I INPUT -p tcp --dport 1723 -j ACCEPT
iptables -I INPUT -p tcp --dport 47 -j ACCEPT
iptables -I INPUT -p gre -j ACCEPT

10.保險起見,到了這裡應該重啟一下pptpd服務和iptables服務生效。

systemctl restart iptables
systemctl restart pptpd