你瞭解VPN的PPTP、L2TP、OpenVPN協議嗎?
一、PPTP、L2TP、OpenVPN三種隧道協議的概念
1、PPTP(Point toPoint Tunneling Protocol,點對點隧道協議)預設埠號:1723
PPTP,即PPTF協議。該協議是在PPP協議的基礎上開發的一種新的增強型安全協議,支援多協議虛擬專用網(VPN),可以通過密碼身份驗證協
議(PAP)、可擴充套件身份驗證協議(EAP)等方法增強安全性。可以使遠端使用者通過撥入ISP、通過直接連線Internet或其他網路安全地訪問企業
網。
點對點隧道協議(PPTP)是一種支援多協議虛擬專用網路的網路技術,它工作在第二層。
通過該協議,遠端使用者能夠通過 Microsoft Windows NT工作站、Windows xp 、Windows 2000
和windows2003、windows7作業系統以及其它裝有點對點協議的系統安全訪問公司網路,並能撥號連入本地ISP,通過Internet
安全連結到公司網路。
PPTP協議是點對點隧道協議,其將控制包與資料包分開,控制包採用TCP控制。PPTP使用TCP協議,適合在沒有防火牆限制的網路中使用。
百度百科:http://baike.baidu.com/link?url=hHnpi2pyUWox7o6tbuGhyEi-jUPBmtpxlWRvVvE_LZfTAFmQOY2KPXqUzfAPHcql
2、L2TP(Layer 2Tunneling Protocol,第二層隧道協議)
L2TP是一種工業標準的Internet隧道協議,功能大致和PPTP協議類似,比如同樣可以對網路資料流進行加密。不過也有不同之處,比如PPTP要求網路為IP網路,L2TP要求面向資料包的點對點連線;PPTP使用單一隧道,L2TP使用多隧道;L2TP提供包頭壓縮、隧道驗證,而PPTP不支援。
L2TP是一個數據鏈路層協議,基於UDP。其報文分為資料訊息和控
制訊息兩類。資料訊息用投遞 PPP
幀,該幀作為L2TP報文的資料區。L2TP不保證資料訊息的可靠投遞,若資料報文丟失,不予重傳,不支援對資料訊息的流量控制和擁塞控制。控制訊息用以
建立、維護和終止控制連線及會話,L2TP確保其可靠投遞,並支援對控制訊息的流量控制和擁塞控制。
L2TP是國際標準隧道協議,它結合了PPTP協議以及第二層轉發L2F協議的優點,能以隧道方式使PPP包通過各種網路協議,包括ATM、SONET和幀中繼。但是L2TP沒有任何加密措施,更多是和IPSec協議結合使用,提供隧道驗證。
L2TP使用UDP協議,一般可以穿透防火牆,適合在有防火牆限制、區域網使用者,如公司、網咖、學校等場合使用。
PPTP和L2TP二個連線型別在效能上差別不大,如果使用PPTP不正常,那就更換為L2TP。
百度百科:http://baike.baidu.com/link?url=t6G3hu_r6-pfi-GN8cCXg5Vx3F_Rk4fEdvXS80l2zstTub7gXMNQzOIPTKfjd_FU
3、OpenVPN
OpenVpn的技術核心是虛擬網絡卡,其次是SSL協議實現。
虛擬網絡卡是使用網路底層程式設計技術實現的一個驅動軟體,安裝後在主機上多出現一個網絡卡,可以像其它網絡卡一樣進行配置。服務程式可以在應用層開啟虛擬網
卡,如果應用軟體(如IE)向虛擬網絡卡傳送資料,則服務程式可以讀取到該資料,如果服務程式寫合適的資料到虛擬網絡卡,應用軟體也可以接收得到。虛擬網絡卡在
很多的作業系統下都有相應的實現,這也是OpenVpn能夠跨平臺一個很重要的理由。
OpenVPN使用OpenSSL庫加密資料與控制資訊:它使用了OpenSSL的加密以及驗證功能,意味著,它能夠使用任何OpenSSL支援的演算法。它提供了可選的資料包HMAC功能以提高連線的安全性。此外,OpenSSL的硬體加速也能提高它的效能。
OpenVPN所有的通訊都基於一個單一的IP埠,預設且推薦使用UDP協議通訊,同時TCP也被支援。
在選擇協議時候,需要注意2個加密隧道之間的網路狀況,如有高延遲或者丟包較多的情況下,請選擇TCP協議作為底層協議,UDP協議由於存在無連線和重傳機制,導致要隧道上層的協議進行重傳,效率非常低下。
OpenVPN是一個基於SSL加密的純應用層VPN協議,是SSL VPN的一種,支援UDP與TCP兩種方式(說明:UDP和TCP是2種通訊協議,這裡通常UDP的效率會比較高,速度也相對較快。所以儘量使用UDP連線方式,實在UDP沒法使用的時候,再使用TCP連線方式)。
由於其執行在純應用層,避免了PPTP和L2TP在某些NAT裝置後面不被支援的情況,並且可以繞過一些網路的封鎖(通俗點講,基本上能上網的地方就能用OpenVPN)。
OpenVPN客戶端軟體可以很方便地配合路由表,實現不同線路(如國內和國外)的路由選擇,實現一部分IP走VPN,另一部分IP走原網路。
百度百科:http://baike.baidu.com/link?url=00I2C_Gm7Xvcma3QJYHCrJJ0-xcdcNbcSAMNyuxozggQ0LVxeOkZklkiMqbL_j37D0ucvHfsWmlaZbQUlhxO3q
二、PPTP、L2TP、OpenVPN三種隧道協議的優缺點對比
易用性: PPTP > L2TP >OpenVPN
速度: PPTP > OpenVPN UDP> L2TP > OpenVPN TCP
安全性: OpenVPN > L2TP >PPTP
穩定性: OpenVPN > L2TP >PPTP
網路適用性:OpenVPN > PPTP > L2TP
三、VPN協議的選擇
電腦上優先使用PPTP,無法使用可以嘗試L2TP,對安全性要求高的優先使用OpenVPN。手持裝置推薦使用L2TP。
PPTP: 最常用,設定最簡單,大多數裝置都支援;
L2TP: 支援PPTP的裝置基本都支援此種方式,設定略複雜,需要選擇L2TP/IPSec PSK方式,且設定預共享金鑰PSK;
OpenVPN:最穩定,適用於各種網路環境,但需要安裝第三方軟體和配置檔案,較複雜。
這些協議飛翔vpn都有,現在立即註冊賬戶,飛翔vpn送180天免費使用權。也就是飛翔vpn/加速器是一款免費vpn,可免費使用180天,飛翔vpn官網:www.197top.com
四、CentOS PPTP 安裝與部署
1、準備環境
yum install perl ppp iptables
2、安裝PPTPD
對於32位CentOS,執行:
wgethttp://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.i386.rpmrpm -ivhpptpd-1.3.4-1.rhel5.1.i386.rpm
對於64位CentOS,執行:
wgethttp://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.x86_64.rpmrpm -ivhpptpd-1.3.4-1.rhel5.1.x86_64.rpm
3、修改配置
(1)修改主配置檔案/etc/pptpd.conf.只需要加入下面兩行:
ocalip 192.168.254.1remoteip192.168.254.100-254
Localip這行是給vpn伺服器設定一個隧道ip,Remoteip是自動分配給客戶端的ip地址範圍。
(2)修改選項檔案/etc/ppp/options.pptpd.需要設定分配給客戶端的dns,因此僅需把ms-dns前的註釋去掉,改成可用的dns如下:
ms-dns 61.135.154.5 ms-dns 159.226.240.66
為了方便檢視除錯資訊,把debug行前面的註釋取消即可。Dump前的註釋也取消。
ms-dns 8.8.8.8ms-dns 8.8.4.4
(3)CentOS安裝pptpd新增帳號。通過編輯檔案/etc/ppp/chap-secrets逐行加入;一個賬號佔一行。
一行分4列,其表示如下:使用者名稱 伺服器名 密碼 ip
testuser pptpd testpwd *
testuser、testpwd對應修改為自己希望的VPN登入使用者名稱和密碼,* 表示有pptpd隨機分配ip。
(4)開啟ip轉發功能,將/etc/sysctl.conf 檔案中net.ipv4.ip_forward設定為 1 (如果沒有,則按照格式新建一行):
net.ipv4.ip_forward = 1
儲存退出,執行:
/sbin/sysctl -p
4、設定iptables轉發
/etc/init.d/iptables start/sbin/iptables -tnat -A POSTROUTING -o eth0 -s 192.168.254.0/24 -jMASQUERADE/etc/init.d/iptables save/etc/init.d/iptables restart
注意,上面的192.168.254.0 應該與之前設定的網段對應。
5、設定開機啟動
chkconfig pptpd on
chkconfig iptables on
重啟計算機即可進行連線,並且能夠正常上網。
如果重啟伺服器後,無法連線VPN,首先檢查伺服器的PPTP服務1723埠是否已開啟(注意設定防火牆允許此埠);如果可以連線VPN,但是無法正常上網,則檢查iptables是否正常轉發。
五、使用VPNFQ上網過程中的各種常見問題解決方法
1、連上VPN後無法訪問網站?
很多人連上了VPN,QQ提示在美國登陸。卻任然無法訪問一些國外的網站,或者打不開,或者開啟很慢。其實都是因為預設DNS的問題。連線VPN後IP已經更換為國外IP如果你之前設定的是國內dns,就會出現這些問題。
您
只需要進入網路上的芳鄰->檢視網路連線->右鍵本地連線(如果是無線上網,請選擇無線連線)點選屬性->找到TCP/IP協議點選屬性,
修改DNS為首選8.8.8.8備選8.8.4.4。停用本地連線再啟用。或者進入命令提示行狀態下輸入“ipconfig
/flushdns”再次連線VPN,就會發現一切都正常了。
8.8.8.8和8.8.4.4均為google的免費dns解析伺服器,也可以使用OpenDNS為:
208.67.222.222
208.67.220.220
2、連不上VPN,提示800錯誤?
如果連不上vpn伺服器,並且提示800錯誤。
首先,VPN必須要在聯網狀態下才能使用。
其次,請檢查您的線路地址(vpn伺服器地址)有沒有填錯,該欄是IP欄位,諸如這樣的格式:222.22.2.2(IP格式是用三個.分隔的數字,每格數字位數為1~3位),這段是不需要填入伺服器地址一欄的。
如果都確認沒有問題,但是還是連不上VPN伺服器,那推薦您嘗試vpn提供商所提供的客戶端連線。
3、登入vpn伺服器619錯誤?
如果您使用路由器上網,首先請嘗試將您的路由器的DMZ設定成您的主機地址,看是否能夠正常連線。
然後請您嘗試將VPN連結的屬性設定/安全/VPN型別改為PPTP就連線,然後再嘗試一下。
如果還是不行,那麼這種情況大數多原因為客戶機連線Internet的閘道器(如家庭寬頻路由或公司上網閘道器路由或防火牆)NAT-T功能關閉或對VPN支援性不好,主要是對GRE及PPTP協議的NAT-T不支援。
可開啟閘道器路由的NAT-T功能,如果還是出現錯誤,則需要更換閘道器裝置,現在市面上大多數裝置已經支援或者建議您換個網路環境試試看,如果其他網路環境可以,則基本可以斷定是您的路由器或者防火牆不支援或者禁止了VPN PPTP協議,可以嘗試開啟這個選項。
如
果你使用PPTP模式連線的話,需要開啟TCP47和TCP1723這兩個埠,也就是說路由器不能封這兩個埠,使用L2TP模式時需要開啟的是UDP
500、UDP 1701、UDP
4500這幾個埠,同理路由器防火牆或者您安裝的防火牆軟體也不能遮蔽這些埠。如果路由器支援DMZ,請將路由器的DMZ設定成您的主機內網IP。
4、登入vpn伺服器691錯誤?
a. 這種情況大數多原因為客戶機連線VPN伺服器異常中斷,因為某些vpn提供商的免費使用者限制一個帳戶同時只有一個客戶端連線使用,所以一旦異常斷開,則需等待一段時間才能重新連線。
b. vpn服務大多是有流量限制的,如果您的流量用完了也會提示此錯誤。
c. 如果您的使用者名稱含有特殊字元,如引號冒號等等,即使註冊了帳戶,但是由於VPN伺服器不能識別這些特殊字元,VPN將拒絕認證,請您重新註冊一個帳戶。
5、登入vpn伺服器768錯誤?
使用windows xp很容易出現768錯誤,可以嘗試以下方法解決。
點選電腦左下角”開始” -> “執行”,輸入命令“services.msc”,然後在服務中找到並啟用“IPSEC services”即可,如為了方便以後經常使用L2TP IPsec VPN,則可以把該項服務設定為“自動”。
6、登入vpn伺服器792錯誤?
使用L2TP模式時候出現VPN 792錯誤,由於預設的Windows XP L2TP 傳輸策略不允許L2TP 傳輸不使用IPSec 加密。VISTA和WIN7以上系統沒有這個問題。
WIN XP使用者需要修改登錄檔解決這個問題,手動修改:
a. 進入Windows XP 的“開始” “執行”裡面輸入“Regedt32”,開啟“登錄檔編輯
器”,定位“HKEY_Local_Machine \ System \ CurrentControl Set \ Services \ RasMan\ Parameters ”主鍵。
b. 為該主鍵新增以下鍵值:
鍵值:ProhibitIpSec
資料型別:reg_dword
值:1
7、其他偶爾出現的錯誤提示(錯誤:691、721、756、651、711)怎麼解決呢?
錯誤691:
a. 更換線路嘗試。
b. 檢視賬戶密碼是否正確。
c. 登陸網站後臺看下賬戶資訊是否過期,或者看下線上還是離線狀態。
錯誤721:有防火牆限制、區域網使用者,如果公司、網咖、學校等場合可能被限制。使用之前可以測試下。
錯誤756:關閉聯結器重新開啟即可再次嘗試連線即可。
錯誤651:請重啟計算機
錯誤711:解決方法:啟動Remote Access Connection Manager與Network Connections與Telephony服務。
啟動方法一:開始->執行->在裡面輸入:services.msc ->(雙擊)Remote Access Connection Manager與Network Connections與Telephony->啟動這三項服務
啟動方法二:新建一個文字檔案(字尾為.txt)的檔案,將下面的內容
複製進去:
@echo開啟VPN執行環境必要系統服務
@pause
sc config TapiSrv start= AUTO
sc config Netman start= AUTO
sc config RasMan start= AUTO
Net start TapiSrv
Net start RasMan
Net start Netman
@pause
點選選單->檔案->另存為;檔案型別選“所有檔案”;檔名“服務.bat”;儲存好後雙擊開啟“服務.bat”,即可完成系統服務設定
8、連線不上免費VPN怎麼辦?
連線不上VPN一般有多種原因,有可能是您的網路不支援直接連線到VPN伺服器,可以通過在命令列執行 ping vpn的ip
來測試。如果ping命令正常,那麼請使用telnet vpn的ip
1723這個命令,如果無法連線,則說明您的防火牆或者路由器不支援PPTP的VPN,由於PPTP使用的TCP協議,適合沒有防火牆限制的網路。而
L2TP使用的是UDP協議,一般可以穿透防火牆,適合有防火牆限制、區域網使用者,如公司、網咖、學校等場合。
9、能夠連上VPN伺服器,但是馬上就斷開或者什麼網頁也打不開了怎麼辦?
出現這種情況一般是使用者使用路由器才有的。
a. 首先很有可能是您的路由器開啟了QOS功能或SPI防火牆之類的會干擾VPN資料流的功能,請關閉它們以後再試試。
b. 如果所有網頁都打不開,首先先確認路由器分配的dns是否已經修改(使用windows的使用者需要清除dns快取執行命令ipconfig /flushdns),然後檢視路由器的MTU是否是預設值1492,如果不是請修改為1492。