VPN-X典型網路部署圖 原理
VPN-X目前套用TUN與TAP技術來完成虛擬網卡(封裝乙太網數據-傳遞乙太網數據-恢復乙太網數據).在未來的版本中可能不依賴TUN/TAP技術,還可以使用其它技術來完成乙太網數據的封裝.
傳輸方式上VPN-X可以選用以下協定:UDP,TCP,JavaSSL(JSSE),OpenSSL。VPN-X支援在同一進程中使用上述協定。至於穿越NAT方面,VPN-X支持UDP穿越NAT,而不支持其它協定穿越NAT。
兼容性
得益於Java跨平台特性,目前VPN-X可在MicrosoftWindows2000以上、Linux、MacOSX等系統之上運行。但是值得注意的是,在Linux平台上需要核心支持TUN/TAP模組;MacOSX也需要第三方提供的驅動。這並非VPN-X特有的操作,hamachi等軟體目前也需要類似的操作。幸運的是VPN-XMacOSX版本目前已經集成這些驅動,用戶不用再理會那些安裝驅動的命令行了.
VPN-X支持兩種加密模式:對稱加密
VPN-X建立UDP及TCP傳輸通道時會利用對稱加密技術來對數據進行加密解密.該加密方式適合普通用戶加密要求
非對稱加密,即公鑰私鑰機制.
VPN-X建立SSL傳輸通道時會利用SSL自帶的非對稱加密技術來加密解密.該加密方式適合企業級的套用及對加密有特殊要求的用戶.目前VPN-X可以支持JavaSSL和OpenSSL.注意對OpenSSL支持將在VPN-X3.0中完成,目前還在Alpha測試.VPN-X3.0支持SSL2,SSL23,SSL3,TLS1.0,DTLS1.0.
爭論
Java性能一直是爭論的焦點。由Java實現的VPN,目前主流是基於瀏覽器的,比如SSL-Explorer等。VPN-X則使用了VPN的另一種實現方式,即使用TUN/TAP。VPN-X亦受Java的速度影響,但是VPN-X核心是使用JNI技術來完成Java和C語言對接,這樣可以改善VPN的性能表現。
VPN技術主要可以解決兩個問題:
安全性(SSL/TLS可以解決這個問題)
將Internet轉換成區域網路。這一轉換涉及到速度問題,但是Java並非網路傳輸的主要瓶頸。相比之下,Internet目前的傳輸速度在性能上的影響更大,所以Java在VPN的套用上還是可以進一步延伸,而不是只停留在瀏覽器的套用上。

