鹤啸九天 自律更自由,平凡不平庸 Less is More

科学上网-How to conquer GFW

2010-08-02
     
阅读量

Notes(温馨提示):

  1. ★ 首次阅读建议浏览:导航指南, 或划到本页末尾, 或直接点击跳转, 查看全站导航图
  2. 右上角工具条搜索文章,右下角二维码关注微信公众号(鹤啸九天),底栏分享、赞赏、评论
  3. ★ 转载请注明文章来源,知识点积累起来不容易,水滴石穿,绳锯木断,谢谢理解
  4. ★ 如有疑问,邮件讨论,欢迎贡献优质资料


【2022-12-27】

来源:http://vc2tea.com/whats-shadowsocks/

这个文章来源于一个朋友在科学上网的过程中,搞不清楚 Shadowsocks 的配置问题,在这里我想按照我对 Shadowsocks 的理解简单梳理一下,以便一些非专业人士也能了解

上网限制

【2023-1-5】互联网审查

限制动机

互联网审查动机或理由:

  • 政治与权力
  • 社会规范与道德
  • 跟安全有关的顾虑。
  • 除此之外,捍卫经济利益亦为互联网审查的动机。

有各种不同的技术手段阻止公众访问资源,各有着不同的成效和副作用。

限制方法

黑名单

黑名单

  • 审查方法:关键字、域名、IP地址。
  • 审查者从不同渠道获得的信息来建构黑名单
  • 部分人/组织会向法院提供审查目标。
  • 此外亦有政府部门主动发掘目标的例子(比如中国大陆和伊朗)。

霍夫曼(Hoffmann)举出了各种用于屏蔽特定网站或网页的技术:

  • 域名服务器缓存投毒
  • 屏蔽特定IP地址
  • 分析与屏蔽URL地址
  • 检查过滤数据包
  • 连接重置。

访问控制

不同的层面上实施互联网审查:

  • 互联网骨干:比如连去其他国家(自治系统)的互联网交换中心(IXP)、海底电缆、卫星互联网访问点、光纤网络。在骨干上进行审查是相对较为困难的,因为其流量十分庞大,需要用到运算速度较佳的设备才足以应付有关要求。除此之外,只在国内传输的内容不能透过这个方法应付。
  • 互联网服务供应商(ISP):包括自愿或强制安装互联网监控及屏蔽设备。英国的ISP可自愿安装有关设备,俄罗斯的ISP则需要按政府要求强制安装之。
  • 个别机构会根据自身政策实施互联网访问控制,不过也有公共或教育机构因应政府要求,而实施有关控制。
  • 个人设备:制造商或销售商可能需按着法律要求,为设备安装审查软件。
  • 应用服务提供者:它们可能需按着相关法规,移除部分内容。外国互联网企业可能需为某些国家的用户进行更为严格的内容审查
  • 证书颁发机构可能须为网站颁发由政府控制的X.509证书,使得中间人能够监控经过TLS加密的连线。
  • 集成大量内容的内容分发网络可能成为审查者的目标。

网络受控原理

上网限制和翻墙基本原理

  1. DNS污染和劫持
  2. 封锁IP
  3. 封锁HTTP代理
  4. 封锁VPN

技术方法

技​​术上审查者可用到以下方法审查互联网内容:

  • 网际协议(IP)地址屏蔽:拒绝访问特定IP地址。若目标网站托管于共享服务器,所有存放在这个服务器的网站皆会被屏蔽。它会影响所有建基于IP的协议,比如HTTP、FTP、POP。典型的突破方法就​​是找一台能够访问目标的代理服务器,不过代理服务器有机会岀现壅塞或被屏蔽的情况。像维基百科般的网站会对代理服务器用户实施一定限制。像Google般的大型网站有着多个用于突破审查的IP地址,不过屏蔽名单可能会于后来把有关地址涵盖在内。此一方法可配合地理屏蔽使用。
  • 域名系统(DNS)过滤与重定向:使得DNS不能够解析被屏蔽的域名,或透过DNS劫持等手段使其返回错误的IP地址。这会影响所有建基于IP的协议。典型的突破方法就是设置一些可正确解析的域名系统,不过DNS同样是审查者屏蔽的目标,他们较有可能对其进行IP地址屏蔽。除此之外,若目标IP地址没有受到屏蔽的话,用户亦可透过绕过DNS来突破之,比如修改Hosts文件、直接把IP输入至网页浏览器的地址栏上。
  • URL地址过滤:不论URL所指定的域名为何,过滤器皆会扫描用户上传的URL字符。这会影响HTTP协议。突破方法有:在URL上使用百分号编码、使用像VPN和TLS/SSL般的加密协议。
  • 数据包过滤:若过滤器侦测到一定次数的敏感字眼,便会强制终止正在传输中的TCP数据包。这会影响所有建基于TCP的协议,不过搜索结果页更有可能受到此一方法的影响。这可用到像VPN和般TLS/SSL的加密连接突破。除此之外,也可透过减小TCP/IP栈的MTU/MSS来突破,这可缩减每个数据包的文本总量。
  • 连接重置: 若然过滤器屏蔽了先前的TCP连接,那么在稍后一段特定时间内,通信两方的设备将不能连接对方。其他用户的通信也可能因需要路由到屏蔽地点而失败。这可透过忽略从防火墙回传过来的重置数据包突破。
  • 断网:较为简单的互联网审查方法就是切断所有的路由器,这可透过操作软件或硬件来实行。突破者可用到卫星网络来突破之。
  • 门户网站审查和移除搜索结果:包括网络搜索引擎在内,主流门户网站可能会在其列表中移除一些它们通常会涵盖的网站,使得不知道如何查找该些网站的用户较难访问之。这样做的效果类似于对有关网站进行审查。有的操作的主要考量点在于当地法规,也有的出自网站的自身考量。比如说Google.de和Google.fr按著当地法律要求,移除了跟新纳粹主义有关的内容。
  • 电脑网络攻击:拒绝服务攻击等手段可产生跟其他屏蔽方法类近的效果,使得用户在一段时间内不能够访问特定网站或网络服务。攻击者可能会在选举前或其他敏感时期使用此一方法。他们的身份较有可能是非国家行为者。

如何绕过审查

绕过互联网审查的方法

  • 代理服务器:代理也称网络代理,是一种特殊的网络服务,允许一个终端(客户端)与另一个终端(服务器)进行非直接连接。一些网关、路由器等网络设备具备网络代理功能。
    • 代理服务有利于保障网络终端的私隐或安全,在一定程度上能够阻止网络攻击。
  • 虚拟专用网:VPN(虚拟私人网路)将专用网络延伸到公共网络上,使用户能够在共享或公共网络上发送和接收数据,像直接连接到专用网络上一样。
    • VPN好处:增加专用网络的功能、安全性和管理,它提供了对公共网络上无法访问的资源访问通常用于远程办公人员。加密很常见但不是VPN连接的固有部分。
  • 球鞋网络:球鞋网路也叫跑腿网络,指通过移动物理媒介而非互联网的方式传输电子资讯的方式。
  • 暗网:黑暗网络简称为暗网,存在于黑暗网络、覆盖网络上的万维网内容,只能用特殊软件、特殊授权、或对电脑做特殊设定才能访问。
  • 各种突破审查工具。
  • 亲身前往没有受到审查的地区。
    • 2017年,一群IT从业员为了规避喀麦隆的互联网审查,而在喀麦隆境外的一条村庄创建“互联网难民营”

每个方法有着不同的连接速度、易用性、安全性。

解法

  1. Socks代理/SSH Socks
  2. Shadowsocks
  3. Shadowsocks-rss
  4. GoAgent和GoProxy
  5. Tor

GFW 诞生

很久以前,我们访问各种网站都是简单而直接的,用户的请求通过互联网发送到服务提供方,服务提供方直接将信息反馈给用户

  • ss-01

when evil comes

有一天,GFW 就出现了,他像一个收过路费的强盗夹在用户服务器之间,每当用户需要获取信息,都经过了 GFW,GFW 将不喜欢的内容统统过滤掉,于是客户当触发 GFW 的过滤规则的时候,就会收到 Connection Reset 这样的响应内容,而无法接收到正常的内容

  • ss-02

GFW 原理

GFW 列表可以参考这里:gfwlist/gfwlist

  • image

科学上网方法

科学上网,又称翻墙 / 番茄 / 爬梯子,是当下青年的必备技能。

科学上网,有两个必要条件:

  • 有一个服务商提供的服务器订阅地址
  • 安装对应的软件

服务商(机场)有很多,价格、节点、带宽和稳定性都丰俭由人,如TAG

  • 机场购买了套餐之后,服务商通常会提供多种格式的订阅地址,如 Clash 或者 SSR 格式的链接
    • 链接提供了一个配置文件,定义了机场提供给不同国家的节点服务器
  • 连接上这些代理服务器中的一个后,就可以自由地访问互联网了。

iOS设备上有效的翻墙方法主要有2种:VPNSSR机场

  • VPN: 适合绝大多数翻墙用户,尤其是技术小白。
    • VPN软件安装方便,一键连接,而且从翻墙安全性角度讲VPN是最好的
    • 因为VPN技术最开始发明出来就是给数据通信加密用的,一般是公司为了传输机密数据或者注重隐私的个人使用,只是通过VPN连接国外的服务器恰好能实现翻墙的功能,VPN更多的是用于企业级别的加密传输,所以考虑到商用原因,在中国不会全面封禁VPN,只会封禁未经许可的服务器IP,这就给拥有IP资源多的大型VPN厂商留下了可操作的空间,比如ExpressVPN的IP资源多到可以和GFW硬刚。墙升级后封一批,就再更新一批,这种猫捉老鼠的游戏已经玩了很多年,而且大型VPN厂商会进行VPN协议的2次开发,比如加入混淆算法,延长被防火长城检测到的时间,如果是自己使用VPS服务器套用标准协议,很快就会被检测到被封;
  • SSR 专门为翻墙而开发的技术:数据的加密和保护远远比不上VPN
    • 如果涉及到账号登录、看涉及政治的网站等敏感信息,一定要选择你信得过的机场。
    • 小机场都不可信,除非是自己搭建,而且小机场存在跑路的风险,每年一到敏感期就有不少小机场降价促销然后跑路,接着换个马甲重新开始坑人。
    • 大机场由于用户量大,存在口碑价值,这方面风险小一些。
    • iPhone最好的SSR客户端是ShadowRocket,但是ShadowRocket是付费软件,很可能外区ID不能支付,需要去淘宝买礼品券。别的几款和“ShadowRocket”类似的软件都很一般,支持的协议和混淆模式很少,可能折腾半天也折腾不出个所以然来。

总之,能用VPN解决的事情就不要使用机场,想方便、安全翻墙只需要正规的VPN就够了,如果使用机场又要确保翻墙的安全性,可以手中备一个机场和VPN,平时使用VPN,机场只作为备用。

总结

哪些国家审查

互联网审查

  • 最严厉的管制: 朝鲜
  • 非常严厉的管制: 津巴布韦 中华人民共和国新疆维吾尔自治区
  • 严厉的管制: 乌兹别克斯坦 沙特阿拉伯 缅甸 中华人民共和国西藏自治区 伊朗 阿富汗 哈萨克斯坦 古巴
  • 较严厉的管制: 也门 越南 厄立特里亚 阿塞拜疆 中华人民共和国 白俄罗斯 阿曼 巴林 约旦 塔吉克斯坦 瑞典 俄罗斯 阿联酋 美国 老挝 埃及 挪威 新加坡

wiki上的国家分布

工具总结

【2023-11-18】2022苹果手机iPhone VPN推荐,中国翻墙软件VPN避坑

前几年还不错的VyprVPN、NordVPN、PureVPN和iVacy,付费购买并在iPhone上安装了,但是最近2年越来越难用

推荐两款:

  • ExpressVPN(活动链接),在iPhone上翻墙使用体验最好,但访问官网需梯子。也许你不是第一次听说它,在我使用和测试过的VPN产品中网络速度是最快的,也是我最喜欢的VPN产品,但在国内访问ExpressVPN的官网需要梯子,客户端能正常使用。设备支持最全面,国内外口碑都很好,已经运营了14年(至2022年)。在安全性方面,也是行业顶级的“军事级别”的加密算法,保护用户的上网数据的安全。虽然它不能称得上100%完美(由于GFW的封锁,翻墙软件在国内不可能100%完美),但应对封锁的反应最快,在中国大陆苹果手机上使用能保障每年95%左右(我的使用体验)的全年可用率。如果遇到敏感时期,防火长城升级,针对中国大陆的优化服务器被屏蔽,中国用户也可以改为“L2TP – IPsec”或“IKEV-2”协议,使用除推荐节点之外的其它服务器线路,你会发现很多节点依然可用,“IKEV-2”和“L2TP–IPsec”协议的节点可以作为敏感时期的备用节点。在防火长城升级后的2-3个工作日后,ExpressVPN会陆续推出更新版本,iPhone APP版本直接进入苹果商店一键更新即可;其他设备点击客户端下方的链接进入镜像官网(国内能访问),下载并更新客户端后就能恢复正常使用了

  • StrongVPN,创立于2005年的老牌VPN,属于美国数字科技巨头Ziff Davis(之前叫J2 Global)旗下的产品,我已经使用了2年多,官方的精简版客户端在Windows、Mac和安卓手机使用体验不错,长期的可连接率很高,速度也还行,在翻墙VPN产品中性价比不错,但在iOS系统中长期使用的稳定性还是不如ExpressVPN稳。VPN服务器经常会更新,每次登陆客户端也会自动检测服务器更新。建议在国内的Windows、Mac和安卓手机用户找客服下载StrongVPN特供的精简版V1 App(直接说在中国使用客服就会给你并帮你设置账户),相比官方的标准版客户端,精简版客户端在国内连接更为顺畅。目前有优惠券可以使用。不过如果是使用梯子访问,由于反欺诈系统的检测有可能导致套餐不能购买,这样的情况需要先断开梯子,改电脑Host文件访问Strong官网域名,因为官网DNS在天朝被定位到不能访问的IP,需要修改本地的DNS才能访问,国内网络访问StrongVPN官网方法见下文。

lantern

Google提供的工具 Lantern

  • lantern
  • 免费版:每月700m流量,看视频受限
  • 专业版:不限,但经常失效
  • 费用: 85元/月, 340元/年

支持平台

  • win, mac, linux
  • android, ios

clash

clash 科学上网手册,clash有多个软件版本

  • clashx
    • Clash 在 Mac 平台上的图形化客户端软件是ClashXClashX 官方团队对其的解释是:ClashX 旨在提供一个简单轻量化的代理客户端。它支持多种代理协议,如 Shadowsocks(SS)、ShadowsocksR(SSR)、Socks、Snell、V2Ray、Trojan等。
    • clashx 下载:
  • clash for Windows:多个操作系统版本

各平台版本

  • Clash for Windows:Windows 系统最流行的翻墙代理客户端,官方不支持中文界面,简写为 CFW 。目前项目已停止更新,建议下载 Clash Verge。
  • Clash for Mac:Mac 上最流行的 Clash 客户端名为 ClashX。目前项目已停止更新,建议下载 Clash Verge
  • Clash for Android:在安卓系统上,Clash 和 Surfboard 是最适合机场用户使用的代理客户端 ,使用方式支持一键导入或复制订阅链接导入。目前项目已停止更新,更推荐 Surfboard 或 sing-box。
  • Clash for iOS :Clash 在 iOS 客户端上有两款软件,Stash 和 Choc,两款软件均需要外区 Apple ID 方可下载安装,更推荐使用 Stash ,Choc 目前已经很久没更新了,估计该开发者已经放弃了此项目。

  • Clash for Windows 使用教程
  • Clash for Mac 使用教程
  • Clash for Android 使用教程
  • Clash for iOS 使用教程

配置步骤

  • (1)从github上下载clash for windows对应版本(win、mac、linux、android等)
    • iOS/iPad 特殊:Clash for iOS的两款代理软件:StashChoc,App Store 美区售价均为 $2.99 美元。
  • (2)将服务商提供的 config.yml 导入 clash:
    • 左侧 profiles → import → 选择文件
  • (3)chrome上安装插件 switchysharp,添加代理信息
    • 新增情景模式v,socket代理 127.0.0.1,填端口(config.yml)
    • 保存后,点击chrome浏览器上的小球,选择v
  • (4)访问网站

注意

  • 如果clash里的端口总是识别失败,为0,而不是yaml里的端口,可能原因:当前存在多个版本的clash

clash 本身是一个网络连接的代理内核,通过预先定义的规则,对网络连接进行转发。clash 内核规定了配置文件 config.yaml 的格式,所以机场会提供一个 clash 格式的订阅地址给用户,包含了一个 clash 格式的配置文件。

clash 内核的客户端中,比较流行的有 Clash for Windows, Clash XClash X Pro,核心功能区别不大,只有一些实用功能的上的区别。

默认配置

mixed-port: 7890
external-controller: 127.0.0.1:9090
allow-lan: false
mode: rule
log-level: warning
proxies:
proxy-providers:
proxy-groups:
rule-providers:
rules:

订阅文件中最重要的就是 proxies 字段,其中是一个包含节点地址的列表

  • 所以机场通常会要求用户对订阅地址严格保密,因为如果订阅地址泄漏了,机场的服务器节点就面临被 GFW 封禁或者被其他人攻击的风险,影响到整个机场的运作。

订阅链接不仅包含了基本的 proxies 节点,也提供一些默认规则。

  • 规则指的是对某个 HTTP 连接应该如何处理
  • 例如,某个规则可以要求 domain suffix 为 google.com 的连接,走某个节点服务器,可以要求 domain suffix 为 baidu.com 的连接,走 DIRECT 直连。
  • 这组规则使得 clash 内核可以正确代理整台机器上的 HTTP 请求,让应该绕路走国外服务器的请求发送到对应节点,让可以直连的请求直接发送,避免绕路产生的延迟和消耗不必要的订阅流量。

v2rayN

v2rayN与clash类似功能,支持http、socks5模式

Astrill

Astrill VPN ,官方下载地址

  • App Store
    • 注意 需要使用海外app store账号才能下载到可正常使用的版本
  • Client for iOS

Shadowrocket

iOS/iPad VPN操作

美区账户及操作方法

  • ① 退出自己的账户
    • 注意有些手机会提示需要回答安全问题,Apple ID安全等 选择 其他选项 点击 不升级
  • ② 打开APP Store登录美区账号
    • 注意:不要在设置里面登录,不要在icloud里面登录!
    • 美区id: 地址1地址2
    • 淘宝提供独享、共享账号
    • 登录问题指南
  • ③ 商店里搜索下载Shadowrocket(小火箭)
    • 注意:小火箭正常是需要收费2.99美金
    • 使用某些美区id,下载免费
  • ④ 下载安装完成,一定要退出提供的appleid,重新换回你自己的国内ID

Shadowrocket 设置

谷歌、ins、youtube、twitter..是限制国内使用的,需要连接国外的节点才可以使用

  • 购买订阅套餐
  • 注册账号
  • 导入海外节点
  • 登录

【2023-11-19】astrill 使用美区id登录,下载 iPad 版本,通过

nekoray

【2024-7-11】 NekoRay

  • NekoRay 是一个基于Qt的跨平台GUI代理配置管理器,支持Windows和Linux系统开箱即用。它的后端支持v2ray和sing-box

NekoRay支持多种代理协议,包括SOCKS (4/4a/5)、HTTP(S)、Shadowsocks、VMess、VLESS、Trojan、TUIC (sing-box)、NaïveProxy (自定义核心)、Hysteria (自定义核心或sing-box)、Hysteria2 (自定义核心或sing-box)等。用户可以根据需要选择合适的代理协议进行配置。 配置完成后,NekoRay将自动管理代理连接,用户无需手动干预。

从剪贴板到如配置,选择一个,右键”启动”

ABC

ABC加速器,官网

  • 注册账户
  • 邀请两位试用一天,10位,终身免费,链接

功能

  • 服务器遍布全球59个国家
  • 一键连接,操作简单
  • 可靠加密
  • 意外断开时,Kill Switch 组织设备联网
  • 多设备保护,一个账户可同时登陆3个设备,包括智能电视路由器
  • 24h 在线客服

LadderVPN

LadderVPN 官网

  • 下载 支持手机、Mac
  • 注册 网易邮箱
  • 无体验, 使用要购买

  • 价格: 比 abc 更便宜,多种套餐,7元一周,3台设备,整月20元,90天55元,一年185 支持mac,无免费试用

功能

  • 服务器遍布全球
  • 秒级响应

纸飞机

纸飞机

支持

  • Windows, Mac, Linux
  • iphone、android
  • 平板
  • AppleTV, 路由器(梅林固件)

ssh tunnel

聪明的人想到了利用境外服务器代理的方法来绕过 GFW 的过滤,其中包含了各种HTTP代理服务Socks服务VPN服务… 其中以 ssh tunnel 的方法比较有代表性

  • 1) 首先用户和境外服务器基于 ssh 建立起一条加密的通道
  • 2-3) 用户通过建立起的隧道进行代理,通过 ssh server 向真实的服务发起请求
  • 4-5) 服务通过 ssh server,再通过创建好的隧道返回给用户

ss-03

由于 ssh 本身就是基于 RSA 加密技术,所以 GFW 无法从数据传输的过程中的加密数据内容进行关键词分析,避免了被重置链接的问题,但由于创建隧道和数据传输的过程中,ssh 本身的特征是明显的,所以 GFW 一度通过分析连接的特征进行干扰,导致 ssh
存在被定向进行干扰的问题

ssh 介绍

SSH(Secure Shell)是一个提供数据通信安全、远程登录、远程指令执行等功能的安全网络协议,由芬兰赫尔辛基大学研究员Tatu Ylönen,于1995年提出,用于替代非安全的 Telnet、rsh、rexec 等远程 Shell 协议。之后SSH发展了两个大版本SSH-1SSH-2

如何搭建一个SSH隧道翻墙?

首先需要有一台支持SSH的墙外服务器,此服务器啥都不需要,只要能SSH连接即可。

客户端SSH执行如下命令:

ssh -D 7001 username@remote-host
# -D 动态绑定

上述命令中-D 表示动态绑定,7001 表示本地SOCKS代理的侦听端口,可以改成别的,后面的 username@remote-host就是登录远程服务器的用户名和主机。

  • 当然,这个命令后会提示输入密码,就是username用户的密码(除非配置了SSH公钥认证,可以不输入密码),这样隧道就打通了。

image

  1. 首先用户和境外服务器基于 ssh 建立起一条加密的通道 (1)
  2. 用户通过建立起的隧道进行代理,通过 ssh server 向真实的服务发起请求 (2-3)
  3. 服务通过 ssh server,再通过创建好的隧道返回给用户 (4-5)

由于 ssh 本身就是基于 RSA 加密技术,所以 GFW 无法从数据传输的过程中的加密数据内容进行关键词分析,避免了被重置链接的问题,但由于创建隧道和数据传输的过程中,ssh 本身的特征是明显的,所以 GFW 一度通过分析连接的特征进行干扰,导致 ssh 存在被定向进行干扰的问题。

至于干扰的原理,shadowsocks的作者 @clowwindy 认为:

校长最近的论文上上看,GFW 最近弄的是先检测首部特征判断 SSL 和 SSH,然后统计包长度和方向,用实现训练好的模型去判断承载的流量是否为 HTTP。如果你用 SSH 翻墙,或者你的操作行为发的数据包过于接近 HTTP,就会被 reset。反过来,如果你想用 SSH 翻墙,只要在用来翻墙的那个 ssh 连接里做些别的操作(比如反复 tail 一个长文件,这样会不停的输出;或者用管道不停的往 ssh 里写命令,这样会不停的输入),就可以让这个模型失效,从而不会被判定为翻墙。

shadowsocks

ss 原理

clowwindy 分享并开源了解决方案

简单理解,shadowsocks 是将原来 ssh 创建的 Socks5 协议拆开成 server 端和 client 端,所以原理图基本上和利用 ssh tunnel 大致类似

  • 1、6) 客户端发出的请求基于 Socks5 协议跟 ss-local 端进行通讯,由于这个 ss-local 一般是本机或路由器或局域网的其他机器,不经过 GFW,所以解决了上面被 GFW 通过特征分析进行干扰的问题
  • 2、5) ss-local 和 ss-server 两端通过多种可选的加密方法进行通讯,经过 GFW 的时候是常规的TCP包,没有明显的特征码而且 GFW 也无法对通讯数据进行解密
  • 3、4) ss-server 将收到的加密数据进行解密,还原原来的请求,再发送到用户需要访问的服务,获取响应原路返回

ss-04

Shadowsocks 原理

Shadowsocks 由两部分组成,运行在本地的 ss-local 和运行在防火墙之外服务器上的 ss-server,下面来分别详细介绍职责(以下对 Shadowsocks 原理的解析只是我的大概估计,可能会有细微的差别)。

(1)ss-local

  • ss-local 的职责是在本机启动和监听着一个服务,本地软件的网络请求都先发送到 ss-local,ss-local 收到来自本地软件的网络请求后,把要传输的原数据根据用户配置的加密方法和密码进行加密,再转发到墙外的服务器去。

(2)ss-server

  • ss-server 的职责是在墙外服务器启动和监听一个服务,该服务监听来自本机的 ss-local 的请求。在收到来自 ss-local 转发过来的数据时,会先根据用户配置的加密方法和密码对数据进行对称解密,以获得加密后的数据的原内容。同时还会解 SOCKS5 协议,读出本次请求真正的目标服务地址(例如 Google 服务器地址),再把解密后得到的原数据转发到真正的目标服务。

当真正的目标服务返回了数据时,ss-server 端会把返回的数据加密后转发给对应的 ss-local 端,ss-local 端收到数据再解密后,转发给本机的软件。这是一个对称相反的过程。

由于 ss-local 和 ss-server 端都需要用对称加密算法对数据进行加密和解密,因此这两端的加密方法和密码必须配置为一样。Shadowsocks 提供了一系列标准可靠的对称算法可供用户选择,例如 rc4、aes、des、chacha20 等等。Shadowsocks 对数据加密后再传输的目的是为了混淆原数据,让途中的防火墙无法得出传输的原数据。但其实用这些安全性高计算量大的对称加密算法去实现混淆有点“杀鸡用牛刀”。

ShadowSocks的翻墙原理

来源:https://tumutanzi.com/archives/13005/comment-page-1

Clowwindy分享并开源了Shadowsocks翻墙解决方案。

翻墙原理是什么?有什么优点和缺点?

Shadowsocks是将以前通过SSH创建的Socks5协议拆开成Server端和client端,下面这个原理图能简单介绍其翻墙原理,基本上和利用SSH tunnel大致类似:

  • what-is-shadowsocks
  1. PC客户端(即你的电脑)发出请求基于Socks5协议跟SS-Local端进行通讯,由于这个SS-Local一般是本机或路由器等局域网的其他机器,不经过GFW,所以解决GFW通过特征分析进行干扰的问题。
  2. SS-Local和SS-Server两端通过多种可选的加密方法进行通讯,经过GFW的时候因为是常规的TCP包,没有明显特征码GFW也无法对通讯数据进行解密,因此通讯放行。
  3. SS-Server将收到的加密数据进行解密,还原初始请求,再发送到用户需要访问的服务网站,获取响应原路再返回SS-04,返回途中依然使用了加密,使得流量是普通TCP包,并成功穿过GFW防火墙。

因此,Shadowsocks的优点在于它解决了GFW通过分析流量特征从而干扰的问题,这是它优于SSH和VPN翻墙的地方。缺点也依然明显,需要一点点技术和资源(墙外VPS服务器)来搭建Shadowsocks服务,好在已经有人搭建相应的服务出售翻墙服务了。

如何实现 shadowsocks

你也能写个 Shadowsocks

PAC模式(代理自动配置)

代理自动配置(Proxy auto-config,简称PAC) 是一种网页浏览器技术,用于定义浏览器该如何自动选择适当的代理服务器来访问一个网址

一个PAC文件包含一个JavaScript形式的函数 FindProxyForURL(url, host)

  • 这个函数返回一个包含一个或多个访问规则的字符串。
  • 用户代理根据这些规则适用一个特定的代理或者直接访问。
  • 当一个代理服务器无法响应的时候,多个访问规则提供了其他的后备访问方法。

浏览器在访问其他页面以前,首先访问这个PAC文件。

  • PAC文件中的URL可能是手工配置的,也可能是是通过网页的 网络代理自发现协议(Web Proxy Autodiscovery Protocol) 自动配置的。

上面是从维基百科摘录的关于PAC的解释,我做了一个简单的图片解释什么是PAC:

  • image

简单的讲,PAC就是一种配置,让浏览器智能判断哪些网站走代理,哪些不需要走代理。

  • 点击 Shadowsocks 的菜单,选择 编辑自动模式的 PAC,如下图
  • image
  • image

在上面的目录下有两个文件,一个是 gfwlist.js,还有一个是 user-rule.txt,确保当前的模式为自动代理模式,打开系统设置–>网络,点击高级,查看代理选项卡,如下图

  • image

Shadowsocks全局模式与PAC模式的区别

Shadowsocks 的全局模式,是设置系统代理的代理服务器,使所有http/socks数据经过代理服务器的转发送出。而只有支持 socks 5或者使用系统代理的软件才能使用 Shadowsocks(一般的浏览器都是默认使用系统代理)。

而PAC模式就是会在你连接网站的时候读取PAC文件里的规则,来确定你访问的网站有没有被墙,如果符合,那就会使用代理服务器连接网站,而PAC列表一般都是从 GFWList 更新的。GFWList 定期会更新被墙的网站(不过一般挺慢的)。

简单地说,在全局模式下,所有网站默认走代理。而PAC模式是只有被墙的才会走代理,推荐PAC模式,如果PAC模式无法访问一些网站,就换全局模式试试,一般是因为PAC更新不及时(也可能是GFWList更新不及时)导致的。

还有,说一下Chrome不需要 Proxy SwitchyOmegaProxy SwitchySharp 插件,这两个插件的作用就是,快速切换代理,判断网站需不需要使用某个代理的(shadowsocks已经有pac模式了,所以不需要这个)。如果你只用shadowsocks的话,就不需要这个插件了!

经过代理服务器的IP会被更换。连接 Shadowsocks 需要知道IP、端口、账号密码和加密方式。但是Shadowsocks因为可以自由换端口,所以定期换端口就可以有效避免IP被封!

Socks代理和http代理的区别

Socks代理

本地浏览器SOCKS服务器通常是用来做代理的,它通过TCP连接把目标主机和客户端连接在一起, 并转发所有的流量。SOCKS代理能在任何端口,任何协议下运行(额,好想有点不对, 这货是运行在session层,所以在他之下的层他就无法代理了)。SOCKS V4只支持 TCP连接,而SOCKS V5在其基础上增加了安全认证以及对UDP协议的支持(也就是说, SOCKS5支持密码认证以及转发UDP流量,注意,HTTP是不支持转发UDP的)。

SOCKS代理在任何情况下都不会中断server与client之间的数据(这是由这种协议的 特性决定的,毕竟非明文,但是在SOCKS代理服务器上还是可以还原出TCP和UDP的原始 流量的),当你的防火墙不允许你上网的时候,你就可以通过SOCKS代理来上网(这里的 意思是,如果GFW把google屏蔽了,你就可以通过一台海外的SOCKS代理服务器上谷歌)。

大多数的浏览器都支持SOCKS代理(这篇文章是三年前的,抱歉,谷歌第一条就是它)。( 浏览器上网的时候需要与目标主机建立TCP连接,这个时候浏览器就会告诉SOCKS代理,它想 与目标主机进行通讯,然后SOCKS代理就会转发浏览器的数据,并向目标主机发出请求,然 后再把返回的数据转发回来。)(关于shadowsocks的一点题外话:虽然github上的源码 没了,但是耐不住民间私货多呀。shadowsocks有server端和client端,这两个都是用 来转发数据的,但是由于其所处的位置不同,所以功能也不同,client即本地运行的程序, 监听1080端口,并将数据转发到远在他乡的SOCKS服务器,由于这种转发是加密的,在会话层, 所以GFW过滤的难度很大,所以才派人巴拉巴拉让作者删除源码,嗯,一定是这样的。然后server 那边收到数据后,会原原本本的把数据再向目标请求,收到反馈后再返回给本地client的1080端口, 这样,我们向本地的1080请求资源,本地向SOCKS服务器请求资源,SOCKS服务器向目标请求资源, 这一条TCP连接就这样建立起来了。)但是,但是,但是,SOCKS代理原则上是可以还原真实数据的, 所以,第三方的代理也许不是很可靠。

HTTP代理

HTTP代理跟上面原理类似,用处也基本相同,都是让处于防火墙下的主机与外界建立连接,但是它与SOCKS代理不同的是,HTTP代理可以中断连接(即在中间截断数据流),因为HTTP代理是以HTTP请求为基础的 而这些请求大多以明文形式存在,所以HTTP代理可以在Client和下游服务器中间窃听,修改数据。但也正 由于HTTP代理只能处理HTTP请求,所以它对HTTP请求的处理也是很舒服的(原文中是smart)。而也由于 HTTP代理可以获取你的HTTP请求,所以HTTP代理服务器那边就可以根据你提交的数据来把那些资源缓存下来,提升访问的速度(用户亲密度+1)。有好多ISP都用HTTP代理,而不管用户那边的浏览器是怎样配置的,因为不管用户们怎么配置,他们总是要访问80端口,而这些80端口们又掌握在ISP们的手中。(原文完全不是这样说的= =。原文是说,互联网提供商们把流量都通过了HTTP代理,这样代理服务器中就有了缓存,访问的速度会快一些。)

举栗:

  • 假如你的HTTP代理是Goagent,监听本地127.0.0.1:8080,此刻假设你已经把浏览器 的代理设置为:127.0.0.1:8080,那么你在浏览器中,所有的POST,GET,以及其他的请求,都会通过 本地的代理转发给远程的服务器,然后再通过远程的服务器去请求你所请求的这些资源,大家知道,HTTP协议是通过明文传输的,无论是在本地还是远程的服务器上,都是可以监听到这些流量的,所以才会有GFW的存在……HTTP协议属于应用层,而SOCKS协议属于传输层,ps:传输层在应用层之下,这就决定了两者的能力大小。

参考

VPN

VPN 诞生

随着时代的发展,以及企业规模的发展壮大,企业网络也在不断发生变化。

  • 例如,一家总部设在北京的企业,可能会在上海、广州和深圳等地都设有分支机构,因此需要把各个分支机构连接在一起,以便共享资源、协同工作,提高工作效率。
  • 但传统的专线联网方式价格昂贵,一般中小企业难以负担。这时低成本的VPN技术就孕育而生了。

VPN(Virtual Private Network)虚拟专用网络,可以利用廉价接入的公共网络(主要使用Inter-net)来传输私有数据,相较于传统的专线连网方式具有成本优势,因此被很多企业和电信运营商采用。

VPN 用途

VPN在全世界都有很多用户,根据GlobalWebIndex的调查,人们使用VPN原因有:

  • 在使用公共wifi时保护隐私(51%)
  • 匿名浏览网页(44%)
  • 更安全地沟通(37%)
  • 安装的从种子网站下载种子文件(23%)
  • 观看更多更好娱乐内容(22%)

VPN 的四个主要用途:

  • 伪装IP地址对您要访问的网站隐藏/更改您真实的上网地点。
  • 加密网络流量以保护您在不安全的WiFi网络上网。
  • 防止互联网提供商和其他第三方监控您的互联网活动。
  • 对中国大陆用户来说可以翻墙科学上网

VPN应用程序不仅可以在电脑上安装使用, 也可以在智能手机和平板电脑上安装使用。很多优质的VPN提供商都提供智能电视、游戏机和路由器版本,都可以安装使用其App。

VPN 原理

VPN通过在设备和VPN服务器之间创建加密连接来工作。此连接称为VPN隧道

  • img

通过加密数据并通过VPN隧道发送,可以防止互联网服务提供商 (ISP)、政府和黑客监视您的网上活动。

VPN的原理:

  • 一旦流量到达 VPN 服务器,就会被解密并发送到正在使用的网站或应用程序。
  • 这样会隐藏您的 IP 地址,因为连接是从VPN服务器发出的而不是从您上网的地点发出的。

这个也是翻墙软件的原理。简而言之,VPN会加密流量数据,并将IP地址替换为连接的服务器的IP地址。

VPN 比shadowsocks更加底层,它通过操作系统的接口直接虚拟出一张网卡,后续整个操作系统的网络通讯都将通过这张虚拟网卡进行收发。

这和任何一个代理的实现思路都差不多,应用层并不知道网卡是虚拟的,这样vpn虚拟网卡将以中间人身份对数据进行加工,从而实现各种神奇的效果。具体来说,vpn是通过编写一套网卡驱动并注册到操作系统实现的虚拟网卡,这样数据只要经过网卡收发就可以进行拦截处理。

image

常用的VPN协议

大多数 VPN 协议不是由VPN提供商开发的,他们只是在他们的应用程序中使用了该技术。

  • IKEv2 – 是Internet Key Exchange version 2。它主要处理请求和响应确认。通常,结合使用 IPSec 进行身份验证(IKEv2/IPSec)。IKEv2 在连接失败后可有效地重新建立。它也是移动设备上最快、最常用的隧道协议之一,因为它可以轻松地在无线和蜂窝网络之间切换。
  • OpenVPN——迄今为止桌面应用程序上最常见的隧道协议。这是一个基于OpenSSL的开源协议。它有两种类型:TCP 和 UDP。
    • UDP是用户数据报协议。它要快得多,因为它不允许接收者重新发送数据请求。对数据完整性的验证更少,从而可以进行更快速的交换,从而提高速度。
    • TCP是传输控制协议。它允许多个数据验证,因此处理时间可能会更慢,从而限制您的互联网速度。在您可以信任的网络上使用 UDP,而在公共 Wi-Fi 热点上使用 TCP 会更好。
  • L2TP/IPSec – L2TP 本身不提供任何加密。它的工作是请求和响应确认。经常与IPSec配合使用。由于该协议是与 NSA 共同开发的,因此有很多关于该协议是否安全的讨论。该协议可能有后门来访问 L2TP/IPSec 流量。
  • WireGuard——下一代隧道协议。它使用更少的代码行,并最大限度地利用设备的处理能力。它是移动设备和速度较慢的计算机的理想选择,内置最新的加密,并提供可靠的连接。WireGuard是当前最好的VPN隧道协议。
  • SSTP – 安全套接字隧道协议。该协议由 Microsoft 创建,并非 Windows 独有,并提供高级别的加密。虽然 SSTP 功能非常强大,但有人担心 Microsoft 可能有后门来访问 SSTP 流量。
  • PPTP——点对点隧道协议。开发于 90 年代后期,是第一个广泛使用的产品。该协议依赖于过时的加密算法,随着计算能力的增长,它很容易受到攻击。因此,目前很少有VPN服务提供商提供此协议。

VPN vs SSH

VPN和SSH隧道翻墙区别:

  • VPN的设置是全局的,即电脑一旦挂上VPN,所有的联网程序都将自动使用VPN;而建立好SSH隧道后,需要程序设定使用隧道才会使用隧道联网。
  • 商用VPN一般要花钱,如果自己搭,VPN的搭建难度大于SSH隧道。因为SSH隧道只要一台可以SSH的服务器即可,根本不需要在服务器上配置任何东西。
  • vpn在IP层工作,而shadowsocks在TCP层工作。
维度 vpn ssh 备注
作用范围 全局 局部 程序设定隧道
费用 商用收费    
自建代价 难度大 难度小  
网络位置 ip层 tcp层  
       

多种设备使用VPN

任何可以连接到互联网的设备都可以收到VPN的保护。大多数VPN提供商在多种平台设备上提供专用的应用程序App

  • 通常都支持5台设备或以上,可以在PC、Mac、Android 和 iOS,甚至Android TV智能电视,路由器上都能使用。

台式电脑、平板电脑、手机、智能电视都可以单独连接到VPN,但使用其他智能设备就不是那么容易了。对于其他联网设备,最好的选择在支持路由器上设置VPN。然后,通过Wifi就可以连接的所有设备。

  • img

手机VPN应用程序可安全的连接WiFi和蜂窝数据(例如4G或5G),但需要连接互联网才能使用VPN服务。

  • 不像杀毒软件,不能在没有互联网的情况下使用VPN。

连接后,手机的所有互联网活动都将被加密并通过VPN服务器路由。IP 地址也会发生变化。

移动VPN需要注意:

  • VPN仅保护通过互联网发送的数据。语音通话和短信消息未加密。如果要保护这类通信,建议使用具有加密功能的WhatsApp 或 iMessage来保护您的隐私。
  • VPN会增加流量使用量。据统计,使用VPN时流量比不使用VPN多使用4-20%的流量。

VPN安全吗?

虚拟专用网络VPN是2022年必不可少的网络安全工具,全球数据盗窃、大规模监控和互联网审查正在兴起。但是VPN都是安全的吗?回答是否定的。

虽然市面上有许多合法且安全的VPN服务,但也需要避免使用大量危险的VPN。下载不安全的VPN会使您面临恶意软件、黑客攻击、身份盗窃、法律诉讼等风险。

最常见的这类危险的VPN是免费VPN。很多非法的免费VPN应用程序会窃取用户个人信息并监控他们的在线活动。即使在使用相对安全的付费VPN之前,也要了解一些概念:

  • VPN日志记录政策:如果您使用的VPN服务记录了您的身份、连接到其服务器的时间以及您访问的网站,那么这对您的隐私构成威胁。这些信息可能会被泄露,或者政府可能会强制VPN提供商将其交出。为了获得最大的安全性,您需要使用那些经过验证的无日志VPN。
  • VPN泄漏:VPN的目的是隐藏您的 IP 地址并保持您网上活动的私密性和安全性。不要使用可能会泄露您的 IP 和 DNS 信息的VPN应用程序。
  • VPN所在国的法律:不同国家/地区在保护其公民数据的隐私方面有不同的方法。例如,五眼联盟国家制定了严格的数据保留法,并定期强制公司交出用户活动记录。所以,尽量选择那些没有数据保留法律的国家的VPN。
  • 服务器位置:连接的 VPN 服务器的位置对于隐私和安全也很重要。许多VPN 服务使用“虚拟服务器位置”,其中公布的 IP 地址与服务器的物理位置不匹配。

市面上有一些免费VPN,但免费VPN肯定不如付费高级VPN服务安全。

  • 免费VPN服务可以通过展示广告或收集和出售个人数据来赚钱。

免费VPN的其他问题还包括:

  • 协议薄弱:大多数免费服务仅提供 PPTP(点对点隧道协议),这是1990年代的过时方法。多年来已经发现了几个 PPTP 漏洞,并且可以使用很多工具轻松破解。
  • 速度慢:当很多人都在使用免费 VPN 时,它的服务器很快就会变得不堪重负,从而延迟连接并减慢速度。
  • 带宽限制:免费VPN服务通常对您每天可以使用的数据量有限制,而大多数高级付费VPN提供无限流量。
  • 更少的服务器位置:免费服务很少支持与领先的高级VPN 服务一样多的服务器位置。
  • 广告:免费 VPN 可能会在通常会没有广告的网站中插入广告,不仅令人讨厌,还可能带来安全风险。

VPN有什么缺点?

VPN 并不是解决所有网络隐私和安全问题的万能方案。

  • VPN 无法保证您绝对匿名,大多数VPN无法保护您免受恶意软件的侵害,而且许多VPN都难以克服严格的地理限制。
  • 使用 VPN通常也会降低您的互联网速度并增加您的流量消耗。

如何选择VPN

在选择和购买VPN时应该考虑那些方面?下面列出了一些主要考虑因素。

  • 他们尊重你的隐私吗?使用 VPN 的目的是保护您的隐私,因此您的VPN提供商也必须尊重您的隐私。你选择的VPN应该有无日志政策,永远不会跟踪或记录您的网上活动。
  • 他们提供最新的协议吗?OpenVPN是比 PPTP 等其他协议具有更强的安全性。而Wireguard兼顾速度与安全,是最好的VPN协议之一。
  • 他们是否有带宽限制?带宽是一个重要决定因素。看下该VPN是否会不限带宽,可以利用其最大传输速度。
  • 服务器位于何处?服务器位置很重要。如果您希望看起来好像您正在从某个区域上网,请确保该国家/地区有服务器。
  • 您能否在多个设备上设置 VPN吗? 一般VPN最少应该支持同时使用三到五台设备。理想情况下,您可以同时在所有这些设备上使用VPN。
  • VPN的价格?如果价格对您很重要,那么您可能认为免费VPN是最佳选择。但是请记住,一些免费VPN服务虽然明面上没收费,但您可能会以其他方式“付费”,例如投放广告或收集您的个人信息并将其出售给第三方。

选择 VPN 时需要考虑许多方面,因此请做好功课找到最适合的VPN提供商。在市面上众多的VPN中,目前最受好评的是ExpressVPN。速度非常快速、表现稳定,可以解锁Netflix等流媒体、允许种子下载,也可用于加速游戏。

ExpressVPN在中国大陆长期表现稳定,也是用来翻墙上网的最好VPN。只是价格有点儿贵。

2022年最好的翻墙VPN推荐

vpn 产品

lantern 蓝灯

蓝灯VPN怎么样,还能在中国用吗?

Lantern 蓝灯VPN美国政府赞助的开源代理服务, 实际上是一款代理软件, 只能代理部分流量而不是全部流量,这使其速度更快。但是,除了极快的速度和提供访问某些受屏蔽网站的免费基本服务外,它不能用于其他用途。它不会解除对 Netflix 或 BBC iPlayer 的封锁,并且存在一些隐私问题,因此它远非完整的VPN产品。

刚刚推出时,被主要媒体吹捧为中国互联网用户绕过防火墙的一种方式。前几年还是很好用的,中国用户也很多,不过,目前已经连接不上,不能在中国使用了。

蓝灯VPN是一款用于桌面和移动设备的代理工具,主要目的是提供对被墙网站和应用程序的访问。

注意

  • Lantern蓝灯没有完整的匿名功能,因此如果想在线匿名,提供商建议您配合使用Tor浏览器

优点:

  • 有免费试用版
  • 在海外使用速度还不错

缺点:

  • 并不是一款完整的VPN
  • 有DNS 和 WebRTC 泄漏
  • 有一些日志记录
  • 不能解锁 Netflix、Hulu、BBC iPlayer等
  • 几乎没有任何客户支持
  • 退款比较困难
  • 中国大陆已经不能使用

结束


支付宝打赏 微信打赏

~ 海内存知已,天涯若比邻 ~

Share

Related Posts

标题:计算机网络-Computer Network

摘要:计算机网络知识点

标题:【读书笔记】-寒门再难出贵子-poor-kids

摘要:穷人孩子如何寻找自己的上升空间?真的不能突破自我么?

站内可视化导航

文章可视化导读:鼠标划过图形块时,如果出现蓝色光环, 点击即可跳转到对应主题

Comments

--disqus--

    Content
    My Moment ( 微信公众号 )
    欢迎关注鹤啸九天