优雅的 fq 姿势

说到姿势,(⊙o⊙)…,我们还是回到 fq 这个话题~

国内的网络环境对于 Developer 一直不怎么友好,毕竟外面才是技术的发源地。接触计算机第三年,自我感觉姿势已修炼的比较优雅,没时间解释了,快上车。

vpn & proxy

先来看看这二者有什么区别

vpn 介绍

vpn 的英文全称是 “Virtual Private Network”,翻译过来就是“虚拟专用网络”。虚拟专用网络我们可以把它理解成是虚拟出来的企业内部专线。它可以通过特殊的加密的通讯协议在连接在 Internet 上的位于不同地方的两个或多个企业内部网之间建立一条专有的通讯线路。虚拟专用网络功能是:在公用网络上建立专用网络,进行加密通讯。在企业网络中有广泛应用。vpn 网关通过对数据包的加密和数据包目标地址的转换实现远程访问。vpn 有多种分类方式,主要是按协议进行分类。vpn 可通过服务器、硬件、软件等多种方式实现。vpn 具有成本低,易于使用的特点。

proxy

proxy,也称网络代理,是一种特殊的网络服务,允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。一些网关、路由器等网络设备具备网络代理功能。一般认为代理服务有利于保障网络终端的隐私或安全,防止攻击。提供代理服务的电脑系统或其它类型的网络终端称为代理服务器。一个完整的代理请求过程为:客户端首先与代理服务器创建连接,接着根据代理服务器所使用的代理协议,请求对目标服务器创建连接、或者获得目标服务器的指定资源(如:文件)。代理又可细分为正向代理和反向代理。

总结下就是 vpn 的安全性和速度方面要高于 proxy,而且 vpn 工作在 OSI 七层模型的 2、3 层,proxy 工作在第7层,换言之,连接 vpn 后的作用是全局的,而 proxy 的作用是局部的,只适用于你指定的应用程序,例如浏览器,看到这里,我们是不是应该果断选择 vpn 呢,非也,来看下这条新闻 中国出台措施严管互联网翻墙工具 vpn。所以对于不稳定的 vpn,我是拒绝的。下面详细介绍如何通过 socks5 proxy 来优雅的 fq。

准备工作

  • 一台海外 vps,推荐 vultr,有日本机房,优化后 ping 值可稳定在 150ms,速度还不错,首次购买还会送 20$,完成相应任务也会送美刀,大约花 70RMB 能用半年的样子,附推广链接
  • 一定的 linux 基础

socks5 服务器搭建

紧接上个步骤,现在假设你已经有了一台海外的 vps。

vps 系统选择

考虑到代理服务器速度优化的问题,vps 系统版本选择请参考 锐速支持的内核列表,当然如果你有一定的 linux 基础的话,版本请随意。

谷歌为我们带来了干货,新的 TCP 拥塞控制算法 BBR。 目前在 Linux Kernel 4.9 中支持了该功能,所以我们只要升级内核就能体验了。

代理服务端配置

登陆你的 vps,依次执行以下命令:

1
2
3
4
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install python-pip
$ sudo pip install shadowsocks

然后,新建文件 /etc/shadowsocks.json,并输入以下内容

1
2
3
4
5
6
7
8
9
10
11
12
{
"server":"::",
"local_address":"127.0.0.1",
"port_password":
{
"443":"PASSWORD"
},
"timeout":300,
"method":"chacha20",
"fast_open":true

}

上述配置中的 PASSWORD 为你的 socks5 代理认证密码,请自行修改,chacha20 是一种安全和速度相对折中的算法,支持这种加密算法需要系统安装 libsodium 库,可使用 sudo apt-get install libsodium18 安装,若源中没有该软件包,可在 Github 中下载源码编译安装 传送门。如果不想这么麻烦,可直接将上面配置文件中的 method 字段的值设置为 rc4-md5

开启 socks5 代理服务,可自行选择是否并将服务加入开机启动。(将下面的命令加入 /etc/rc.local文件)

1
$ sudo ssserver -c /etc/shadowsocks.json -d start

加速方案

客户端安装

下载页面传送门,安装好相应平台的客户端后按照服务器端的配置进行设置并连接即可。

linux 下的各种玩法

代理自动配置并开机自启

代理自动配置(英语:Proxy auto-config,简称 PAC)是一种网页浏览器技术,用于定义浏览器该如何自动选择适当的代理服务器来访问一个网址。简而言之就是需要走代理的走代理,不需要走代理的则不通过代理。首先先让 socks5 代理在本机跑起来( ubuntu/debian 系列)

1
2
3
4
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install python-pip
$ sudo pip install shadowsocks

新建文件 /etc/shadowsocks.json,并输入以下内容

1
2
3
4
5
6
7
8
9
10
11
{
"server":"YourServerIpAddress",
"server_port":443,
"local_address":"127.0.0.1",
"local_port":8899,
"password":"YourProxyPassword",
"timeout":300,
"method":"chacha20",
"fast_open":true,
"workers":1
}

同样的,请修改 YourServerIpAddressYourProxyPassword 两处为你自己的配置,之后运行 sudo sslocal -c /etc/shadowsocks.json -d start 即可启动 socks5 代理,将这条命令加入到 /etc/rc.local 文件中就可以实现开机启动代理,现在你本地的 8899 端口就是一个 socks5 代理,O(∩_∩)O哈哈~

依次打开 linux 下的 设置 —-> 网络设置 —-> 网络代理,选择 MethodAutomatic,并在 Configuration URL 中输入你的 PAC 文件地址,应用即可,PAC 文件请自行搜索。

终端下如何使用代理

目前本机的 8899 端口是一个 socks5 代理,然而终端下的某些命令对于 socks5 代理支持的并不怎么友好,这就需要我们将 socks5 代理转为 http 代理或者其它代理,而 polipo 正好可以胜任这一工作。安装方法如下

1
$ sudo apt-get install polipo

之后编辑文件 /etc/polipo/config,在文件最后加入下面的内容

1
2
socksParentProxy = "localhost:8899"
socksProxyType = socks5

修改完成后运行 sudo service polipo restart 重启 polipo 即可,现在你本地的 8123 端口就是一个 http 代理端口了。只有运行命令时在前面加上 http_proxy=http://localhost:8123 即可以代理的方式运行,例如 http_proxy=http://localhost:8123 curl ip.gs

还有一个问题需要注意,并不是所有的程序都会识别 http_proxy 这个环境变量,例如 apt-get 是这样用的

1
$ sudo apt-get -o Acquire::http::proxy="http://127.0.0.1:8123/" update

Ipv4 下通过代理使用 Ipv6

这种玩法需要你的 vps 有公网的 Ipv6 地址,如果正好有,则在 vps 编辑 /etc/shadowsocks.json 文件,修改 server 的值为:: 然后重启 ssserver 即可。

总结

当然还有很多神奇的玩法,一起摸索啦,认真,专注,探索,不做咸鱼!

0%