1. 程式人生 > >centos6.4安裝搭建pptp vpn服務(附pptp vpn 一鍵安裝包)

centos6.4安裝搭建pptp vpn服務(附pptp vpn 一鍵安裝包)

今天在vps上裝pptp ,和以往一樣,只不過不是在自己的vps上,上次ssh代理被封ip,對我的身心造成了深深的影響,所以,這次拿網友放我這的vps來搭建vpn環境。pptp的搭建比openvpn容易多了。以下是我的配置過程,其實和網上差不多,centos6.4 搭建 centos 6.4 搭建pptp vpn ppp = 2.4.4 is needed by pptpd-1.3.4-2.rhel5.x86_64

centos6.4安裝搭建pptp vpn服務的大致步驟簡介,下面會有詳細的步驟(我不喜歡寫大綱,決定麻煩,但是有人還是看不懂,所以勉為其難的寫了個,實在不會的,我在文章的後面提供一些網上的centos pptp vpn 一鍵安裝包

,有人寫了就不必再寫一遍了,一鍵安裝包要是有問題,也別找我,新手想享受自己親手一步步具體搭建過程的樂趣,就接著看看吧)

1.先檢查vps是否滿足配置pptp vpn的環境。因為有的openvz的vps被母雞給禁用了。其實,你在配置前最好向vps的客服發TK,可能客服會幫你開通vpn或者客服那裡會給你他們自己定製的vpn一鍵安裝包也有可能。
2.接著是安裝配置pptp vpn的相關軟體,安裝ppp和iptables
配置安裝好後的pptp軟體,這個不像windows那樣,安裝的過程就是配置的過程。linux的要安裝完之後,修改配置檔案,才算是完成配置。
3.啟動pptp vpn 服務。此時,就是檢驗你能夠vpn撥號成功,如果你撥號成功了,說明你的pptp vpn的安裝配置就算真正的完成了。但是此時只能登入vpn,卻不能用來上網。


4.開啟核心和iptables的轉發功能。這個步驟是為了讓你連上vpn之後,能夠上網,上那些yourporn,youtube之類的。這步是最關鍵的,很多人能成功撥號,登入vpn,但是卻不能上網就是因為這個步驟沒做好。這步驟完成了,你就可以盡情去國外的網站訪問了

#########################################手動搭建配置pptp vpn 詳細方法如下########

第一步:檢測是否符合pptp的搭建環境的要求

伺服器版本:CentOs 6.4  xen vps 如果檢查結果沒有這些支援的話,是不能安裝pptp的。執行指令:
#modprobe ppp-compress-18 && echo ok
這條執行執行後,顯示“ok”則表明通過。不過接下來還需要做另一個檢查,輸入指令:
#cat /dev/net/tun
如果這條指令顯示結果為下面的文字,則表明通過: cat: /dev/net/tun: File descriptor in bad state 上述兩條均通過,才能安裝pptp。否則就只能考慮openvpn,或者請vps空間商的技術客服為你的VPS開啟TUN/TAP/PPP功能了,貌似有部分vps控制面板上提供開啟TUN/TAP/PPP功能的按鈕。 Cent os 6.4核心版本在2.6.15以上,都預設集成了MPPE和PPP,因此下面檢查可以忽略 http://www.ksharpdabu.info/?p=2178
#rpm -q ppp //查詢當前系統的ppp是否預設集成了,以及ppp的版本
檢查PPP是否支援MPPE 用以下命令檢查PPP是否支援MPPE:
#strings '/usr/sbin/pppd' |grep -i mppe | wc --lines
http://www.ksharpdabu.info/?p=2178 如果以上命令輸出為“0”則表示不支援;輸出為“30”或更大的數字就表示支援,MPPE(Microsoft Point to Point Encryption,微軟點對點加密)。 第二步1.安裝ppp和iptables PPTPD要求Linux核心支援mppe,一般來說CentOS安裝時已經包含了 http://www.ksharpdabu.info/?p=2178
#yum install -y perl ppp iptables //centos預設安裝了iptables和ppp
2.安裝pptpd

剛才用了yum安裝了ppp,但是這裡有個問題,幾乎大部分的人都會在這裡遇到ppp和pptpd不相容的錯誤。因為yum安裝ppp,總是安裝最新版本的ppp,而由於安裝的ppp的版本不同,那麼就需要安裝對應版本的pptpd才行。(參考我的文章《ppp = 2.4.4 is needed by pptpd-1.3.4-2.rhel5.x86_64的解決辦法及原因|大步's blog》)

我們要先檢視已經安裝的ppp的版本,在去找對應的pptpd版本。我手頭剛好有兩個vps,一個是前年裝的pptp vpn,一個是一年後裝的pptp vpn,所以,裝的yum install ppp的版本不同。

使用下面的命令檢視ppp的版本,前提你是yum安裝的ppp。

舊的vps上的ppp版本顯示:

#yum list installed ppp

顯示:

ppp.i386                     2.4.4-2.el5                     installed

新的vps上的ppp版本顯示;

#yum list installed ppp

顯示:

ppp.i686                       2.4.5-5.el6                       @base

所以,要對根據ppp版本選擇對應的pptpd版本。這裡我主要列出常用的。

ppp 2.4.4——————>pptpd 1.3.4

ppp 2.5.0——————>pptpd 1.4.0

貼個ppp和pptpd各個版本的下載地址;http://poptop.sourceforge.net/yum/stable/packages/

大家下載的時候注意,分清楚你係統的版本是64位的還是32位的。我個人建議ppp用yum安裝,pptpd用rpm的安裝,因為如果全都rpm或者原始碼安裝,依賴關係很是煩人。檔名含有數字64的就是64位版本,沒有的就是32位版本。可以用下面的命令檢視自己的系統是32位還是64位的。

#getconf LONG_BIT

下面假設我這裡的ppp是2.4.4版本,然後安裝pptpd

第一種安裝pptpd的方法是直接用yum安裝,讓電腦自動選擇對應的版本:

加入yum源

#rpm -Uvh http://poptop.sourceforge.net/yum/stable/rhel6/pptp-release-current.noarch.rpm

然後用yum安裝pptpd:

#yum install pptpd

這是最省時間和力氣的。餘下的和手動安裝沒什麼區別了。

 

第二種是手動安裝pptpd包:

對於32位CentOS,執行

wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.i386.rpm

rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm

對於64位CentOS,執行

wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.x86_64.rpm

rpm -ivh pptpd-1.3.4-1.rhel5.1.x86_64.rpm

這裡貼上32位的pptpd的rpm的下載地址:

http://www.400gb.com/file/34722122

64位安裝的時候如果出現:http://www.ksharpdabu.info/?p=2178

warning: pptpd-1.3.4-2.rhel5.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 862acc42: NOKEY
error: Failed dependencies:
ppp = 2.4.4 is needed by pptpd-1.3.4-2.rhel5.x86_64

原因是pptpd與PPP不相容,那麼,此時用#yum list installed ppp   命令檢視ppp版本,極有可能ppp是2.4.5版本的。所以,我們要下載pptp  1.4.0版本才行,而且這裡是64位的系統。下載pptpd-1.4.0-1.el6.x86_64.rpm安裝即可。這就是我說的出現版本不相容的問題,當ppp版本和pptpd版本不相容時候,就會出現類似的錯誤。

這裡我分享下pptpd 下載地址;

64位pptpd-1.4.0-1.el6.x86_64.rpm的下載地址:http://www.pipipan.com/file/18457333

32位pptpd-1.4.0-1.el6.i686.rpm版本下載地址:http://www.400gb.com/file/54124192

看到有人建議用--nodeps --force 這個引數,我個人不建議,這個引數可能以後會出現奇怪的問題,但是如果實在不行,你就用吧

 

第三步:修改配置檔案

1.配置檔案/etc/ppp/options.pptpd

#mv /etc/ppp/options.pptpd /etc/ppp/options.pptpd.bak
#vi /etc/ppp/options.pptpd

options.pptpd內容如下:

name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
idle 2592000
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伺服器。

2.配置檔案/etc/ppp/chap-secrets

#cp   /etc/ppp/chap-secrets /etc/ppp/chap-secrets.bak
#vi  /etc/ppp/chap-secrets

chap-secrets內容如下:

# Secrets for authentication using CHAP
# client server secret IP addresses
myusername      pptpd     mypassword     *       

//myusername是你的vpn帳號,mypassword是你的vpn的密碼,*表示對任何ip,記得不要丟了這個星號。我這裡根據這個格式,假設我的vpn的帳號是ksharpdabu,密碼是 sky。那麼,應該如下:

ksharpdabu pptpd sky *

 

3.配置檔案/etc/pptpd.conf

#cp   /etc/pptpd.conf /etc/pptpd.conf.bak
#vi /etc/pptpd.conf

pptpd.conf內容如下:

option /etc/ppp/options.pptpd
logwtmp
localip 192.168.9.1
remoteip 192.168.9.11-30 //表示vpn客戶端獲得ip的範圍

 

關鍵點:pptpd.conf這個配置檔案必須保證最後是以空行結尾才行,否則會導致啟動pptpd服務時,出現“Starting pptpd:”,一直卡著不動的問題,無法啟動服務,切記呀!(相關文件可以檢視:Starting pptpd: 執行不下去的原因

ppp = 2.4.4 is needed by pptpd-1.3.4-2.rhel5.x86_64

 

4.配置檔案/etc/sysctl.conf

#vi /etc/sysctl.conf //修改核心設定,使其支援轉發

net.ipv4.ip_forward = 0 改成 net.ipv4.ip_forward = 1

儲存修改後的檔案

#/sbin/sysctl -p

 

第四步:啟動pptp vpn服務和iptables

#/sbin/service pptpd start 或者 #service pptpd start

經過前面步驟,我們的VPN已經可以撥號登入了,但還不能訪問任何網頁。最後一步就是新增iptables轉發規則了,輸入下面的指令:

啟動iptables和nat轉發功能,很關鍵的呀

#/sbin/service iptables start //啟動iptables

#/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.9.0/24 -j MASQUERADE 或者使用下面的一種:

#iptables -t nat -A POSTROUTING -o eth0 -s 192.168.9.0/24 -j SNAT --to-source207.210.83.140 //你需要將207.210.83.140替換成你的vps的公網ip地址,因為這裡我寫的是我的。還有就是有人說我這--to-source前只有一個橫槓,其實是有兩個橫槓的。文章在編輯模式下顯示是兩個橫槓,因為用的是英文輸入法,所以,發表後就變成了一個橫杆,而且在原始碼下複製貼上也是一橫,只有在編輯模式下才能看清楚是兩橫。但是可以明顯看到to前面的那一橫比source前的那橫長一些,這些都是我操作記錄下的命令,不會有錯的。為了防止你們出錯,我還是用不同的顏色標記吧。

這裡我先前寫的不是很詳細,現在補上:

  • 需要注意的是,這個指令中的“192.168.9.0/24”是根據之前的配置檔案中的“localip”網段來改變的(網上有的教程是192.168.0.0/24 ),比如你設定的 “10.0.0.1”網段,則應該改為“10.0.0.0/24”。此外還有一點需要注意的是eth0,如果你的外網網絡卡不是eth0,而是eth1(比 如SoftLayer的伺服器就是這樣的情況),那麼請記得將eth0也更改為對應的網絡卡編號,不然是上不了網的!
  • 如果你的linux vps是ppp或者ADSL這種由DHCP動態分配獲取ip的方式(當然vps的ip基本都是是固定的。如果你是XEN的vps,那麼這個轉發規則其實也是適用的,就是讓vps自己判斷自己的ip,省去了我們指定。),那麼就需要用-j MASQUERADE這種寫法,就是ip偽裝。當然如果使用iptables -t nat -A POSTROUTING -o eth0 -s 192.168.9.0/24 -j SNAT --to-source XXX.XXX.XXX.XXX 這種轉發規則其實也是可以的,這樣親自指定自己的vps的ip地址。以後你通過vpn訪問網站,顯示的就是這個ip了。

#/etc/init.d/iptables save //儲存iptables的轉發規則

#/sbin/service iptables restart //重新啟動iptables

 

最後一步:重啟pptp vpn

#/sbin/service pptpd retart 或者 #service pptpd restart

#############################################3

客戶端如何撥號登陸vpn,我就不寫了,大家可以自行google,因為系統那麼多,我不可能xp,win7,centos,mac之類的每個都寫,何況網上一大堆,只要你pptp vpn伺服器搭建好了,客戶端登陸的選擇就是簡單的事。如果這個也不知道,那我就沒法了,自己動手吧。

 

多餘的步驟:設定pptp vpn 開機啟動

有的人懶的重啟後手動開啟服務,所以下面我再補上開機自動啟動pptp vpn 和 iptables的命令

#chkconfig pptpd on //開機啟動pptp vpn服務

#chkconfig iptables on //開機啟動iptables

 

有問題請先看log,查google,百度,論壇,有的人連軟體下載都不自己去搜索,對於這樣的人,我也懶得理睬。

 

##############################華麗分隔線############################3

下面貼出網上的別人寫的pptp vpn 一鍵安裝包使用方法:

第一篇:

本教程僅僅適用於Xen或KVM VPS,不適用於Openvz VPS,安裝之前請確定自己是否是符合標準!

1. 下載vpn(CentOS6專用)一鍵安裝包
#wget http://www.hi-vps.com/shell/vpn_centos6.sh
#chmod a+x vpn_centos6.sh
2. 執行一鍵安裝包
#bash vpn_centos6.sh

會有三個選擇:

1. 安裝VPN服務
2. 修復VPN
3. 新增VPN使用者首先輸入1,回車,VPS開始安裝VPN服務. VPN服務安裝完畢後會預設生成一個使用者名稱為vpn,密碼為隨機數的使用者來。

3. 新增VPN使用者
#bash vpn_centos6.sh選擇3,然後輸入使用者名稱和密碼,OK

4. 修復VPN服務
如果VPN撥號發生錯誤,可以試著修復VPN,然後重啟VPS
#bash vpn_centos6.sh
選擇2,然後reboot

下面是具體的指令碼:
#!/bin/bash

function installVPN(){
echo “begin to install VPN services”;
#check wether vps suppot ppp and tun

yum remove -y pptpd ppp
iptables –flush POSTROUTING –table nat
iptables –flush FORWARD
rm -rf /etc/pptpd.conf
rm -rf /etc/ppp

arch=`uname -m`

wget http://www.hi-vps.com/downloads/dkms-2.0.17.5-1.noarch.rpm
wget http://wty.name/linux/sources/kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
wget http://www.hi-vps.com/downloads/kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
wget http://www.hi-vps.com/downloads/pptpd-1.3.4-2.el6.$arch.rpm
wget http://www.hi-vps.com/downloads/ppp-2.4.5-17.0.rhel6.$arch.rpm

yum -y install make libpcap iptables gcc-c++ logrotate tar cpio perl pam tcp_wrappers
rpm -ivh dkms-2.0.17.5-1.noarch.rpm
rpm -ivh kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
rpm -qa kernel_ppp_mppe
rpm -Uvh ppp-2.4.5-17.0.rhel6.$arch.rpm
rpm -ivh pptpd-1.3.4-2.el6.$arch.rpm

mknod /dev/ppp c 108 0
echo 1 > /proc/sys/net/ipv4/ip_forward
echo “mknod /dev/ppp c 108 0″ >> /etc/rc.local
echo “echo 1 > /proc/sys/net/ipv4/ip_forward” >> /etc/rc.local
echo “localip 172.16.36.1″ >> /etc/pptpd.conf
echo “remoteip 172.16.36.2-254″ >> /etc/pptpd.conf
echo “ms-dns 8.8.8.8″ >> /etc/ppp/options.pptpd
echo “ms-dns 8.8.4.4″ >> /etc/ppp/options.pptpd

pass=`openssl rand 6 -base64`
if [ "$1" != "" ]
then pass=$1
fi

echo “vpn pptpd ${pass} *” >> /etc/ppp/chap-secrets

iptables -t nat -A POSTROUTING -s 172.16.36.0/24 -j SNAT –to-source `ifconfig | grep ‘inet addr:’| grep -v ’127.0.0.1′ | cut -d: -f2 | awk ‘NR==1 { print $1}’`
iptables -A FORWARD -p tcp –syn -s 172.16.36.0/24 -j TCPMSS –set-mss 1356
service iptables save

chkconfig iptables on
chkconfig pptpd on

service iptables start
service pptpd start

echo “VPN service is installed, your VPN username is vpn, VPN password is ${pass}”

}

function repaireVPN(){
echo “begin to repaire VPN”;
mknod /dev/ppp c 108 0
service iptables restart
service pptpd start
}

function addVPNuser(){
echo “input user name:”
read username
echo “input password:”
read userpassword
echo “${username} pptpd ${userpassword} *” >> /etc/ppp/chap-secrets
service iptables restart
service pptpd start
}

echo “which do you want to?input the number.”
echo “1. install VPN service”
echo “2. repaire VPN service”
echo “3. add VPN user”
read num

case “$num” in
[1] ) (installVPN);;
[2] ) (repaireVPN);;
[3] ) (addVPNuser);;
*) echo “nothing,exit”;;
esac

第二篇:

PPTP VPN 一鍵安裝包(OpenVZ適用)

1、檢測虛擬網絡卡支援

OpenVZ的VPS客戶需要檢測虛擬網絡卡ppp模組支援,如果不支援即使安裝成功也沒用。(Xen等可跳過此步)

檢測是否支援ppp模組

執行命令:

cat /dev/ppp

如果返回資訊為:cat: /dev/ppp: No such device or address 說明正常

2、使用管理員帳號密碼登陸SSH,並輸入以下指令

wget http://soft.kwx.gd/vpn/pptpd.sh //下載centos pptp vpn一鍵安裝包的指令碼

3、以上操作是下載安裝指令碼,下載完畢後請直接執行:

sh pptpd.sh

安裝完成後,預設賬戶是vpn ,密碼:vpn 如果要新增修改密碼,參考我上面的教程輸入命令 vi /etc/ppp/chap-secrets 編輯檔案,按照相同格式新增使用者名稱和密碼即可。

chap-secrets內容如下:

# Secrets for authentication using CHAP
# client server secret IP addresses
myusername pptpd mypassword *

//myusername是你的vpn帳號,mypassword是你的vpn的密碼,*表示對任何ip,記得不要丟了這個星號。我這裡根據這個格式,假設我的vpn的帳號是ksharpdabu,密碼是 sky。那麼,應該如下:

ksharpdabu pptpd sky *

############################完############################# 如果一件安裝包都不知道用,那就真的沒法子了

FAQ:

1.報錯:重啟時候提示

# service pptpd restart
Shutting down pptpd: [失敗]
Starting pptpd: [失敗]
Warning: a pptpd restart does not terminate existing
connections, so new connections may be assigned the same IP
address and cause unexpected results. Use restart-kill to
destroy existing connections during a restart.

解決辦法:根據提示,可能是你重啟pptpd服務的時候,沒有切斷已經存在的連線,所以新的連線會被分配為相同的ip地址,導致一些不可預料的問題。所以你重啟 pptpd服務前,先用下面的命令斷開當前存在的連線:#service pptpd restart-kill,然後再#service pptpd start

2.有的vps不支援加密連線,導致不能撥號成功登陸vpn。

解決辦法:是編輯/etc/ppp/options.pptpd(vim /etc/ppp/options.pptpd),在require-mppe-128前面加個#(# require-mppe-128);

在windows的VPN連線屬性裡,加密方式選擇為可選加密,並允許未加密的密碼。

 

3.能夠直接用域名作為vpn的撥號地址,而不用vps的ip。因為ip不方便記憶,我自己也記不住自己的伺服器的ip。

解決辦法:去dns裡面設定,將域名設定為A記錄,這樣就可以直接用域名作為vpn的伺服器的地址了。

4.有的連結 pptp vpn時候失敗,提示619.

解決辦法:執行下面的命令:

# rm -r /dev/ppp

# mknod /dev/ppp c 108 0 然後重啟VPS即可。