写在前面

为什么会有这篇东西

  • 平时工作学习需要查找一些外网资料,偶尔也翻翻 P 站、推特,故需要科学上网的方法,用别人现成的工具 试过了不好用 不符合我的上网风格

  • 网上虽然已经有蛮多的教程,但多数都是 happy pass,与自己的实际操作多少有出入,其中遇到的很多问题并没有给出解决方案,需要另外查找

  • 搭建的过程中,有一些固定的步骤和共同的问题最好还是记录下来,便于备忘及日后学习和应用

  • 不定期 修改 & 更新


使用 VPS 搭梯子实现科学上网

VPS简介:
VPS,全称 Virtual private server,虚拟专用服务器,是将一台服务器分区成多个虚拟专享服务器的服务。每个 VPS 可配置独立 IP、内存、CPU 资源、操作系统。对于开发者来说,如果需要搭建个人网站,或者跑一些 demo,VPS 是很经济实惠的。同时 还能用 VPS 搭建 ShadowSocks 做梯子,一个人独占一条线路,稳定性高。

一、VPS 购买

通常用得比较多的是 Vultr ,性价比还行,官网没有被墙,网上也能找到较多的资料。不过近年来 Vultr 的 IP 已经不太好用,被墙的以及网络慢的占多数。不过仅仅是个人轻度使用完全足够。

Vultr传送门,使用此链接注册的用户可获 $10

注册登录与选择套餐不再赘述。

部署好后就要测试这个服务器分得的IP是否满足搭梯子的需要了,一般做以下步骤:

  1. 测试 IP 地址的连通性:

  2. 测试 ftp(22) 端口连通性:

只有 IP 正常响应同时端口开放的地址才是可用的服务器,如果有一项不通过则删除服务器重新选购直到刷出能用的 IP为止,到此 VPS 购买完成。

以下为 $5 的环境配置信息:

  • OS: CentOS 7 x64
  • CPU: 1 vCore
  • RAM: 1024 MB
  • Storage: 25 GB SSD
  • Bandwidth: 0 GB of 1000 GB

二、配置

设置开机密码(CentOS 7, 其余版本自行搜索)

  1. 打开服务器的网页控制台,点击 send CtrlAltDel,然后按 ESC 键启动 GRUB boot prompt

  2. 按e开始第一启动项,按下方向键移动光标,在 linux16 这行,将 ro 改为 rw init=/sysroot/bin/sh

  3. 按 Ctrl+X 启动单用户,输入 chroot /sysroot 并回车,再输入passwd 回车,便可修改 root 密码

  4. 输入 reboot -f 并回车,完成设置

配置 putty 远程连接

本地安装 putty 客户端,下载网址

附:CentOS 7 下常用命令

yum update              更新软件包
yum install net-tools   安装 netstat 工具
yum install vim         安装 vim 编辑器

netstat -lntp           查看端口
netstat -antp           查看 TCP 连接

安装 SS 并配置

putty 连接上后输入以下命令

yum update
yum install python-setuptools
yum install python-pip
pip install shadowsocks

mkdir /etc/shadowsocks
vim /etc/shadowsocks/config.json

然后配置文件如下:

单端口:

{
    "server": "0.0.0.0",
    "server_port": 8421,
    "password": "password",
    "method": "aes-256-cfb"
}

多端口:

{
    "server": "0.0.0.0",
    "port_password": {
        "8421": "password1",
        "8422": "password2",
        "8423": "password3",
        "8424": "password4"
    },
    "timeout": 300,
    "method": "aes-256-cfb"
}

编辑好配置文件后,以下为启动命令:

不打印日志:

ssserver -c /etc/shadowsocks/config.json -d start

打印日志:

nohup ssserver -c /etc/shadowsocks/config.json > /etc/shadowsocks/ssserver.log 2>&1

若安装 python-pip 出现 No package python-pip available, 是因为 python-pip 包含于源 epel 中, 而系统中无此源

执行如下语句安装 epel

yum -y install epel-release

三、本地客户端与浏览器配置

ShadowSocks 客户端配置

  • 下载对应操作系统版本的 shadowsocks,配置没有什么难度,打开配置即可

浏览器配置

  • Chrome 浏览器一般使用 SwitchyOmega 插件,配置代理协议为 HTTP 即可,代理服务器为 127.0.0.1,端口为本地的 shadowsocks 代理端口 (通常为1080)

四、存在的问题

  • 在尝试搭建完后,发现本地代理连接不上服务器,推测可能性有两点:

    1. 配置有问题
      • shadowsocks 配置问题
      • 系统端口未开放
    2. IP 已经被墙
  • 使用站长工具测试 IP 的代理端口,发现已经关闭,使用本地命令查看端口,LISTEN 状态,查看日志,一切正常,初步推断此 IP 已经不能用了

五、解决方案

  • 换 IP

    多次尝试无果暂时放弃,考虑使用 Tor 上外网

  • 换 VPS 供应商

    下阶段试验供应商:linode