因为IP曾经较为纯净,而且全球都有机房,无数MJJ都在钻研自选落地的方式。实际上还真有。

先有图有真相,自选出口的效果(图中网站为 IP Leak ,查询IP归属地只是额外功能,主要是检测IP/DNS泄露情况的。)

南极:
在Amazingvirt的VPS上任意自选Cloudflare Warp的出口IP,包括朝鲜南极等稀有地区
(点击图片以查看大图)

使用南极出口看Youtube 4320P,晚高峰速度基本跑满40兆端口。(小鸡限速40Mbps,测试于昨天晚上9点52分)
在Amazingvirt的VPS上任意自选Cloudflare Warp的出口IP,包括朝鲜南极等稀有地区
可以看到并非是突发速度,而是能维持在满速两分钟以上。

朝鲜:
下文以朝鲜为例,效果见下文。

还有几个地区没测试,没放图。


前情提要

最近需要大量的低配虚拟机测试某个环境,要求是能连通国际网络就行,因此高性价比的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通过虚拟机上网,来测试测试效果(本文不提供这方面教程):

在Amazingvirt的VPS上任意自选Cloudflare Warp的出口IP,包括朝鲜南极等稀有地区
(点击图片以查看大图)

完美!

实测谷歌首页能打开,但直接报错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的文档,里面有写操作步骤。别问我,问就是不知道。
说点什么
支持Markdown语法
好耶,沙发还空着ヾ(≧▽≦*)o
Loading...