一、简介
1.原因
GFW(Great Fire Wall, 网络防火城墙)。
2.方法
Shodowsockets转发请求。代理服务器隐藏了请求客户端(正向代理),因此请求不被拦截。
3.流程
以访问google为例:
①用户发起网络请求,浏览器访问google。
②请求发送到本地代理客户端(shadowsockets客户端)。
③本地代理拿到请求数据,发送到墙外的代理服务器(shadowsockets服务端)。
④代理服务器向google发起请求, 收到响应数据后,再返回给代理客户端。
⑤代理客户端将响应数据交给浏览器,请求完成。
二、准备
一台可访问的墙外服务器(VPN供应商如Vultr、搬瓦工、亚马逊等), 推荐Vultr。
三、安装
1.服务端
centos安装shadowsockets, 使用pip(python install package)
创建配置文件/etc/shadowsockets
server值0.0.0.0指当前服务器。
服务端口任选未使用的端口号,之后shadowsockets客户端会通过该端口连接。
起服命令,前台运行
后台运行
2.客户端
服务端源码以及各平台的客户端下载前往github:传送
客户端下载安装后,通过图形界面配置shadowsocket服务端地址及密码后,即可访问google等墙外资源。
此时可查看客户端json配置包含如下:
3.移动端
应用
以上安装支持Windows、MacOS、Android。
IOS平台有付费App支持Shadowsockets,如SuperWingy、RocketWingy、ShadowRocket。
应用配置完成后,可随时随地访问墙外资源。
Http代理
前提:局域网的一台电脑已可访问墙外资源,同时在shadowsockets客户端,右键选择允许来自局域网的连接。
移动端配置:手机、平板等移动设备,连接局域网后,点击无线局域网详细信息,找到http代理,选择自动,URL填可翻墙电脑的代理客户端地址,如
此时移动端设备已可访问墙外资源。
另外,局域网的其他电脑也可通过设置Http代理访问墙外资源,如chrome浏览器设置->高级->打开代理设置->连接->局域网设置->代理服务器,配置地址(如上述$ip)及端口(1080)后即可。
4.常见问题
1.安装或启动shadowsocks报错如
解决如下:
以上执行脚本distribute_setup.py报错为
将文件中的http://pypi.python.org/packages/source/d/distribute/distribute-0.6.14.tar.gz改为https即可
2.前提:shadowsocks服务进程运行正常,查防火墙,端口是放开的。
问题:shadowsocks客户端开启后,仍然不可访问google, 查看客户端日志,报错为
telnet端口,报
此时,毫无疑问,端口被墙了!换个端口即可。多次尝试端口不好使,可能ip被墙了!服务器换个ip如vultr重新deploy一台机器。
3.多用户(端口)配置
单端口配置为
改为多端口:
四、应用
完成上述搭建便有了ladder,可用于google日常问题查找。
此外,网站服务(尤其是前端资源)建议部署在境外机器,境内备案流程繁琐且漫长(阿里限制不足三个月的实例机器无法备案)。
但是境外机器ip受限(有时部分运营商网络无法访问),重点是速度慢,所以可考虑域名指向及前端资源为境外机器,服务端部署在境内机器。