基于TCP的网络优化器 Q&A

A. 使用篇

配置文件在哪里?

在这里:https://mhy12345.xyz/technology/tcp-optimizer-configures/

不同的平台用什么客户端?

TROJAN

shadowsocks

v2ray

谷歌学术被显示无法访问?

谷歌学术镜像:https://ac.scmor.com/

如果出现下载缓慢的情况怎么办?

对于点击即可下载的链接,如果下载缓慢,可以尝试右键“拷贝链接地址”,然后将拷贝到的链接放到迅雷下载里面。

终端需要下载资源,但是被墙了怎么办?

表现为类似于curl: (7) Failed to connect to raw.githubusercontent.com port 443: Operation timed out 这样的报错信息,意味着终端访问的资源被墙了。

  1. 打开翻墙软件
  2. 右键翻墙软件图标,点击Copy HTTP Proxy Shell Export Line,此时会将一个终端命令拷贝到剪切板中
  3. 打开终端,将这句话输入,再执行你想要的命令。

注意大量使用代理下载可能对服务器造成巨大负担,尽量避免这种情况。

如果你水平比较高,想自己DIY

使用ssh root@us.digitalocean.server.mhy12345.xyz命令登录服务器,开一个自己的用户,在上面自己玩。注意别把root用户的进程kill了就行。

B. 搭建篇

原理

防火墙(great firewall, gfw)的原理是过滤你向外网黑名单服务器(如google, youtube服务器)发送的网络请求包,使得本地无法直接连到这些服务器。

我们需要在大陆地区以外,买一个服务器作为中转。这些售卖云服务器的商家就是服务商(如google cloud,vultr等)

在服务器上面安装指定的服务端软件(如v2ray-server, shadowsocks-server),并在自己的电脑上装对应的客户端(如v2ray-client, shadowsocks-client),那么本地需要翻墙时,就会将本地的流量经由客户端加密发送至服务端,由服务端去连接我们需要的服务。这样由于出国的流量是完全伪装加密的,所以不会被防火墙拦截。

有哪些服务商可以选择?

  • google cloud:有1000刀的免费额度,需要翻墙,网络较顺畅
  • vultr:网站本身不需要翻墙
  • digitalocean:不需要翻墙,但链接不稳定
  • amazon aws:有一年的免费额度

有哪些翻墙软件可以选择?

  • 最原始的vpn软件,不推荐
  • shadowsocks,一个专门用于翻墙的软件,不过由于使用范围太广,gfw已经存在一些识别shadowsocks的算法,可以识别ss的流量,并且封闭对应的服务器或端口。
  • shadowsocks-libev,一个重写shadowsocks的软件,在ss的基础上,添加了aes-256-gcm等加密方式,更难被识别
  • v2ray,近一两年新出现的翻墙软件,拥有大量的伪装算法,比较靠谱
  • trojan,需要有自己的域名,搭起来相对技术要求高一些,搭建教程:https://bandwh.com/kxsw/50.html ,我自己使用的脚本:https://github.com/mhy12345/Configures/blob/master/vps/trojan_install.sh

搭建v2ray方式是什么?

使用如下脚本——

随意选择看起来靠谱的加密方式以及端口。最后使用

获得v2ray的连接。

在这个过程中有一些注意事项,包括

  • 需要在服务器提供商的页面上面开放代理端口的IN/OUT
  • 需要在服务器内部的防火墙(firewall/ufw/iptables)上面开放代理端口的IN/OUT
  • 需要使用crontab设置定时重启v2ray restart

常用的查错思路

翻墙服务器搭建本身很简单,主要是需要和gfw斗智斗勇,如果你发现翻不出去,可以思考下面的问题——

  1. 这个服务器曾经成功翻墙过吗?
    1. 如果从来没有成功过
      1. 端口被服务器提供商禁止了
      2. 系统防火墙禁止了
    2. 如果曾经有一段时间是好的
      1. 服务器的端口被gfw断了,可以考虑换一个端口
      2. 服务器内部的转发进程卡死了,可以考虑重启进程
      3. 服务器网络状态不佳,可能表现在ping不通或者丢包率高,考虑
        1. 等一段时间看能不能恢复
        2. 升级为更高的配置
        3. 重新申请一个新的实例,看新的ip是不是会好一些
        4. 如果这个服务器提供商所有ip都很糟糕,考虑换一家服务商了
  2. 这个服务器现在连接通畅吗?
    1. 可以在本机 ping 服务器地址或域名
      1. 如果ping不通
        1. 使用的是域名的方式,则可能是dns服务器有问题,尝试换一个dns服务器
        2. 可能是服务器运营商的防火墙阻止了icmp包
      2. 如果ping通了,但是存在较高的丢包率,则可能是你现在选的服务器配置太低,考虑升级服务器
      3. 如果ping通了,但是延迟超过300ms,那么也有可能是选的服务器配置太低
      4. 如果ping通了,延迟也较小,那么基本上还是1.1的情况
    2. 使用服务器telnet翻墙服务的端口
      1. 成功(看到Escape character is '^]'.这句话):翻墙服务成功启动
      2. 失败:翻墙服务设置有问题
    3. 使用本机telnet翻墙服务的端口
      1. 成功:如果同时ping很通畅的话,说明是远程配置正确,本地客户端设置有问题
      2. 失败:如果不能ping通,参见2.1.1,否则是
        1. 端口被服务器提供商禁用了
        2. 端口gfw墙了,考虑换端口

非常时刻,全部外网服务器都被封了怎么办?

如果你有国内服务器A,用于翻墙但是端口被封的服务器B,可以使用ssh隧道的方式连接服务器A,B

在服务器A里面的home目录放置下面的脚本——

在服务器B里面开一个后台进程,运行下面的脚本——

在这样的设置后,我们本地就不需要连接外网服务器B的8389端口,而是直接连接内网服务器的端口8389实现翻墙。这样的做法在中间凭空多了一个跳转,大幅度提高了延迟。所以网速会非常慢。

附件

Trojan客户端配置文件

Trojan-浏览器插件Pac配置文件