自建代理服务器没有啥其他优势,两个字「安全」。另外,如果你没有找到比较好一点的节点(一般免费的节点经常变动以提升网站流量),那么自建就是不错的选择,如果钱包充足,你可以在你的软路由上设置你自建的代理,当然这种方式需要代理服务器一直开着(如果选择的是 Vultr,目前最低配置 「1 Core 1 GB 2TB」一个月 6$),具体怎么自建在下面推荐的网站,这儿主要是记录脚本和一些常用的问题解决方案。

1. 推荐阅读

  1. 一灯不是和尚:https://iyideng.net/

    了解高效上网的前世今生以及如何自建和配置服务器

  2. 灯得:https://getdeng.com/

    好用节点分享

  3. 官方文档与各种协议说明:https://www.v2fly.org/

2. 脚本

1
bash <(curl -s -L https://git.io/v2ray.sh)

3. 代理模式

推荐阅读:

1
2
>https://baiyunju.cc/7285
>https://vimcaw.github.io/blog/2018/03/12/Shadowsocks(R)%E8%AE%BE%E7%BD%AE%EF%BC%9A%E7%B3%BB%E7%BB%9F%E4%BB%A3%E7%90%86%E6%A8%A1%E5%BC%8F%E3%80%81PAC%E3%80%81%E4%BB%A3%E7%90%86%E8%A7%84%E5%88%99/#代理流程图

3.1 系统代理

开启系统代理后,系统其他软件可以直接调用系统代理设置(部份软件默认选择使用系统代理)有些时候需要在软件中设置代理

3.2 PAC 模式

PAC 模式会在系统代理设置一个 PAC 脚本文件,让系统通过这个文件自动选择每一个连接是否启用代理服务器,以及选择哪一个代理服务器,这种模式下一般访问国内网站(在文件记录中)不会使用代理,而访问国外网站会使用代理。

V2rayN 高板本已经取消了这种配置模式,改为 「绕过大陆」、[黑名单] 和 [全局] 模式

3.3 全局模式

所有跟随系统代理设置的软件(一般是浏览器)都会使用这个代理服务器

3.4 绕过大陆(Whitelist)

白名单模式,除开在白名单内的所有流量都走代理。

3.5 黑名单(Blacklist)

黑名单模式,在黑名单内的访问才走代理。

代理的本质是我们去获取互联网中某台电脑的资源(网页,文件,图片等等)时,因为某些原因(你懂的)我们直接去获取是获取不到的,这时通过代理服务器去获取,然后将内容再转回给我们,需要知道的是,代理服务器既然代理了流量,也就具有所有权限去处理这些数据,比如:窜改返回的数据,返回给你钓鱼网站,获取你加密后的密码再破解等等,所以野生的节点会存在安全问题。

4. 常见问题

首先,我使用的 Vultr 的 VPS,Windows 客户端是 V2rayN,手机客户端是 V2rayNG,并没有使用带伪装的 V2ray(就目前来说,使用不带伪装的方式可能第二天就不能用了),一是因为还要买一个域名解析到服务器,稍微比较麻烦,二是囊中羞涩,一般没需要我就销毁服务器了。

下面出现的问题,默认你的配置是正确的,使用了支持的客户端并且客户端板本和服务器 V2ray 板本相差不大。

4.1 VPS 和 客户端时间不同步,导致连接不上

  1. 安装 NTP 服务;

    1
    yum install -y ntp
  2. 设置开机自启并开启 NTP;

    1
    2
    systemctl enable ntpd
    systemctl start ntpd
  3. 同步时间服务器。

    1
    ntpdate pool.ntp.org

4.2 V2ray、HTTP、HTTPS 端口未开启

  1. 检查服务器是否开启了防火墙;

    1
    systemctl status firewalld
  2. 如果开启了防火墙,放行 V2ray 的端口;

    1
    2
    3
    4
    firewall-cmd --zone=public --add-port=80/tcp --permanent
    firewall-cmd --zone=public --add-port=443/tcp --permanent
    firewall-cmd --zone=public --add-port=${V2ray 端口}/tcp --permanent
    firewall-cmd --reload # 配置立即生效

4.3 IP 或者 端口被封

  1. 使用 ping 命令检查 IP 是否被封。

  2. 检查 V2ray 端口是否可以访问;

    客户端执行以下命令

    1
    telnet ip port # 请换为你的服务器 IP 和 V2ray 端口

    如果返回中包含Escape character is '^]'则代表端口访问正常

  3. 使用在线网站检测。

    https://tcp.ping.pe/

    输入格式:ip:port

    如果其他国家的可以连接,而China字样的报红大概率是封了。

4.4 IP、端口都没有被封,但连接报错 failed to process outbound traffic

  1. 首先确定你 VPS 的 V2ray 是正常运行的;

    1
    systemctl status v2ray
  2. 最简单的方式是先查看日志;

    1
    2
    cat /var/log/error.log
    cat /var/log/error.log
  3. GFW 采用了其他方式来达到封禁的效果,那么重装是不错的选择。

    这种情况的表现就是偶尔能连上,不使用代理时检测代理服务器真连接是可用的并且可以 ping 通,但是一旦使用代理就报failed to process outbound traffic

    重装时, V2ray 端口不要与上一次的一致,修改协议为 Websocket 或者 Vless + Websocket + TLS(需要域名),详细教程:

    1
    https://iyideng.net/black-technology/cgfw/vless-one-click-script-building-and-using-tutorial.html

    推荐阅读 GFW 封禁原理,正常流程先封端口,再封 IP,所以在某些特殊日期会出现大部份服务器 IP 都被封的情况。