Centos 6.5 64位安裝VPN
一、首先檢查你VPS的PPP和TUN有沒有啟用:
cat /dev/ppp
cat /dev/net/tun
顯示結(jié)果為:
- cat: /dev/ppp: No such device or address
- cat: /dev/net/tun: File descriptor in bad state
表明通過,上述兩條只要有一個沒通過都不行。如果沒有啟用,你可以給VPS提供商Submit 一個 Ticket請求開通:
- Hello
- Could you enabled TUN-TAP for me? I want run pptp-vpn on my VPS.
- Thank you.
確認 PPP 和 TUN 啟用后,開始安裝 ppp 和 iptables:
- yum install -y ppp iptables
二、安裝pptp:
- rpm -ivh http://acelnmp.googlecode.com/files/pptpd-1.3.3-1.rhel4.1.i386.rpm(適用32位系統(tǒng))
- rpm -ivh http://acelnmp.googlecode.com/files/pptpd-1.3.3-1.rhel4.x86_64.rpm(適用64位系統(tǒng))
三、配置pptp,編輯/etc/pptpd.conf文件:
- vim /etc/pptpd.conf
把下面字段前面的#去掉:
- localip 192.168.0.1
- remoteip 192.168.0.234-238,192.168.0.245
四、編輯/etc/ppp/options.pptpd 文件:
- vim /etc/ppp/options.pptpd
去掉ms-dns前面的#,并使用Google的DNS服務(wù)器,修改成如下字段:
- ms-dns 8.8.8.8
- ms-dns 8.8.4.4
五、設(shè)置VPN賬號密碼,編輯/etc/ppp/chap-secrets這個文件:
- vim /etc/ppp/chap-secrets
六、修改內(nèi)核設(shè)置,使其支持轉(zhuǎn)發(fā),編輯 /etc/sysctl.conf 文件:
- vim /etc/sysctl.conf
將“net.ipv4.ip_forward”的值改為1,同時在“net.ipv4.tcp_syncookies = 1”前面加#
七、使 sysctl.conf 配置文件生效并添加 iptables 轉(zhuǎn)發(fā)規(guī)則:
- sysctl -p iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source ***.***.***.*** (***.***.***.***為你VPS的公網(wǎng)IP地址)
- iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 1723 -j ACCEPT #注:這條命令盡量放在防火墻列表前面幾條不然可能會阻止
保存iptables轉(zhuǎn)發(fā)規(guī)則:
- /etc/init.d/iptables save
重啟 iptables:
- /etc/init.d/iptables restart
重啟pptp服務(wù):
- /etc/init.d/pptpd restart
設(shè)置開機自動運行pptp服務(wù):
- chkconfig pptpd on
設(shè)置開機自動運行iptables服務(wù):
- chkconfig iptables on
到此安裝配置結(jié)束了。
======================以下是疑難問題解答=================================
iptables轉(zhuǎn)發(fā)規(guī)則寫錯了會出現(xiàn)錯誤678提示(親歷),可用
iptables -F 刪除舊規(guī)則再配置!
iptables使用方法見http://hi.baidu.com/756091339/item/41c7515418213a474fff207b
如果出現(xiàn)錯誤619則輸入命令
- rm /dev/ppp
- mknod /dev/ppp c 108 0
還不管用的話(有時出現(xiàn)錯誤651),請下載vps 上/var/log/messages 查看日志,最后發(fā)現(xiàn):
- Jan 2 07:26:11 fr pptpd[1604]: CTRL: Starting call (launching pppd, opening GRE) Jan 2 07:26:11 fr pppd[1605]: Plugin /usr/lib/pptpd/pptpd-logwtmp.so is for pppd version 2.4.3, this is 2.4.5 Jan 2 07:26:11 fr pptpd[1604]: GRE: read(fd=6,buffer=804fa20,len=8196) from PTY failed: status = -1 error = Input/output error, usually caused by unexpected termination of pppd, check option syntax and pppd logs Jan 2 07:26:11 fr pptpd[1604]: CTRL: PTY read or GRE write failed (pty,gre)=(6,7)
- Jan 2 07:26:11 fr pptpd[1604]: CTRL: Client X.X.X.X control connection finished
logwtmp插件版本不兼容出錯了!
vi /etc/pptpd.conf
找到logwtmp,在前面加#
- service pptpd restart
就解決了?。。?/span>
如果你需要圖形化管理VPN的話,建議使用Webmin:
- rpm -ivh http://nchc.dl.sourceforge.net/project/webadmin/webmin/1.510/webmin-1.510-1.noarch.rpm
注意:如果虛擬機內(nèi)核不支持MPPE的話,無法使用加密,用WINDOWS默認VPN連接會顯示“證書信任錯誤”。
解決方法:修改/etc/ppp/options.pptpd注釋掉require-mppe-128這行,然后windows的vpn撥號的屬性改為可選加密,再次連接就成功了。
另外附上有用命令:
使用命令查看pptpd服務(wù)進程、端口和接口 使用ps命令檢查pptpd進程:
- ps -ef |grep pptpd
使用netstat命令檢查pptpd運行的端口:
- netstat -nutap | grep pptpd
使用ifconfig命令查看ppp0接口
centos設(shè)置VPN后,客戶端連接提示錯誤800!
我是直接把iptables關(guān)閉了!哈哈 反正先連接進去再說了。
- iptables -P INPUT ACCEPT
- iptables -P OUTPUT ACCEPT
- iptables -F
- iptables -X
- iptables -P INPUT ACCEPT
- iptables -P OUTPUT ACCEPT
- /etc/init.d/iptables save