注意:并不推荐这么做,因为这会降低 ip 库的定位质量,同时,使用 warp 也有滥用的嫌疑
准备工作
- 一台能用的机器
- 一段 ipv6 并广播出去(最好自己的,拿主机商的小心机器被扬)
开始!
找到各大 IP 库,通过他们的在线表单发送 IP 更正请求
常用的更正有以下几个,其实只提交 maxmind 即可(有些数据商甚至没有 ipv6 的信息所以交了也没用)
- Maxmind 更正 GeoIP 位置
- ipinfo IP 地理位置数据更新不正确
- Google 报告 IP 问题
- ipdata Geolocation Correction Form
也可以通过 Geofeed 的方式批量提交请求,对于 ip 较多且经常变更的情况较为常用(很多大型网络通常会使用这种方式更正定位)
此外,如果你拥有 IP 段相应 irr DB 的编辑权限,建议将 country 项修改为 AQ,再进行广播,否则可能定位更新较缓慢
等待
等待几天后,往往 ip 库就会开始更改(如果你的请求不是特别离谱),这时候我们可以用 iplocation.io 这个站点批量查询各大 ip 数据库中我们的 ip 信息,等到数据完成更改后,我们就可以进行下一步操作了
连接 warp
由于我们目前只有 ipv6,所以大部分网站我们无法使用我们已经完成修改的“南极”ip 访问,这时候就需要借助 warp 来帮忙了。
warp 有一个特性,就是他会根据用户连接 ip 而不是节点所在地为用户分配相应归属地的 ip(举例:大陆连接 warp,往往会连接到美国服务器,但获取到的 ip 定位通常是位于大陆),因此我们可以利用这一点来得到一个定位位于南极的 warp ip。
这里需要注意一点,服务器使用 warp 上网会明显降低网络性能,因此我们不采用传统的 wireguard+ 直接配置系统路由的方式,而是采用 wireproxy 创建 socks5,再使用 xray 的自定义路由规则进行分流代理(反正你服务器有 v4 也不需要 warp 的 v4)
这里采用了最常用的一个 warp 脚本
wget -N https://raw.githubusercontents.com/fscarmen/warp/main/menu.sh && bash menu.sh
选择 13 安装 wireproxy, 我这里已经安装过了所以不截图安装过程了
如果你需要使用 warp+,telegram 上有些频道会分享免费的 warp+ 密钥,如 https://t.me/warpplus 等,一切就绪后,不出意外脚本会提示创建成功随后显示 warp 的 ipv4 地址(我在尝试的时候他检测不出来 ipv6,实际是有的),但是默认他会使用 ipv4 连接 warp,所以获取的地址定位位于美国。
我们输入 warp y 断开 wireproxy,随后编辑 /etc/wireguard/proxy.conf
我们需要修改连接的 endpoint,将其手动设置为 ipv6 地址(这样就能使用南极定位的 ipv6 连接 warp 从而获得相应的定位)
这里提供一个 endpoint 地址作为参考
[2606:4700:d0::a29f:c001]:2408
保存,并使用 warp y 重新启动 wireproxy。
此时如果设置均正确,你应当看到以下输出:
使用 curl 测试一下:
root@las01:~/squashfs-root# curl ipinfo.io --socks5 127.0.0.1:40000
{
"ip": "104.28.244.152",
"city": "McMurdo Station",
"region": "Antarctica",
"country": "AQ",
"loc": "-77.8463,166.6682",
"org": "AS13335 Cloudflare, Inc.",
"timezone": "Antarctica/McMurdo",
"readme": "https://ipinfo.io/missingauth"
}
我们此时已经成功获取到了一个 warp 的南极 IP
补充:Xray 自定义 outbound 分流
这里我使用的是 xrayr,如果配置方法和原版 xray-core 有区别请自行修改
创建一个出站,tag 随意,我这里用的示例的 media-unlock 懒得改了
{
"tag": "IPv4_out",
"protocol": "freedom",
"settings": {}},
{
"tag": "IPv6_out",
"protocol": "freedom",
"settings": {"domainStrategy": "UseIPv6"}
},
{
"tag": "media-unlock",
"protocol": "socks",
"settings": {
"servers": [
{
"address": "127.0.0.1",
"port": 40000,
"users": []
}
]
}
},
{
"protocol": "blackhole",
"tag": "block"
}
随后增加一个 route rules, 令全部 tcp 流量走“media-unlock”出站
"rules": [
{
"type": "field",
"outboundTag": "block",
"ip": [
"geoip:private"
]
},
{
"type": "field",
"outboundTag": "block",
"protocol": [
"bittorrent"
]
},
{
"type": "field",
"outboundTag": "media-unlock",
"domain": [],
"network": "tcp"
},
{
"type": "field",
"outboundTag": "IPv6_out",
"domain": [
"geosite:netflix"
]
},
{
"type": "field",
"outboundTag": "IPv4_out",
"network": "udp"
}
]