尽管也称互联网,但在国内,如若有以下一个或多个需求,你就不得不学习一下科学上网了:
访问的网站或服务被(GFW)墙;
网络提供商(ISP)劫持了网络流量;
需要匿名(隐藏真实 IP)的情况,如渗透测试;
躲避网络监控;
其他情况。
这里分享一下我的科学上网技巧,使用到的工具软件可能有 Shadowsocks、Lantern、Privoxy、Tor。根据不同的目的选择不同的工具。
一、绕过 GFW 和 ISP 劫持
最简单和不折腾的方法是购买 VPN,次之是购买一台海外 VPS,自己安装 VPN 或 Shadowsocks 服务端。VPN 的优点是可以全局翻墙,Shadowsocks 虽然可以设置全局模式,但是对于不支持代理的本地应用是没有办法的,当然这种情况下可以试试 ProxifierPE 强制所有连接通过代理上网。
建议自己购买vps 优惠链接
使用 Shadowsocks 可能遇到的另一个问题是,因为 Shadowsocks 使用的是 SOCKS5 类型的代理,当本地应用只支持 HTTP/HTTPS 类型代理时,就需要自己解决 HTTP 转换为 SOCKS5 的问题。当然,这个问题使用 Privoxy 就能很好地解决。
本节主要介绍如何组合使用 Shadowsocks 和 Privoxy,并假设你已经安装并配置好了 Shadowsocks(Linux 中可以安装 shadowsocks-qt5 或 命令行版本的 Shadowsocks)。
Shadowsocks 与 Privoxy 组合使用的示意图如下所示:
假设你已经配置好了 Shadowsocks,接下来配置 Privoxy。
- Windows
右键点击 Privoxy 托盘图标,依次点击 Edit - Main Configuration 打开配置文件;Linux 系统中 Privoxy 的配置文件位于/etc/privoxy/config。
配置文件修改为:1
2
3
4
5
6# 把 HTTP 流量转发到本机 127.0.0.1:1080 的 Shadowsocks
forward-socks5 / 127.0.0.1:1080 .
# 可选,默认只监听本地连接 127.0.0.1:8118
# 可以允许局域网中的连接
listen-address 0.0.0.0:1081
启动 Shadowsocks 和 Privoxy 后,把本地应用的代理设置为 HTTP/HTTPS 类型的 127.0.0.1:8118,就可以绕过 GFW 和 ISP 了。如果局域网中的其他 PC 或手机也希望使用该电脑上网(假设该电脑 IP 地址为 192.168.1.10),把它们的代理设置为 19.168.1.10:8118 即可。
- MAC
安装Privoxy1
brew install privoxy
配置Privoxy1
2
3
4vim /usr/local/etc/privoxy/config
listen-address 0.0.0.0:1081
forward-socks5 / 127.0.0.1:1080 .
1080是Shadowsocks代理的端口,8118是开启http代理的端口。使用0.0.0.0即可在局域网内使用此代理,如只想本机使用,使用127.0.0.1。
启动Privoxy
1 | /usr/local/sbin/privoxy /usr/local/etc/privoxy/config |
检查服务是否启动1
netstat -an | grep 8118