Cloudflare Warp想必都很熟悉了,如果不了解的可以看这篇文章
因为IP曾经较为纯净,而且全球都有机房,无数MJJ都在钻研自选落地的方式。实际上还真有。
先有图有真相,自选出口的效果(图中网站为 IP Leak ,查询IP归属地只是额外功能,主要是检测IP/DNS泄露情况的。)
南极:
(点击图片以查看大图)
使用南极出口看Youtube 4320P,晚高峰速度基本跑满40兆端口。(小鸡限速40Mbps,测试于昨天晚上9点52分)
可以看到并非是突发速度,而是能维持在满速两分钟以上。
朝鲜:
下文以朝鲜为例,效果见下文。
还有几个地区没测试,没放图。
前情提要
最近需要大量的低配虚拟机测试某个环境,要求是能连通国际网络就行,因此高性价比的NAT小鸡自然是首选,顺便每个商家都能测评下,主打一个雨露均沾。
今天在隔壁loc看到了有人提了一嘴“有意思的”商家,Amazingvirt
商家的知识库里面写到了部分VPS提供Warp各国中继端口(正式名字叫做【魔法落地】),但给出的使用教程却并不精细。
出于好奇心,我去官网看了下,发现NAT VPS价格不算贵,5元/月,年付免费两个月,1核心256M,LXC架构,限速40Mbps,就买了月付测试,看看商家是不是在吹牛,是李逵还是李鬼。
本教程利用AmazingVirt提供的Warp中继连接端口而实现自选出站IP。由于这是一个内网服务,所有操作都需要在该商家的VPS上进行。
风险提示
域名Whois信息如下:
Domain Whois
Domain Name amazingvirt.com
Registrar Automattic Inc.
Registered On Sun, 21 Apr 2024 13:09:20 GMT
Expires On Mon, 21 Apr 2025 13:09:20 GMT
Updated On Sun, 21 Apr 2024 13:19:22 GMT
Status client transfer prohibited
域名还是热乎的,且付款方式只有支付宝,是国人Oneman的概率接近100% ,强烈建议月付,不要因为贪便宜选择年付!谨防跑路!
Blesta面板的官网查询授权,显示的是正版面板。
由于商家给出的文档较为难懂,再结合国人Oneman【发工单=主动删机】(Vir同款作风),就没发工单问,况且购买页面写了没有任何技术支持,只好自己研究了。
另外他家VPS都不支持IPV6,这一点要扣分。
NAT默认墙,最好还是配一个IPV6,由于IPv6子网可以经由虚拟隧道(例如Wireguard/Zerotier)分配到其他VPS上,因此有没有自带IPv6不重要,我自己把别处的IP拉过去用。
这方面的教程很多,可以参考我或者是其他坛友写过的教程,建议自己动手去搜。
IPv6隧道推荐使用BuyVM的/48路由子网。相比之下HE隧道需要静态公网IP,在NAT后方可能无法正常工作。另一个支持NAT的是小水管,猜测其成本可能很高,受不了MJJ的挥霍。
扯远了,继续说自选Warp出口。
题外话
我看到知识库里面还提到了【不限设备】的增值落地服务,有一次性付款(买断?)和年付,暂时不清楚这个限制到底限了什么。
#注意事项:
商家的服务条款和介绍(貌似必须购买服务后才能打开?)中明确提到,该服务是内部服务,不允许反代暴露到公网,也不许用于商业目的。否则有权采取限速,临时或永久禁止连接,删机或者终止账号等措施。
操作步骤
首先系统需要安装wireguard,nano是编辑器,可以装。
apt update
apt install wireguard nano
然后从下面这两个网站任选其一,进去生成一个Warp配置文件:
WGCF:https://replit.com/@misaka-blog/wgcf-profile-generator
WARP-GO:https://replit.com/@misaka-blog/warpgo-profile-generator
点击上面的“Run”按钮运行。
付费购买过Warp的可以输入密钥,使用零信任的也可以输入 Teams Token。
成功执行后,屏幕上会输出二维码和配置文本。
示例配置文件如下:
[Interface]
PrivateKey = 私钥私钥私钥私钥私钥私钥私钥私钥私钥私钥私钥私钥私钥
Address = 172.16.0.2/32
Address = 2606:4700:110:1111:2222:3333:4444:5555/128
DNS = 1.1.1.1
MTU = 1420
[Peer]
PublicKey = bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=
AllowedIPs = 0.0.0.0/0
AllowedIPs = ::/0
Endpoint = engage.cloudflareclient.com:2408
私钥和IPv6每个人都不同,需要修改成自己的。不能拿我的配置直接用。
然后回到小鸡的SSH,输入命令nano /etc/wireguard/warp.conf
#创建一个名为warp的配置文件。
然后右键复制粘贴自己的配置文件覆盖。
如果直接使用生成的配置,那么一连接就发现,小鸡失联了!
小商家没VNC急救,要是失联了只能强制重启。
所以还需要修改一些设置:
删除DNS选项以避免动系统DNS设置,或者安装resolvconf依赖
apt install resolvconf
,否则会报错缺少resolv无法启动接口。添加策略路由
使得入站连接原路返回,避免IP不同造成握手失败(包括SSH):
在配置文件的peer上面增加如下几行:
PostUp = ip -4 rule add from <本机IPv4> lookup main
PostDown = ip -4 rule delete from <本机IPv4> lookup main
多网卡情况下填写上网卡的IP。默认上网接口通常就是eth0,NAT鸡一般都是局域网IP(10开头)。可以通过ip addr | grep eth0
命令查看。例如我的是 100.74.221.19
(注:IP是随口编的。实际是10开头的网段。目的是防止看教程的人直接照抄,否则每个人IP不同导致策略无效,会让小鸡失联,所以随便写了一个作为示范。修改成自己的输出结果即可。)
另外在有IPV6的机器上,可以用 ip -6 rule add from <本机IPv6> lookup main
使得自带V6也能拥有正确的路由策略,可惜它家不支持。
题外话:
看不懂原因?请参考此贴:【Linux土制路由器:PVE下多接口与端口转发共存的方法】
“LOC坛友:我太难了
我这样讲你看你理不理解,假设有个用户ip1访问你的服务器ip2,恰好你又装了wireguard ip3。本来应该是 ip2向ip1回数据包,这个时候会变成ip3向ip1回.”
……
由于TCP是有握手的,如果不调整路由策略会导致小鸡接受远程连接(如SSH)时,本地连接的IP和小鸡返回的IP不同,导致握手失败。
UDP没有握手,但一样会IP不匹配,可能会被运营商以为是正在发起IP Spoofing,触发滥用等导致停机。
继续:
修改Endpoint
如果直接裸连Warp,出口IP还是小鸡所在位置,并不能任意落地。
商家的知识库提到,Endpoint IP(也就是接入服务器)是小鸡默认网关,不同端口对应不同出站。
执行 ip route show default | awk '/default/ {print $3}'
可以输出默认网关:【例如】100.74.221.1
朝鲜的ISO-3166代码是KP,文档里面对应的端口是414,南极是AQ,对应408,阿根廷是AR,对应409……
我的网关是100.74.221.1,我要连接到【朝鲜】,Endpoint那行就改成Endpoint = 100.74.221.1:414
Peers配置添加保活策略
在Endpoint后一行添加:PersistentKeepalive = 120
每隔120秒尝试重新握手,避免长时间无网络活动时断流。
这样就改完了。CTRL+O保存,CTRL+M设置保存文件格式,CTRL+X退出编辑器。
完整的配置文件示例:
再次提醒,请勿直接照搬。
我没有修改系统DNS设置,所以直接注释掉
GNU nano 7.2 /etc/wireguard/warp.conf
[Interface]
PrivateKey = <私钥>
Address = 172.16.0.2/32
Address = <专属IPV6>
# DNS = 1.1.1.1 #注释掉以不修改DNS
MTU = 1420
PostUp = ip -4 rule add from 100.74.221.19 lookup main
PostDown = ip -4 rule delete from 100.74.221.19 lookup main
[Peer]
PublicKey = bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=
AllowedIPs = 0.0.0.0/0
AllowedIPs = ::/0
Endpoint = 100.74.221.1:414
PersistentKeepalive = 120
确认一切无误,输入 wg-quick up warp
启动网络接口。若无报错,且SSH未断开则说明配置正确。
(如果失联了,后台重启吧,或者重装也行。重启解决90%,重装解决95%,重买解决99%,发工单会不会导致删机,得看老板人品)
然后输入 wg
查看连接状态:
interface: warp
public key: <公钥>
private key: (hidden)
listening port: <监听端口>
fwmark: 0xca6c
peer: bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=
endpoint: 100.74.221.1:414
allowed ips: 0.0.0.0/0, ::/0
latest handshake: 3 seconds ago #上次握手时间,如果没配置保活,就不一定出现握手,需要手动让网络活动,比如ping一下 1.1.1.1
transfer: 5.25 MiB received, 2.88 MiB sent #传输流量
此时 ping 1.1.1.1
发现默认走Wireguard联网:
PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.
64 bytes from 1.1.1.1: icmp_seq=3 ttl=63 time=605 ms
64 bytes from 1.1.1.1: icmp_seq=4 ttl=63 time=601 ms
64 bytes from 1.1.1.1: icmp_seq=5 ttl=63 time=607 ms
64 bytes from 1.1.1.1: icmp_seq=6 ttl=63 time=600 ms
64 bytes from 1.1.1.1: icmp_seq=7 ttl=63 time=601 ms
64 bytes from 1.1.1.1: icmp_seq=8 ttl=63 time=598 ms
64 bytes from 1.1.1.1: icmp_seq=9 ttl=63 time=604 ms
64 bytes from 1.1.1.1: icmp_s^C
延迟这么高,估计真是环球旅行了,总不可能是个软路由去蹭平壤的wifi上网的吧?
执行 curl ip.plus -4
查看出口IPv4归属地:
IP: 104.<手动隐藏> 来自: 朝鲜, Pyongyang, 平壤, Cloudflare, Inc.
curl ip.plus -6
:
IP: 2a09:<手动隐藏> 来自: 朝鲜, Pyongyang, 平壤, Cloudflare, Inc.
用win通过虚拟机上网,来测试测试效果(本文不提供这方面教程):
(点击图片以查看大图)
完美!
实测谷歌首页能打开,但直接报错403无权限,github也能打开但用不了,明显是对朝鲜的制裁,说明这朝鲜IP大概率是真的,至少是被广泛承认的。
如果不想使用了,或者需要更换出口时,执行 wg-quick down warp
即可断开连接,再nano修改端口。
warp需要替换成自己的配置文件的名字。
目前支持落地的地区如下,
来源于【官方tg频道】,截至发帖时只有6个订阅者,频道是4.30创建的,非常非常新,再次建议谨慎选择年付。
Magic Landing服务目前支持的出口国家/地区列表(持续更新中)
上次更新: 2024年05月03日
🇦🇶AQ | 南极洲
🇦🇷AR | 阿根廷
🇧🇷BR | 巴西
🇨🇦CA | 加拿大
🇨🇱CL | 智利
🇨🇴CO | 哥伦比亚
🇰🇵KP | 朝鲜
🇲🇽MX | 墨西哥
🇵🇦PA | 巴拿马
🇹🇷TR | 土耳其
几个提示
避免使用朝鲜IP登录国外各大平台账号,小心被当作金三胖直接封了。
Wg接口最好不要设置开机自启动,如果配置错误SSH失联,在没有VNC的情况下还能强制重启,但如果加上开机自启就真没救了。
仅用作好玩,如果去国内改IP属地,则平台可能会认为账号被盗,从而冻结;改IP也会被后台标记上【此用户有魔法能力】的标签。(据传B站会扫描手机是否安装几个最流行的境外软件,如果检测到了则会和普通用户区别对待)
其实还有一种方法,不需要与商家绑定,而是通过直接修改Cloudflare网关的设置以实现自选落地,但该方法成本极高,基本可以认为是【不可能】的,所以此处不再赘述。如有需要(同时也避免被伸手党滥用)可以参考Cloudflare的文档,里面有写操作步骤。别问我,问就是不知道。
好久没上来写教程了,来捧个场吧。
感觉最近没啥可写的了。
至于这家卖的小鸡,感觉普普通通,我都懒得贴个测评了。