使用 Ubuntu18.04 服务器搭建 shadowsock 代理服务器

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gulang03/article/details/88297250

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 都知道如何自己找下载链接。下面直接列出常用的下载地址。

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 远程登录

这里你在确认链接信息没有出错的前提下,最大的可能性是服务器的防火墙没有允许你使用的代理端口开放。像阿里云的话,默认拦截策略使用不是服务器的防火墙,而是阿里提供的 “安全组” 策略里面配置。

猜你喜欢

转载自blog.csdn.net/gulang03/article/details/88297250