一、檢查1.0 # modPRobe ppp-compress-18 && echo ok(用模塊方式支持MPPE加密模式瀏覽,如果內核支持檢測不到。)
這條執行執行后,顯示“ok”則表明通過,如果顯示“Module ppp_mppe not found.”,那我們先手動升級mppe 1)首先切換到 cd /tmp 目錄 2)下載:
wget http://poptop.sourceforge.net/yum/stable/packages/dkms-2.0.17.5-1.noarch.rpm wget http://poptop.sourceforge.net/yum/stable/packages/kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
dkms是一個新的軟件,能讓你在不編譯內核的基礎上,外掛一些內核的模塊。 kernel_ppp_mppe就是mppe支持的內核模塊了。 3)安裝
rpm -ivh dkms-2.0.17.5-1.noarch.rpm rpm -ivh kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
以上二個是為CENTOS加載MPPE[MICROSOFT的加密協議] ..不安裝的話就不能使用加密連接
4)如果沒有出現錯誤,gcc is needed by kernel_ppp_mppe-1.0.2-3dkms.noarch,則跳過這一步
yum -y
install
gcc gcc-c++
ps:(rpm的安裝方式比較原始,如果依賴的庫不存在,就是提示錯誤;yum的安裝方式相對先進,如果依賴的庫不存在,就會關連下載安裝
網上有很多用rpm的方式裝gcc坑了我不少啊,老師not found such file,不知道我等小白只懂得復制粘貼,我去哪給你找這個file再rpm安裝?。?/p>
成功之后,我們再安裝剛才失敗的那一步,
rpm -ivh kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
2.0 檢查ppp和tun有沒有啟用
cat /dev/ppp cat /dev/net/tun
顯示結果為:
則通過,否則
你可以給VPS提供商Submit 一個 Ticket請求開通:
--結束
二、安裝ppp和iptables。默認情況下,完整的CentOS是帶有這兩個組件的,但是精簡版的系統可能沒有。我們輸入下面的命令來確認,如果沒有則進行安裝,有的話系統不會做任何動作:
yum install -y ppp iptables
三、安裝pptp。這個軟件在yum源里是沒有的,我們需要手動下載。我們先切換到tmp目錄:
#cd /tmp
然后執行下面的命令來下載pptp安裝包:
#wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.i386.rpm (32位系統使用)
#wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.x86_64.rpm (64位系統使用)
如果你的CentOS是32位的,則執行32位的那條指令;如果是64位的CentOS,則執行64位的那條指令。注意不要搞錯了。
接下來安裝pptp,同樣分32位和64位系統:
#rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm (32位系統使用)
#rpm -ivh pptpd-1.3.4-1.rhel5.1.x86_64.rpm (64位系統使用)
1)出現” ppp = 2.4.4 is needed by pptpd-1.3.4-1.rhel5.1.x86_64“的錯誤
運行命令,查看ppp版本:yum list installed ppp
結果顯示:ppp.x86_64 2.4.5-5.el6
在網上搜索了一下ppp跟pptp版本的對應關系如下:
ppp 2.4.4——————>pptpd 1.3.4
ppp 2.4.5——————>pptpd 1.4.0
也就是說我們之前安裝的pptpd1.3.4的版本太低了不行,要1.4.0的才行。
看來只能讓電腦自動選擇對應的pptpd版本了。
首先先加入yum源:#rpm -Uvh http://poptop.sourceforge.net/yum/stable/rhel6/pptp-release-current.noarch.rpm
然后用yum安裝pptpd:
#yum install pptpd
一般電腦都會成功安裝pptpd,
結果顯示pptpd.x86_64 1.4.0-1.el6
四、修改配置文件
1.0配置文件/etc/ppp/options.pptpd
#cp /etc/ppp/options.pptpd /etc/ppp/options.pptpd.bak
先備份一個文件到bak,在再原來的文件上修改
#vim/etc/ppp/options.pptpd
在末尾加入,兩行google的dns服務器。
ms-dns 8.8.8.8 ms-dns 8.8.4.4
在這里有些朋友會不懂得編輯加入這兩行數據,補補編輯的命令吧:
1.0 按i可以進入編輯模式(左下角會有--insert--標記),要想結束編輯可以按esc可以進入命令模式,在命令模式下輸入 : 進入末行模式 。
2.0 xshell 保存文件常用命令保存,但不退出 vi:w
保存并退出 vi:wq
退出 vi,但不保存更改:q!
用其他文件名保存:w filename
在現有文件中保存并覆蓋原文件:w! filename
最好打開這個文件里的debug選項(去掉debug前面的“#”),以方便我們在出錯的查看日志排錯。錯誤日志在/var/log/messages里,用命令:cat /var/log/messages | grep pptpd 查看有關PPTP的錯誤信息
2.配置文件/etc/ppp/chap-secrets
#cp /etc/ppp/chap-secrets /etc/ppp/chap-secrets.bak #vim/etc/ppp/chap-secrets
# Secrets for authentication using CHAP# client server secret IP addresses
name pptpd pwd *
格式:用戶名+空格+pptpd+密碼+*,*表示對任何ip都可以使用這個vpn,記得不要丟了這個星號。
一行表示一個賬戶密碼,可以多行,如果前面自動補了#記得刪除#,因為#表示注釋。
3.配置文件/etc/pptpd.conf
#cp /etc/pptpd.conf /etc/pptpd.conf.bak#vim/etc/pptpd.conf
添加下面兩行:
localip 192.168.0.1remoteip 192.168.0.234-238,192.168.0.245//表示vpn客戶端獲得ip的范圍
關鍵點:1.pptpd.conf這個配置文件必須保證最后是以空行結尾才行,否則會導致啟動pptpd服務時,出現“Starting pptpd:”,一直卡著不動的問題,無法啟動服務,切記呀!2.這里的IP段設置,將直接影響后面的iptables規則添加命令。
4.配置文件/etc/sysctl.conf
#vim/etc/sysctl.conf //修改內核設置,使其支持轉發
將net.ipv4.ip_forward = 0 改成 net.ipv4.ip_forward = 1
保存修改后的文件,
并執行下面的命令來生效它:
#sysctl -p
接著又蹦出了下面的錯誤:(有錯誤我們一定先解決錯誤,對吧)
error: "net.bridge.bridge-nf-call-ip6tables" is an unknown keyerror: "net.bridge.bridge-nf-call-iptables" is an unknown keyerror: "net.bridge.bridge-nf-call-arptables" is an unknown keynet.netfilter.nf_conntrack_max = 64000error: permission denied on key 'net.nf_conntrack_max'
又在網上七找八翻的終于找到了,據說是openvz模版的問題(谷歌翻譯是這樣說的),要進行修復操作, 執行下面四個命令
修復modprobe的:
rm -f /sbin/modprobe ln -s /bin/true /sbin/modprobe
修復sysctl的:
rm -f /sbin/sysctl ln -s /bin/true /sbin/sysctl
再次執行
#sysctl -p
好了,終于沒報錯了。
五、啟動pptp與iptables
1.0 啟動pptp
#service pptpd start
顯示ok,表明成功,到這一步我們終于可以連上vpn啦,趕緊測試一下吧(能連接上去,但是還沒有網速)
連接提示:
ip:你vps的ip
用戶名,密碼:剛才在/etc/ppp/chap-secrets里面設置,忘記了的可以運行一下命令查看
#vim /etc/ppp/chap-secrets
2.0啟動iptables和nat轉發功能(很關鍵的哦?。。。。。?/strong>
#/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-source 207.210.83.140
//注意:命令中的 "-o eth0"是指定網卡名稱,如果是多個網卡,就根據需要將 -o eth0 改成你 -o ethXX (ehtXX是你網卡的名稱) ,可以通過ifconfig 查看有哪那些連通外網的網卡,一般vps都是單網卡的,而且大都網卡默認名都叫eth0 。但是事情總是多樣的,所以如果你的上網的網卡不是 叫 eth0 ,那么就必須去掉 -o eth0 。直接讓系統判斷你用的網卡,所以將上面的命令改成:
iptables -t nat -A POSTROUTING -s 192.168.9.0/24 -j SNAT --to-source 207.210.83.140
(為什么我的網卡就叫venet0呢!!!所以我決定采用這種方式iptables -t nat -A POSTROUTING-s 192.168.9.0/24 -j SNAT --to-source 207.210.83.140)
接著
#/etc/init.d/iptables save //保存iptables的轉發規則
#/sbin/service iptables restart //重新啟動iptables
最后一步:重啟pptp vpn
#service pptpd restart
如果你走到了這一步恭喜你,vpn已經配置成功啦,趕緊上Google測試一下吧。
另外:可以設置pptp vpn 開機啟動
有的人懶的重啟后手動開啟服務,所以下面我再補上開機自動啟動pptp vpn 和 iptables的命令
#chkconfig pptpd on //開機啟動pptp vpn服務
#chkconfig iptables on //開機啟動iptables
最后感謝@大步:http://www.dabu.info/centos6-4-structures-pptp-vpn.html
@逍遙:http://blog.xaoyo.net/post/359/
新聞熱點
疑難解答