Gost Cover

目录

前言:本教程来源于对 haoel.github.io 的实践经验。此篇教程有一定门槛,读者觉得麻烦可参考笔者的另一篇博文 科学上网之 Outline 方案,笔者的 VPS 环境为最新版 Ubuntu,客户端环境为最新版 macOS。

1. 购买域名

  • GoDaddy 并注册账号。
  • one.com 购买域名(更便宜但激活更麻烦些)。
  • (推荐)到 Cloudflare 购买域名, 因为其注册和续订按成本定价。
  • (推荐)到 NameSilo 购买域名, 因为便宜。

2. 将域名托管到 Cloudflare 上

  • 进入 Cloudflare 并注册账号。
  • 点选左侧 tab 中的网站,点击右侧添加站点按钮。
  • 输入购买的域名并点击添加站点。
  • 选中底部的免费计划并点继续。
  • 点击 GoDaddy 中自己的昵称并选中我的产品。
  • 点击所有产品和服务中的 DNS 。
  • 将 GoDaddy 的名称服务器替换为 Cloudflare 的名称服务器并保存(以下为参考,具体值需要自己查看)。

    leif.ns.cloudflare.com
    priscilla.ns.cloudflare.com
    

    提示:替换完名称服务器后需要等几分钟才生效。

3. 购买 VPS

  • 选择 VPS 提供商。部分参考商家如下1,更多商家请自行网上搜寻,注意仔细甄别商家以避免数据泄漏。千万别用国内提供商的 VPS,容易被监控被抓:

    提示:不要购买 Vultr 的 VPS ,不少人反馈被封 IP 太多,据笔者实测,美国旧金山和洛杉矶、日本、新加坡的机器无法科学上网,只有韩国可以,而且韩国这个 IP 还被奈飞等一些网站屏蔽。在进入提供商页面注册账号之前可先搜索对应提供商的优惠码或促销链接,通过这些优惠码或促销链接可获得一定的优惠。

    推荐购买美区的 VPS,因为各种可用资源更多限制更少,很多产品和服务都是优先在那试用使用和开服,比如谷歌的 AI 套件,比如如果购买韩国的 VPS 则油管上的一些视频的观看有年龄验证限制而美区没有。一些站点资源的观看浏览或下载不对亚区开放,访问时会被 Cloudflare 阻止而美区无限制,比如泥视频、欧乐影院等。速度方面,我感觉和日韩的 VPS 没什么差别,还算挺快的。延时会长一些,大概二三百毫秒左右,但在日常使用中毫无影响,完全处于可接受的范围之内。如果玩及时性和稳定性很高的游戏,那还是购买 CN2 GIA、IPLC 或 IEPL 线路的机场服务吧。

  • 注册账号并登录。
  • 选择安装不小于 Ubuntu 18.04.6 LTS x64 的系统。

提示:有的商家的 VPS 需要提前开启 22 端口以供终端 SSH 登录,笔者目前没遇到,读者若遇到还请自行开启。

4. 绑定域名到 IP

  • 点选 Cloudflare 左侧边栏“网站” tab 并单击右侧验证通过的域名进入新控制台。
  • 点选左侧边栏 DNS ,在右侧添加 A 记录,填入自定义名称(如我填的:beyondgfw)和 VPS 的 IPv4 地址,代理状态选关闭,保存。

提示:绑定域名需要几分钟后才生效。

5. Gost 服务端部署

  • 打开终端 Shell 命令行执行 SSH 指令登录 VPS (Mac 直接打开终端即可,Windows 可下载 XShell、MobaXterm 等工具)。

    语法:ssh [account]@[host]
    示例:ssh root@141.64.43.208
    

    (回车后输入密码)

  • 开放 80 端口以供安装证书用,开放 443 端口以供科学上网。

    sudo ufw allow from any to any port 80,443 proto tcp
    
  • 开始执行指令部署服务。

    sudo bash -c "$(wget -qO- https://raw.githubusercontent.com/haoel/haoel.github.io/master/scripts/install.ubuntu.18.04.sh)"
    

    Setup BBR

  • 输入 1 以安装 TCP BBR 拥塞控制算法。
  • 输入 Y 以继续。

    Continue by Enter Y

  • 安装完后 VPS 会自动重启。

    Reboot (需要等几分钟后再登录)

  • 登录 VPS 并再次执行之前的指令以供后续操作。

    ssh [account]@[host]
    

    (用自己的 账号 和 IP 分别替换 [account]、[host])

    sudo bash -c "$(wget -qO- https://raw.githubusercontent.com/haoel/haoel.github.io/master/scripts/install.ubuntu.18.04.sh)"
    
  • 输入 2 以安装 Docker 服务程序。

    Setup Docker Container

  • 输入 3 以创建 SSL 证书。
  • 按 Enter 键以继续。

    Continue by Enter

  • 输入 Y 以继续。

    Cotinue by Enter Y

  • 输入之前绑定的二级域名(比如我的为:beyondgfw.thomasyang.site)。

    Enter Domain (域名间无空格)

  • 输入一个自己的邮箱地址。

    Enter Email

  • 输入 A 以继续。

    Continue by Enter A

  • 输入 N 以继续。

    Cotinue By Enter N

  • 看到 Congratulations 则表示安装成功。

    Congratulations tip

  • 输入 4 以安装 Gost HTTP/2 代理服务(Gost 的 HTTP2 实现走的是 HTTPS)。

    Setup Docker Gost

  • 输入之前生成证书时填的二级域名(比如我的是:beyondgfw.thomasyang.site)。

    Domain

  • 接着设定一个用户名(举例比如:zhangsan)。
  • 设定密码以用于科学上网连接时使用(举例比如:hgks38aTQ)。
  • 如果认证信息(也就是用户名和密码)中包含特殊字符,则需要通过 auth 参数来设置,auth 的值为 user:pass 的 base64 编码值,为了避免麻烦,推荐组成要素为大小写字母和数字。
  • 输入之前开放的端口号 443。
  • 输入 8 以设置定时证书更新。
  • 输入 9 退出。
  • 验证代理服务是否部署成功。

    语法:
    curl -v "https://www.google.com" --proxy "[host]:[port]" --proxy-user '[user]:[password]'
    
    示例:
    curl -v "https://www.google.com" --proxy "https://beyondgfw.thomasyang.site:443" --proxy-user 'zhangsan:hgks38aTQ'
    
  • 输出大段的控制信息和谷歌的页面代码则表示成功无误。

    Ok

  • 安装 Cloudflare Warp(可选)。大多数 VPS 的 IP 都不是原生 IP,在使用一些服务时会受到限制,比如:Netflix 没法解锁非自制内容、ChatGPT 聊天页面禁止使用、Bing 账号被挂起……,使用 Warp 可解锁原生 IP 限制。

    • 下载第三方一键安装脚本。

      wget git.io/warp.sh
      
    • 授予脚本执行权限。

      chmod +x warp.sh
      
    • 运行脚本并先后输入 1,4,7 执行安装。

      sudo ./warp.sh menu
      
    • 输入 ./warp.sh status 查看安装状态。正常状态如下:

      WireGuard : Running
      IPv4 Network : WARP
      IPv6 Network : WARP
      

6. Gost 电脑客户端使用

  • 安装 Homebrew。

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    
  • 下载 Gost。

    brew install gost
    
  • 创建带 Gost 客户端连接命令的开机自启动批处理文件(此处以 Mac 为例,Windows 同理)。
  • 打开终端,创建批处理文件。

    vim gost-cli.sh
    

    (默认为登录用户目录下,可选择其它目录)

  • 键入英文 i 以启用 vim 的插入模式并输入以下命令(一定要按照提示将尖括号部分替换成自己的信息)。

    #!/bin/bash
    
    nohup gost -L=ss://aes-128-cfb:[password1]@:443 -F=http2://[username]:[password2]@[host]:443 > /dev/null 2>&1 &
    
    killall Terminal
    

    (语法)

    #!/bin/bash
    
    nohup gost -L=ss://aes-128-cfb:hgks38aTQ@:443 -F=http2://zhangsan:hgks38aTQ@beyondgfw.thomasyang.site:443 > /dev/null 2>&1 &
    
    killall Terminal
    

    (示例)

    • 语法替换:
      • 替换尖括号部分。
      • 代理协议 ss 可替换成别的,如 socks5,亦可不变。
      • 加密协议 aes-128-cfb 可替换成别的,亦可不变。
      • 用户名和主机替换成之前服务器配置的内容(如前面配置的 zhangsan 和 beyondgfw.thomasyang.site)。
      • password1 也可以和 password2 不同,亦可相同。password1 为后续的终端代理软件 Shadowsocks 等的连接密码,可自定义新的密码,password2 必须与服务端的密码一致(如前面的 hgks38aTQ)。

    提示:笔者的终端环境已从 zsh 切换成了 bash,指令语法皆为 bash 风格,读者可按需替换成自己的 zsh 风格,亦可使用以下命令切换成 bash 风格:

    chsh -s /bin/bash
    
  • 按 esc 键切换到命令模式,再按 :wq 保存并退出。
  • 为脚本增加可执行权限。

    chmod +x gost-cli.sh
    
  • 修改 .sh 后缀文件的默认打开方式为终端。在文件上右击后点选获取信息,在打开方式中下拉选中其它,打开工具文件夹,在启用框中下拉选中全部应用,点选终端,点击添加。
  • 点开 Mac 登录选项 ,将脚本添加到选项框。

    Mac Login Item Add

  • 执行脚本以供当前使用。

    ./gost-cli.sh
    
  • 下载 ShadowsocksX-NG-R8 以供 Mac 端使用。点击第一个 ShadowsocksX-NG-R8.dmg 进行下载。 避坑提示:笔者先是尝试 ShadowsocksX-NG,发现怎么都连不上,后面换成 ShadowsocksX-NG-R8 才得以解决。
  • 安装并配置 SSR2
  • 解压下载的 dmg 文件,将 ShadowsocksX-NG-R8.app 文件拖入 应用程序 文件夹中。
  • 在 应用程序 中找到 ShadowsocksX-NG-R8,双击打开,如果出现 无法打开 ShadowsocksX-NG-R8.app,因为它来自身份不明的开发者。 的提示,请先点击 好 ,然后打开 设置 → 安全性与隐私,点击 仍要打开 。
  • 然后输入账户密码,在新的弹框中点击 打开 。
  • 再次输入账户密码,应用打开,电脑状态栏出现小飞机图标。
  • 屏幕右上方找到 ShadowsocksX-NG-R8 图标,点击弹出菜单。
  • 鼠标移到 服务器,在右侧菜单中点击 服务器偏好,进入服务器配置页面。点击左侧的 +,新增服务器。
  • 按照提示输入服务器的地址(127.0.0.1)、端口(443)、加密方式(aes-128-cfb)、密码(前面自己设置的 password1,如:hgks38aTQ),再添加一个自定义备注。

    Gost Client Config

  • 配置好后点击确定回到主菜单。一般情况下建议用 PAC 模式,即勾选 PAC 自动代理模式,然后点击“打开 Shadowsocks”启动程序。
  • 初次使用 ShadowsocksX-NG-R8,建议更新 PAC。选中主菜单上的代理设置 → 更新 PAC 文件。
  • 验证科学上网是否成功。浏览器中输入谷歌地址 google.com 看是否能打开。

7. Gost 手机客户端使用

  • 安卓手机操作如下。
  • 下载并安装 ShadowsocksGostPluginShadowsocks-Android
  • 打开 Shadowsocks-Android,点击配置文件上的图标笔进行配置,服务器设置部分依次填入自定义的配置名称,服务器(配置的域名,如我的域名是 beyondgfw.thomasyang.site),远程端口(443),密码(此处密码填固定值 gost 即可),加密方式(RC4-MD5)。
  • 功能设置部分的 路由 选择 GFW 列表。插件选择之前安装好的 ShadowsocksGostPlugin。
  • 配置框填入以下内容。

    -F http2://[username]:[password]@#SS_HOST:#SS_PORT
    

    (语法)

  • 替换尖括号部分。用户名和密码与服务端设置的相同(举例比如我的用户名和密码分别是 zhangsan 和 hgks38aTQ)。

    -F http2://zhangsan:hgks38aTQ@#SS_HOST:#SS_PORT
    

    (示例)

  • 点击 图标勾 保存。点击底部中央的纸飞机以开启代理。

    Ready

后语:苹果手机平板、软路由、数据中心的配置请参考 haoel.github.io

8. 引用