昨天听朋友说PFGO中转面板有活动了,可以免费获得免费授权一年的使用资格。由于活动已经结束。我就抱着试试的心态找PFGO作者联系了下,没想到PFGO作者给了个授权,废话少说先搭建再说!所以决定出个全面的教程(包含进阶的CNAME域名解析入口机应用),方便大家参考。(自己水平有限只会搭建不会描述找个别人发的教程文章让大家看吧)
由于现在普遍都采用PFGO面板,本文只介绍此面板的用法。
1、注册-充值-买套餐
不少老板没有在PFGO面板上开通充值功能,这种情形下,你只能每个月定期打钱给老板了(一般使用支付宝口令红包即可)。
稍微高级一点的,老板会在PFGO面板上提供在线充值功能,这种就可以一条龙自助服务了。
- 充值:PFGO面板左侧导航菜单“用户信息>余额”,充值足够的金额(建议先充个足够月付的就可以,如果后续稳定使用的话可以适当留些余额,开启自动续费)
- 买套餐:确认账户有充值余额后,可以去“商店>购买套餐”自行在线买套餐(用余额支付)
买完套餐后,可以在“商店>我的套餐”看到流量使用情况、转发规则数量限制等。
【重要提醒】PFGO不支持套餐叠加,如果你在使用A套餐,还没过期,又购买了B套餐,则A套餐立即失效。也有些商家不允许用户在当前套餐未到期前自行购买和覆盖新套餐,你可以联系商家手动更换套餐。
【太长不看版】目前大部分中转商家都主推隧道中转(入口和出口机都用商家提供节点),不推荐(甚至是禁止)用户使用自备单端。所以,您可以直接看本教程的章节#3 即可。
2、【转发方式A】自备单端隧道转发(国内入口 > 自备国外落地机)
此方式在服务端和落地机两边建立隧道协议,需要在落地机执行脚本。相比纯TCP流量转发,隧道连接更为稳定和安全。如果面板提供方有开启类似Secure、SecureX的协议,建议使用(这两个区别不大,随便选)。
此方式大致原理图参考:
留意到没?上图中,其实自备的单端,同时也是作为落地机使用。
2.1、创建自己的单端隧道
前提:你得能SSH访问你的落地机VPS,且有root权限。
去“设备管理>单端隧道”,点击右上角+,开始创建:
节点地址允许填写多个IP,结合“隧道模式”可以实现更为复杂的多服务器负载均衡等效果,普通人用不上,本文暂不讨论。
注意:SNI不要填写国内GOV网站,也不要含有科学出国相关的敏感单词
创建完,回到单端隧道列表,复制一下命令备用:
接着SSH登录你的自备落地机VPS,粘贴以上命令,回车运行即可。
如果之前你用过其他家的类似转发服务,可能会提示需要创建新的服务名,随便写个名字即可:
回到PFGO面板的单端隧道列表,可以看到此时“同步时间”已经有数据了(刚创建完隧道时还没有这个数据):
2.2、 创建中转规则(从入口节点转到自备单端节点)
典型场景:入口为老板提供的国内成都移动,出口为自备的香港CMI落地机(这台机同时也是面板中添加的单端机)
设置关键点:如上图,“目标”IP是127.0.0.1,端口为自备落地机上具体科学出国协议的端口。
创建完中转规则后,可能要等个几十秒或者一分钟,才会显示状态为正常。
注意:
1、没有特殊需要的话,请选择“单转发”模式即可,可以避免很多奇奇怪怪的问题
2、使用单端隧道转发方式时,由于需要你的国外机直连国内机,强烈建议科学协议进行加密,不要裸协议运行
3、【转发方式B】入口机+出口机+转发到自备国外落地机
原理图参考:
典型场景:入口为老板提供的国内深圳移动,出口为老板提供的香港机,最终目标为自备香港落地机。
为什么需要中间多加一层转发?因为有可能你的目标落地机,从国内直连不太行,所以要先用老板的两台机器组建隧道先出国,出去之后天地宽,你再接自己的落地机,这样速度就能提上来了。举个例子,你可以买个普通的香港VPS(例如mhyidc.com家的香港机型都挺便宜的,还有双栈IP),如果商家没有对大陆方向连接做优化,你从国内直连这类机器就快不起来。这个时候,你可以使用中转商提供的隧道服务,先出境到香港的一台出口机器,再转去访问你自备的香港落地小鸡,可想而知,这两台机器都在香港,访问速度就会顺畅很多。
设置关键点:如上图,“目标”IP是你的自备落地机具体IP,端口为自备落地机上具体科学出国协议的端口。目标IP可以填多个,实现多个落地IP的协作效果(如负载均衡),此方式较为复杂,适合大户使用,本文不做深入探讨。
注意:
1、创建完中转规则后,可能要等个几十秒或者一分钟,才会显示状态为正常。
2、隧道出口的机器,既可以是老板提供的,也可以是你在面板上添加的单端机(也就是说你可以将自己的单端作为纯中间转发目的使用,落地用另外一台服务器)
3、模式
如果在“目标”只添加了一台落地机,选单转发即可。
如果您在此添加了多台落地机,可以设置这几台落地机之间如何协作(重点前提:多台落地机上使用相同配置安装科学协议)。
- 负载均衡:流量平均分配到多台落地机
- 故障转移:检测到某个落地机出故障时,将该服务器上的请求转移到其他正常的落地机
- IP Hash:适用于需要保证特定客户端请求始终分配到同一台(落地)服务器的场景
4、由于入口和出口已用了两台机器,显然,消耗的流量也会加倍,请留意老板标注的消耗量说明。
5、如果你的落地机科学协议使用了伪装域名,上图中的“目标”既可以写实际IP,也可以填写你的域名,但注意你的域名不要包含有科学出国相关的词组。
6、如果你使用的隧道出入口两台机器都是由老板提供的,那么理论上你自己的落地机所用的科学协议可以不加密裸奔,毕竟都已经出境了(境外并不存在某Wall的阻碍),不加密还能减少一点速度上的损耗。
4、非隧道转发(TCP+UDP)- 不推荐
有时候,面板提供方没有开启Secure或者SecureX协议,只能用纯流量转发模式,即入口机直接转发(非隧道方式)到你的自备落地机。
此时目标和端口必须为落地机的IP和科学端口:
纯TCP转发模式一般不推荐,因为容易连接不稳定,且如果有客户用不加密的科学协议裸奔,站长的机器容易被和谐。实际上,大部分中转服务商也不开放此方式,这里只是给大家做个科普罢了。
注:此方式下不必去创建单端隧道,也不用去落地机执行脚本。
5、替换客户端的原有科学出国链接
无论你使用什么科学出国协议,将PFGO面板获取到的节点网址和监听端口,替换掉原始科学链接的对应值即可,以下为Windows上的某客户端示例:
总结:大部分情况下,我推荐用面板提供商给的隧道出口来转发自己的落地机,这样的话,会被和谐也只是出口机,而不是你的小鸡。或者说,哪怕你的小鸡从国内已无法直连,仍然可以用隧道出口正常访问。单端隧道转发方式,更适用的场景是,你的小鸡直连国内速度还不错(如CN2GIA或者CMI),或者面板提供商的境外隧道性能不行/资源不足。
6、单端隧道卸载
如果你不想用单端了,且想把之前在自己VPS上搭建并运行的隧道服务给清理掉,可以使用以下卸载命令:
systemctl disable --now 服务名; rm -f /etc/systemd/system/服务名.service; rm -rf /opt/服务名
上面这个“服务名”该填啥?正常来说,如果你的VPS上只运行过一家中转服务的命令,那么默认服务名就是SecureTunnel。也即,上面的卸载命令实际为:
systemctl disable --now SecureTunnel; rm -f /etc/systemd/system/SecureTunnel.service; rm -rf /opt/SecureTunnel
如果你的VPS上运行了不止一家中转商的隧道服务,那么记得手动把上面的“服务名”改成实际的参数即可。
7、(进阶应用)CNAME解析自备域名到中转机入口域名
注意:
1、本节内容适用于中转机入口有域名的场景(千万不要直接用自己的未备案域名解析到入口机的IP地址)
2、【提醒】有部分中转服务商明确禁止用户使用自己域名cname到中转域名,请先向老板确认是否允许做cname
使用中转服务的一个麻烦点就是,老板会时不时更换入口机器的地址:
1、你可能在多个客户端(软路由、手机、平板、电脑等)使用了这些链接,逐个去修改入口域名非常麻烦
2、你可能将链接也分享给朋友了,你还得去通知他们修改入口域名
3、有些中转服务商提供的入口域名,本身在国内部分地区访问就不太顺畅
问题就来了,有没有一种办法,能够灵活应对以上场景呢?
当然有,这玩意叫做CNAME。大概原理是,你可以将自己的(子)域名A,用CNAME方式解析到别人的域名B,客户端请求访问A时,实际上请求到的是域名B对应的IP地址。
我从网上扒了张阿里云的图,供大家再学习下这个CNAME的原理:
下面是在我的域名托管商那里设置CNAME的截图,也供参考:
完成CNAME域名解析后,在科学客户端的节点域名栏,将原本应该填写的中转机入口域名,改为自己的(子)域名。
用这种方式,当中转入口域名发生变动后,你只需要将之前CNAME解析的内容更新一下就行,之前的各客户端所有链接保持不变。
CNMAE看起来已经很强大了,还有没有更高级的玩法?有的。
一般来说,为了提高可用性,我们会使用不止一条中转入口线路,不管是同一家服务商提供的多个入口,还是买多几家中转服务,积攒几个入口。那问题就来了,如果不是入口更换域名,而是入口域名直接挂了好几天没恢复,甚至是某一家中转服务商被攻击,完全无法访问节点,怎么办?那我们就得再升级一下CANME的用法了。
【注意:以下均对同一台落地机而言】
1、在PFGO面板上创建不同入口节点的规则,但手动填写同一个监听端口数字(可能要多试几次,因为你手动填的端口可能被已别人占用了)。
2、分别用自己的多个子域名,去解析以上的多个不同入口的域名,科学客户端节点链接使用自己的子域名
3、当面板的其中一个入口域名挂掉时,只需要去修改对应CANME的记录,改成其他可用入口域名,即可实现无缝入口切换:既不用手动去客户端切换其他可用节点,也不用修改(原本已挂掉节点的)节点端口(这就是相同监听端口的好处了)。
另外,如果你手头有好几家的中转服务,也可以用以上办法,创建多个不同入口节点但监听端口完全相同的规则,就可以实现多家中转服务之间的无缝切换,抗击能力更强了(毕竟多家中转服务全部同时挂掉的概率极低)。
8、内网穿透
什么是内网穿透?举个经典的例子,NAS玩家都知道,要从公网访问家里NAS上的资源,是一件比较麻烦的事情。于是很多人费尽心思想申请一个家庭宽带的固定公网IP,方便对外提供访问服务。又如,学生玩家很喜欢折腾的一件事,就是用宿舍电脑或者学校实验室的电脑,搭建一个网站,然后对外提供公网访问。这些,都是典型的内网穿透场景,即,设法让处于局域网内的服务,能被外界用户通过互联网访问到。
PFGO面板提供了内网穿透功能,其核心就是提供了一台位于公网的中转服务器。
注意:想在PFGO上使用内网穿透功能,前提是商家提供的套餐有包含此项服务内容,请先看清楚再购买相应套餐。
以运行在内网服务器上的一个本地WordPress网站为例,使用PFGO实现内网穿透后,大致访问途径如下:
要实现上图的效果,需要借助PFGO做如下操作:
1、在PFGO面板上添加一个内网穿透设备(路径:设备管理>内网穿透)
2、复制以上内网穿透设备的对接命令,然后去内网服务器上,登录SSH后,回车运行(此步骤表示在商家中转服务器与你的内网服务器之间建立连接协议)
3、在PFGO面板上创建一个内网穿透转发规则,将内网服务器需要暴露给外界访问的端口8090,映射到中转服务器提供的另一个端口12345(路径:转发管理>内网穿透)
打开浏览器,访问“商家中转机IP:12345”,即可通过互联网,穿透访问到内网这台机器的8090端口,也就是这个内网的WordPress网站已经可以对公网开放访问了。