看到Alice的免费机自带免费家宽出口(还有故障切换策略),对此很感兴趣早就想写这样的教程,但奈何手上资源有限(运气也有限)......
感谢 @tof @solaireh3 大佬提供的免费机以及帮助, @AliceNetwork 提供的免费资源
全功能一键脚本项目开源地址:https://github.com/zywe03/realm-xwPF
废话少说,本文不深入讨论敏感话题,敏感话题或遇到不理解的地方欢迎加群讨论
骗你的其实加群也不讨论敏感话题,单纯的闲聊,集思广益,分享有趣好玩的想法,欢迎加入tg学术交流群
本文取名定义
落地机=出口机
客户端即本地(手机/电脑)使用的连接软件
- Alice免费机(目的使用家宽出口):落地机IP:端口22
- 国内中转机(连接Alice和本地电信连接它都很流畅):中转机IP:端口
- 家宽出口信息: 2a14:67c0:116::1,端口:30000
教程一
- 最常用的单端转发(拿ssh协议举例,ssh协议可举一反三换成其他协议)
大家的服务器肯定都有ssh协议,一般使用对应IP:端口输入密码即可连接
正常没有使用转发直接ssh连接链路示意图
Q:既然直接连接就可以使用,为什么还需要中转机呢?
有的出口机的网络(线路)质量并不好,可能绕路可能丢包总之使用起来就很卡顿,而加一台网络质量好的中转机可以大幅改善此问题,以及如果落地机IP被封使用没被封的中转就可以连接,关于两台服务器之间的网络链路质量可以选择脚本的7. 中转网络链路测试,进行分析判断
Q:那直接找一台网络质量好的不就可以了?
如果这台网络质量好的可以干完你所需要的全部活确实可以,但是一般这些机要么价格较高要么不能干一些活(比如解锁奈飞等等),此时加一台出口机就可以解决
手把手操作流程
我本地电信连接Alice免费机,使用客户端连接
能用但是很卡顿
在中转机上执行指令安装脚本
选择2. 转发配置管理2. 添加新配置[1] 中转服务器
输入端口2222(一会客户端连接的端口)
出口入口都回车默认(脚本里不懂是什么的时候就回车默认)
出口服务器的IP地址或域名:落地机IP
出口服务器的监听端口(多端口使用,逗号分隔)::22
[1] 默认传输(不懂就默认)
保存生效后来到客户端,注意此时IP换成中转机IP,端口换成刚刚输入的2222
剩下就像正常连接使用一样,只是换了IP和端口便可流程使用
单端转发完整链路示意图
教程二
- 双端隧道(Alice免费机用上家宽出口方法)
背景:Alice的家宽出口是一种明文协议,比较不安全,此时就需要在原协议的基础上再对数据包封装一层
在Alice机安装脚本,使用教程1.单端转发,连接家宽出口
中转服务器: • 中转: :::50000 → :: → 2a14:67c0:116::1:30000 安全: 默认传输 | 备注: 家宽出口
在Alice机选择[2] 服务端(落地)服务器 (双端Realm架构)
等待中转服务器连接的端口:10000
转发本地目标IP地址:50000(上面单端转发的端口)
[5] TLS+WebSocket (自签证书),一路回车
落地服务器 (双端Realm架构): • 落地: :::10000 → 2a14:67c0:xxx:xxx::x:50000 安全: wss 自签证书 (host: www.tesla.com) (路径: /ws) (SNI: www.tesla.com) | 备注: 隧道
回到国内中转机按照教程1.单端转发,注意此时是根据Alice机[2] 服务端(落地)服务器 (双端Realm架构)输入的信息,进行中转连接
中转服务器: • 中转: :::20000 → :: → 2a14:67c0:xxx:xxx::x:10000 安全: wss 自签证书 (host: www.tesla.com) (路径: /ws) (SNI: www.tesla.com) | 备注: 隧道
我们在客户端就输入国内中转机IP:端口20000,连接
链路示意图
如果没有国内中转机也是可以的,realm的ws/tls/wss协议是通用的应用层隧道,也就是说双端架构的加密方或解密方有一方可以不使用realm,但要记得双方加密方式,伪装域名等等必须一致
回到Alice的场景,如果客户端软件支持这些的加密协议只需要填入对应的信息,完成加密传出即可,比如这样
好了,这就是关于单端转发和双端隧道基本教程,其中的ssh协议,客户端软件请自行举一反三
如果落地机协议足够安全,那么单端转发是理想选择
如果落地机协议不够安全,那么把不安全协议的数据包,再封装进另一种协议的数据流中传输(隧道)是个不错的选择
关于负载均衡,MPTCP,Proxy Protocol,端口流量狗等等使用方法玩法讲解敬请期待