HTTP/HTTPS 代理服务器是拿来转发 HTTP/HTTPS 协议的请求的。教程里面使用的是 “shadowsocks” 。
PS:但还是要强调一点,“Shadowsocks” 只能代理转发 HTTP/HTTPS 协议的请求。如果你要和一台被 QL 的国外主机建立 TCP 连接,抱歉不能做到,这时候你只能使用 VPN 技术来实现。不过当今互联网的大部分应用数据都是通过 HTTP/HTTPS 协议传输的,所以实用性还是比较高的。
1. 安装 pip3
pip3 是一个现代的,通用的 Python 包管理工具。提供了对 Python 包的查找、下载、安装、卸载的功能。类似于 Debian 下的 apt、CentOS 下的 yum。
这里要注意的是我选用的是 python3 的版本,Linux 下不加3 默认是 python2。
sudo apt-get install python3-pip
2. 使用 pip3 安装 “shadowsocks”【pip 默认是 python2 的】
pip3 install https://github.com/shadowsocks/shadowsocks/archive/master.zip
这里我在安装时出现了以下错误提示,熟悉 python 的都知道是因为缺少相关依赖库造成的。根据提示发现是缺少 python3-setuptools 库造成,这里直接安装 python3 对应的 python3-setuptools 就好了。【你遇到的错误可能不止这一个,遇到了基本都是因为缺少包造成的,自己百度去一个个安装。记得上次配置是缺了多个包】
# 安装 shadowsocks 软件需要的 python3-setuptools 库
sudo apt-get install python3-setuptools
# 之后再次执行,即可安装成功
pip3 install https://github.com/shadowsocks/shadowsocks/archive/master.zip
查看安装版本:
ssserver --version
3. 配置 “shadowsocks”服务
- 创建 shadowsocks.json 配置文件
sudo vim /etc/shadowsocks.json
- 编辑 shadowsocks.json 内容
{
"server":"服务器公网IP",
"server_port":7878, // 对外提供服务的端口,注意防火墙要允许该端口开放
"local_address": "127.0.0.1",
"local_port":1080,
"password":"password", // shaodowsocket 客户端连接需要的密码
"timeout":300,
"method":"aes-128-ctr" // 通信过程使用的加密算法
}
PS:注意去掉后面的注释
4. 启动 “shadowsocks”
ssserver -c /etc/shadowsocks.json -d start
5. 进阶配置【使用 systemctl 管理、并实现开机自启】
5.1 创建 shadowsocks.service文件
vim /lib/systemd/system/shadowsocks.service
5.2 复制粘贴一下内容,然后保存退出
[Unit]
Description=Shadowsocks Server
After=network.target
[Service]
ExecStart=/usr/local/bin/ssserver -c /etc/shadowsocks.json
Restart=on-abort
[Install]
WantedBy=multi-user.target
5.3 使用 systemctl 和 service 进行管理
# 启动、查看状态、停止 shadowsocks 服务[ 下面的两种方式都可以, ".service" 可以省略]
systemctl [start、status、stop] shadowsocks.service
service shadowsocks.service [start、status、stop]
# 开机自启【开启、关闭】
systemctl [enable、disable] shadowsocks.service
6. 客户端安装和配置使用 Shadowsocks
直接给出该项目地址:https://github.com/shadowsocks,熟悉 GitHub 都知道如何自己找下载链接。下面直接列出常用的下载地址。
- windows 下载页面地址:https://github.com/shadowsocks/shadowsocks-windows/releases
- Android 下载页面地址:https://github.com/shadowsocks/shadowsocks-android/releases
- Linux 下载地址:https://github.com/shadowsocks/shadowsocks-qt5/releases
Github 由于是在国外,下载可能比较慢,这个有我下载好的【提取码:g6b0】:https://pan.baidu.com/s/1zr_eE8c279sTvCsaMe4f7A
6.1 Windows 下安装教程
解压之后双击运行,进行下图配置:
到此你便可以重启浏览器正常使用代理了,如果你的服务器在国外【好像是废话哈】,那么就可以通过自己搭建的代理通道正常访问了。
注意上面右图中的 “更新本地PAC” 前的英文字符 ,点到为止,不便细说。
“小飞机” 客户端启动都做了什么?
作为搞技术的我们肯定不能仅限于到此能正常使用,这里说一下为什么 Shadowsocks 客户端配置好启动,浏览器【如果之前安装的有代理插件,要记得关掉】只需重新启动无需任何配置就可以直接使用了。
说道这里可能要说一下 Shadowsocks 的工作原理:
下图为 Windows10 中已被 Shadowsockets 配置好的系统代理:
这样需要使用代理的软件默认都会使用系统代理【就像浏览器一样】,无需配置即可。。。
6.2 Android 下安装配置
之后开启连接便可以使用代理。
6.3 Linux 下的安装配置
双击下载下来的安装程序,运行配置:
但是 Linux 下到此并没有完,大概是因为 Linux 发行版本众多,导致没有统一的系统代理配置标准,所以还需要手动配置系统代理,这个配置根据所使用的 Linux 发行版不同而不同【系统的代理配置可能是单独的软件,也可能集成在网络配置工具里面】,但是全局配置都很简单,这里我使用的 Linux Mint 为例:
不过这样手动配置完系统代理之后,一旦你停掉 Shadowsocks 客户端,还需要手动再改会直接连接到互联网,不然就无法使用浏览器直接上网。
当然,你也可以不配置系统代理,转而直接去配置需要使用代理上网的软件,比如 Firefox 浏览器:
7. 配置失败的几种情况排错
1。自己的服务器不能使用 ssh 远程登录
通常情况下,云服务提供商提供的云端实例,默认都是安装了 openssh-server 的,并支持远程 ssh 登录的,如果你连不上,那很大可能就是你的 “云服务器IP” 被那啥了。具体怎样进一步验证,自己思考。
2. 服务器工作正常,可以 ssh 远程登录
这里你在确认链接信息没有出错的前提下,最大的可能性是服务器的防火墙没有允许你使用的代理端口开放。像阿里云的话,默认拦截策略使用不是服务器的防火墙,而是阿里提供的 “安全组” 策略里面配置。