来自:http://www.zhihujingxuan.com/19311.html

【scotttony的回答(41票)】:

VPN和ssh哪个比较好,

要看你怎么定义是“好”。

ssh作为一个创建在应用层和传输层基础上的安全协议,位于网络协议的较高层(相对于VPN来说)。我使用ssh一般作为socks5代理(有人说是位于会话层,未经证实)。将http的报文封装在ssh的数据包里,在客户端和服务器之间传输。

ssh代理用起来很方便,搭配火狐的autoproxy扩展之类,可以很容易做到哪些网站通过ssh访问,哪些不使用ssh,非常灵活,轻量级。

VPN好的地方在于,他更全能。实际大规模使用的VPN至少有四种:PPTP,L2TP,OpenVPN,IPSec。其中L2TP和PPTP作为最老牌的vpn,是工作在OSI七层模型的数据链路层,从下往上第二层,是一个非常底层的网络通信协议,作为底层的隧道技术有什么好处呢,它们 完全不需要上层客户端做任何修改,不需要客户端支持设置代理,不需要客户端做什么设置,不需要客户端任何改变,之前你怎么使用的网络,还是怎么使用。它从底层模拟了vpn服务器的网络环境,给使用网络的上层应用造成了一种假象,让它们以为自己就是在VPN服务器所在的局域网中,没有wall,没有reset,一切都那么美好。

vpn的全能也是有代价的,那就是相对于ssh来说,VPN不够灵活,默认情况下,你连上某个vpn,系统所有的网络流量都会从那个VPN连接走,很多时候是不必要的,例如上国内网站的时候,你总不希望你看到的视频内容是从youku连到国外vpn服务器,再从vpn服务器走回到国内你的客户端吧,绕了一圈,丢包率和延时直接上了一个台阶。

当然你也可以手动改路由表,选择哪些流量走vpn,哪些直连,但是这个要比ssh应用规则相对复杂

openvpn和Ipsec不大了解,有人说ipsec位于网络层,本人未证实。我在这里抛砖引玉。

为什么VPN比SSH繁荣?

我想vpn比ssh繁荣由上面的分析来说,已经是显而易见,因为ssh做不了的事情,VPN都可以做;而ssh能做的,VPN也统统能做。

举个例子,国内是上不了推特的,你用ssh代理当然可以通过浏览器上推特,但是我更喜欢像qq那样的客户端上推特,你装上这样的推特客户端,输入用户名,密码,然后就。。。。Oops

你点开客户端的设置选项,大多数情况下,你是找不到代理设置选项的,这时候怎么办?ssh君表示无能为力啊。

这时候我们的VPN上场了,交给我,连上VPN,一切都是那么美好,不仅仅是浏览器,客户端程序也可以连上推特啦啦啦。

还有很多场景,比如某些游戏只能美国ip才能进去玩,那么也只有VPN可以

补充一点:

其实ssh只是代理的一种,代理有很多种,例如http代理反向代理等,这些之所以在国内的网络环境里不堪,主要是因为他们内容传输都是使用明文,不加密的内容很容易被第三方嗅探,然后截断连接,一般情况下,你猜谁会干这个事情???

ssh和vpn都是加密传输,相对安全,在国内恶劣的网络环境下,总算能够生存。

【lookwatchsee的回答(19票)】:

首先,我猜你是想比较VPN和SSL. ssh是一个remote shell 是基于SSL的一种应用,尽管很多人用ssh的转发功能 但是本质上,并没有使用shell, 只是利用了sshd这个软件的SSL proxy的功能。

其次,SSL本身就是VPN的一种,称之为SSL VPN, VPN是外延更广的概念,也不能放在一起比较。

所以我猜你所说的vpn是非SSL VPN,很可能是IPsec,L2TP和PPTP这种基于GRE tunnel的VPN(也有基于其他类型的tunnel 比如ip-ip 或者根本就在tunnel里的,但典型的,是基于GRE tunnel的)。

那么接下来比较一下tunnel-based VPN和SSL VPN。

SSL VPN 的最大好处就是天生可以穿越NAT。因为SSL工作在TCP/UDP之上,有端口号,可以被NAT复用。SSL非常适合远程登陆,也就是client-gateway模式。要知道你在家里面上VPN一般来说肯定是要经过你们家路由器的NAT的,在这方面SSL有先天的优势。缺点也很明显,SSL/TCP VPN本身有TCP melt down的问题(简单的说就是性能太差),web SSL只适合与访问网站。DTLS即SSL/UDP倒是一个方向。

而tunnel-based VPN 穿越NAT需要有专门的feature,比如IPsec有NAT-T。即把数据报文包裹在UDP:4500包里面而不是简单的GRE tunnel,当然如果这么做,其实和DTLS就有点像了。tunnel VPN因为在处理包的时候只看到IP的头(顶多再看看UDP的8字节头部),而且数据通道是无状态的,因此速度特别快。我这么说并没有考虑加解密的开销,因为无论是SSL VPN还是tunnel VPN,加解密现在一般都是专门的硬件来做了。

至于面向远程用户的易用性,SSL VPN除非是client-less模式(应用并不是很多),还是要安装客户端,反而tunnel VPN在主流的操作系统上native支持。比如MAC支持IPsec,LT2P,PPTP,Andorid支持PPTP和L2TP,等等。

因此对于远程登录用户来说,现在SSL相比较Tunnel VPN并无明显优势。

但是有一个优势SSL VPN的一个分支也就是sshd proxy这种技术门槛比较低,一般的用户很容易就可以学会用sshd来搭一个转发服务器。

至于企业用户,tunnel VPN的优势就太大了。像IPSEC的企业网技术远远不是SSL VPN所能达到。比如DMVPN,GETVPN。而且企业网更注重性能。

运营商级别的就不谈了。

所以SSL的应用,现在还不能和tunnel-based VPN相比。

【知乎用户的回答(0票)】:

最令人头痛的问题是SSH不支持”多重链路协议“的并发,链接太多的时候某个链接出问题就卡壳了。需要重新登陆服务器才能恢复正常。

【知乎用户的回答(0票)】:

我猜题主大概是想问跳墙的效果哪个好?是的话继续往下看,不是就不用管我了。

涉及到具体的协议方面的东西我不是太懂,我紧紧从应用上来说。

速度来说,主要看你的网速。因为一般来说买的收费的服务网速都是没问题的。

实用性来说,我觉得ssh更好,局部代理方便。毕竟大多数时候我们只是需要访问那些国外网站才会用到,挂个vpn的话有点划不来,致使国内的网站访问受影响。但是很多软件是不支持设置socks5代理的,这个时候你就需要vpn了。代表场景就是软件要内部连接国外某些服务,还有打游戏。

综合来说,还是买ssh+vpn一号通的服务吧。搜ssh代理,很多服务商都是提供这种一号通服务的。既可以用ssh,也可以用vpn,根据自己的实际使用情况来使用。

我自己现在用的就是这种。

---------------------------------------------------------------------------------------------

以上说的都是普通用户的情况,不考虑自己动手弄ssh然后搞个全局代理或者弄vpn搞个路由表。

毕竟普通用户大概是不想这么折腾的。

【逸山的回答(0票)】:

就FQ而言,vpn适合全局FQ,ssh适合智能FQ。

【知乎用户的回答(0票)】:

另一个原因ssh用户登录的权限比较大 对系统危害大,系统要是有个权限漏洞就悲剧了

【张峥的回答(0票)】:

ssh似乎只能建立一个连接,看图片多的网站,加载很慢,一个图片卡住,后边的都要排队等着超时。

原文地址:知乎

【网络】VPN和代理服务器的区别的更多相关文章

  1. DevOps之虚拟专用网络VPN

    唠叨话 关于德语噢屁事的知识点,仅提供专业性的精华汇总,具体知识点细节,参考教程网址,如需帮助,请留言. <虚拟专用网络VPN(Virtual Private Network)> 关于虚拟 ...

  2. Web服务器、Web容器、Application服务器、反向代理服务器的区别与联系

    在Web开发中,经常会听到Web服务器(Web Server).Web容器(Web Container).应用服务器(Application Server).反向代理服务器(Reverse Proxy ...

  3. 虚拟专用网络VPN

    寒假回到家里需要下载论文,怎样才能访问学校图书馆的数据库呢?解决方法是学校图书馆在内网中架设一台VPN服务器,VPN服务器有两块网卡,一块连接内网,一块连接公网.然后就可以通过互联网找到VPN服务器, ...

  4. 网络知识===TCP/UDP的区别

    TCP(传输控制协议,Transmission Control Protocol): 1)提供IP环境下的数据可靠传输(一台计算机发出的字节流会无差错的发往网络上的其他计算机,而且计算机A接收数据包的 ...

  5. [网络编程] TCP、UDP区别以及TCP传输原理、拥塞避免、连接建立、连接释放总结

    TCP.UDP都是属于运输层的协议,提供端到端的进程之间的逻辑通信,而IP协议(网络层)是提供主机间的逻辑通信,应用层规定应用进程在通信时所遵循的协议.一.UDP主要特点:传输的是用户数据报协议.1. ...

  6. 一个CentOS7的开发环境部署,包括防火墙|VPN|多IP多网关|HTTP代理服务器设置等

    http://www.lenggirl.com/code/centos7.html layout: post title: "一个CentOS7的开发环境部署,包括防火墙|VPN|HTTP代 ...

  7. VPN+NAT实现代理服务器功能

    前话 用VPN+NAT再结合路由可以实现很方便的代理功能,适用于有一台能方便连接Internet的电脑,其他不在同一子网内的电脑能够连接到这台机器但不能完全访问Internet.比如好些学校的校园网, ...

  8. vpn速度太慢?先从本地网络着手

    使用VPN,用户们抱怨的最多的是速度太慢这个问题,导致网页打不开或者打开缓慢,游戏延迟变高或者根本无法游戏,甚至无法连接等.那么我们今天就来全面解析下VPN的速度是由什么因素引起的. vpn速度过慢 ...

  9. 网络通信协议tcp,udp区别

    1 网络通信协议 Tcp udp的区别 重点(*****) Tcp三次握手四次挥手(******) udp客户端多人聊天 import socket udp_client = socket.socke ...

随机推荐

  1. iOS: 聊聊 Designated Initializer(指定初始化函数)

    iOS: 聊聊 Designated Initializer(指定初始化函数) 一.iOS的对象创建和初始化 iOS 中对象创建是分两步完成: 分配内存 初始化对象的成员变量 我们最熟悉的创建NSOb ...

  2. R语言 小程序

    x<-sample(1:11) x 日期和时间 ###Data and Time### > data_time <- data.frame(data = c("2015-0 ...

  3. poj3070 (斐波那契,矩阵快速幂)

    Fibonacci Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9630   Accepted: 6839 Descrip ...

  4. iOS resign code with App Store profile and post to AppStore

    http://stackoverflow.com/questions/17545452/ios-resign-code-with-app-store-profile-and-post-to-appst ...

  5. 转:利用node压缩、合并js,css,图片

    1.安装nodejs http://nodejs.org/ 2.安装各自的node package js我用的是UglifyJS github地址:https://github.com/mishoo/ ...

  6. C语言中free函数是如何确定要释放多少内存空间的

    本文链接:http://www.cnblogs.com/xxNote/p/4009359.html 今天看书的时候看到free函数释放动态申请的内存时只需要把内存块的首地址传过去就行了,显然仅仅依靠首 ...

  7. oracle 行列转换的运用

    问题: 员工表: A(E_ID,NAME,) 部门表:  B(D_ID,D_NAME) 员工与部门关系:C(ID,E_ID,D_ID) SELECT  A.E_ID,A.NAME ,B.D_NAME ...

  8. Java多线程文件下载

    一. 多线程下载文件考虑处理步骤: 1. 如何获取文件的长度 2. 合理的创建线程数量,并计算每一个线程下载的长度 3. 如何将多个线程下载的字节写入到文件中 二. 代码实现如下: package c ...

  9. class training

    实验3-1 分别使用while循环.do while循环.for循环求 (即求1+2+3+ --+100). 参考: 源码 方法一#include<stdio.h> int main(){ ...

  10. 学号160809224姓名黄家帅c语言程序设计实验2 选择结构程序设计

    实验2-1 输入3个数,并按由大到小的顺序输出. 实验要求: 编写一个C程序,输入3个数,并按由大到小的顺序输出. 源码: #include <stdio.h>void main(){ i ...