一直不是很理解为什么会有 GFW 这种东西的存在。国家政治层面的东西我不懂,既然有了这一面墙,我们能做的就是想办法翻越它,做技术的特别是 IT 的人对于科学上网还是有需求的(比如Google等网站的访问),当然也可以上Youtube、Facebook等一些在国内被禁的网站。在这里我只教人向善,利用Shadowsocks(以下简称SS)实现科学上网。至于翻墙后你干嘛我就管不到了。本文介绍在CentOS7上面搭建SS服务。科学上网,畅游网络。

Vultr 租一个 VPS

  • 风车车是在 Vultr 上面租的 VPSVultr 是一家提供美国、欧洲、澳大利亚、亚洲等多个国家和地区机房的VPS主机商。当然你可以选择你中意的任一家服务器提供商。Vultr官网地址Vultr的支付方式现在已经可以支持支付宝了,非常的方便,以前需要 Paypal 支付。喜欢折腾的人也可以去注册一下 Paypal ,保不齐什么时候会用到的。
  • Vultr 官网: 传送门
  • Paypal 官网: 传送门
  • 进入 Vultr 官网,完成注册后,登录进去,点击左侧的 Servers 链接,再点击页面右侧的蓝色加号进行VPS的选择页面
  • pic
    Servers
  • pic
    addAServers
  • 首先选择 Server Location 也就是服务器位置,我们最好是选择离我们近的地方,比如:小日本 Japan 或者 新加坡 Singapore。这样速度上可能会好一些。
  • 接着是选择 Server Type,也就是服务器预装什么系统,这里因人而异,我是装的 centOS7 X 64 ,顺便可以学习下 Linux 的相关操作。
  • 再接着是选择 Server Size,也就是服务器的大小。嗯,大小很重要,我猜大家都喜欢大的 ~_~ ! 这里根据个人经济情况进行选择。如果只是为了翻个墙,选个小的就行了,一个月 2.5$(刀) 或者 5$(刀),还是能接受的。下面的4、5、6、7都不用管,直接 deploy now 就行了。稍等片刻服务器就创建好了,这时再点击左侧 Servers 链接就可以看见你的 VPS 信息了,如下所示:
  • pic
    ServerInfo
  • pic
    DetailInfo
  • 点击右侧那三个小点可以对你的 VPS 进行相应的管理。比如:
    • Server Details 查看 VPS 的详细信息
    • View Console 网页端远程登录 VPS 。和 Putty 功能类似,感觉 Putty 用起来方便一些
    • Server Stop 停止服务器
    • Server Restart 重启服务器
    • Server Reinstall 重装系统
    • Server Destroy 销毁服务器

利用 putty 登录 VPS

  • 自行百度下载 Putty 客户端
    pic
    Putty
  • 下载 Putty 后,打开软件,输入你 VPSIP 点击 Open 按钮,初始信息(IP、用户名、密码)在 Server Details 里可以看见。输入用户名: root 和 密码(密码输入时不会有任何提示,输入完直接回车即可)
  • 注意事项:Putty 链接VPS后,选中表示复制操作,而右键单击表示粘贴操作
  • pic
    DetailInfo
  • pic
    Putty界面
  • pic
    Putty登录成功界面

VPS 服务器端 安装 Shadowsocks

  • 对于 centOS7 系统 服务端安装 SS 很简单 运行以下两行代码就行:
  • yum install python-setuptools && easy_install pip
  • pip install shadowsocks
  • 这样服务器端 shadowsocks 就安装好了

编写 SS 配置文件

  • 配置 Shadowsocks 启动时的参数,如服务器端口,代理端口,登录密码等,可以通过启动时的命令行参数来设定,也可以通过 json 格式的配置文件设定。推荐使用配置文件,方便查看和修改。
    vi 新建一个配置文件:
  • 执行命令 : vi /etc/shadowsocks.json 键入如下配置代码,保存后退出
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    {
    "server":"xx.xx.xx.xx",
    "local_address":"127.0.0.1",
    "local_port":1080,
    "method":"aes-256-cfb",
    "port_password":{
    "8383":"yourPass",
    "8384":"yourPass",
    "8385":"yourPass",
    "8386":"yourPass",
    "8387":"yourPass",
    "25":"yourPass"
    },
    "timeout":"300",
    "fast_open":false
    }

SS 配置 json 文件简要说明

  • server 填写你 VPS 服务器的 IP 地址
  • local_address 本地 IP 地址,作为服务器使用的时候可以不用关注,填 127.0.0.1 即可
  • local_port 本地端口,也不用关注
  • method 加密方式,建议填写 aes-256-cfb ,安全性比较高
  • port_password 表示要开启的端口和对应密码,你可以开多个端口,以便多人在多个终端同时使用
  • timeout 超时时间,如果当心网络不好可以设置大一点
  • fast_openUbuntu 上建议填 true,这里我填 false
  • 填好后,保存退出 :wq

安装并配置防火墙(开启对应端口)

  • 安装防火墙通过命令: $ yum install firewalld
  • 启动防火墙通过命令:$ systemctl start firewalld
  • 开启防火墙对应端口(json文件里面你配置的端口都要打开,不然不起作用)通过以下命令:
  • $ firewall-cmd --permanent --zone=public --add-port=443/tcp
  • $ firewall-cmd --reload

启动 Shadowsocks 服务

  • 服务器启动和停止 Shadowsocks 服务通过以下命令:
  • ssserver -c /etc/shadowsocks.json -d -start
  • ssserver -c /etc/shadowsocks.json -d -stop
  • 注意事项: 重启服务器后可能需要 重启Shadowsocks
  • 上面的命令可能有误:曾经启动不了,换成ssserver -c /etc/shadowsocks.json -d start就可以了
  • 新装的 centOS7 记得配置网关信息 /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=”eth0”
    BOOTPROTO=”dhcp”
    ONBOOT=”yes”
    TYPE=”Ethernet”
    NM_CONTROLLED=”no”
    IPV6_AUTOCONF=”yes”
    IPV6INIT=”yes”
    NOZEROCONF=”yes”
    NETMASK=”255.255.254.0”
    GATWAY=”xx.xx.xx.xx”
    DNS1=”8.8.8.8”
    ZONE=public

安装 Shadowsocks 客户端

  • 电脑客户端下载地址: 传送门 下载后打开软件 填写相关信息如下图所示:右键启动系统代理,并开启 PAC 模式,这里简单说一下 PAC 模式和 全局模式 的区别: PAC 模式会自动识别网站,若是国内网站则不走代理路线,只有需要翻墙时才走代理路线;而全局模式则无论你访问什么网站都走代理的。一般情况选择 PAC 就行
  • pic
    SS电脑客户端配置
  • 手机客户端(影梭)下载地址: 传送门 下载完 apk 安装包后,安装软件,并填入相应服务器配置信息
  • pic
    SS手机客户端下载
  • pic
    手机端配置成功界面

到此为止,我们已经完成了大部分的工作,对于一般用户已经能够满足其需求了。

后续 Kcptun 加速以及一些命令总结

  • 如果你对速度有要求,想看 youtube 1080P 或者想在看小电影时顺畅一点,你可以安装 Kcptun 进行加速。Kcptun 在这里就不介绍了,爱折腾的同学可以百度,自己琢磨。我表示当初装了 Kcptun 也没快到哪里去,而且貌似更容易被封
  • 下面给出一些 Linux 的一些常用命令操作:
  • firewalld 的基本使用

    • 启动:systemctl start firewalld
    • 查看状态:systemctl status firewalld
    • 停止:systemctl disable firewalld
    • 禁用:systemctl stop firewalld
  • systemctlCentOS7 的服务管理工具中主要的工具,它融合之前 servicechkconfig 的功能于一体。

    • 启动一个服务:systemctl start firewalld.service
    • 关闭一个服务:systemctl stop firewalld.service
    • 重启一个服务:systemctl restart firewalld.service
    • 显示一个服务的状态:systemctl status firewalld.service
    • 在开机时启用一个服务:systemctl enable firewalld.service
    • 在开机时禁用一个服务:systemctl disable firewalld.service
    • 查看服务是否开机启动:systemctl is-enabled firewalld.service
    • 查看已启动的服务列表:systemctllist-unit-files|grep enabled
    • 查看启动失败的服务列表:systemctl --failed
  • 配置firewalld-cmd
    • 查看版本:firewall-cmd --version
    • 查看帮助:firewall-cmd --help
    • 显示状态:firewall-cmd --state
    • 查看所有打开的端口:firewall-cmd --zone=public --list-ports
    • 更新防火墙规则:firewall-cmd --reload
    • 查看区域信息:firewall-cmd --get-active-zones
    • 查看指定接口所属区域:firewall-cmd --get-zone-of-interface=eth0
    • 拒绝所有包:firewall-cmd --panic-on
    • 取消拒绝状态:firewall-cmd --panic-off
    • 查看是否拒绝:firewall-cmd --query-panic
  • 端口的开启与关闭
    • 开启一个端口
    • firewall-cmd --zone=public --add-port=80/tcp --permanent (–permanent永久生效,没有此参数重启后失效)
    • 重新载入 firewall-cmd --reload
    • 查看 firewall-cmd --zone= public --query-port=80/tcp
    • 删除 firewall-cmd --zone= public --remove-port=80/tcp --permanent
    • 查看 tcp 监听端口 netstat -lntp
    • 杀进程 kill -9 进程id

结束语

  • 码字不容易,有问题可以相互沟通,相互学习
  • 另外打个小广告:如果你选用 Vultr 作为 VPS 供应商。你可以通过我的传送门进行注册 传送门 。相信我这是一件互惠互利的事情。