V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cy18
V2EX  ›  程序员

有没有不通过 DDNS,远程获取异地电脑当前最新 IPV6 地址的办法?

  •  
  •   cy18 · 6 天前 · 1804 次点击

    主要使用场景是用来异地互相访问电脑的。

    zerotier/花生壳/tailscale/netbird 之类的都用了,各有各的问题,都不是太稳定,经常连接不上,所以想预留一种备用的连接方案。

    两边都有 IPV6 ,但 IPV6 地址老是变,用 DDNS 的话又怕被扫到域名后爆破,所以在想有没有一种类似 DDNS 的服务,把当前的地址上传到某一个网站之类的地方,另外一台电脑发现 IP 变了的话直接手动访问去重新复制一下最新的地址,虽然有点麻烦,但 IPV6 地址一般也就几天才变一次,所以总体还能接受。

    37 条回复    2024-10-11 11:34:05 +08:00
    zedpass
        1
    zedpass  
       6 天前
    写个脚本,定时 curl 获取出口 IP 地址,变化时发邮件或者通过钉钉机器人推送
    ratmond
        2
    ratmond  
       6 天前   ❤️ 1
    虽然但是,如果你直接用 ip 访问的话,大概率是 http 协议,裸奔岂不是更危险。还是推荐 DDNS ,别把自己想那么重要,没人没事来爆破你。
    tool2dx
        3
    tool2dx  
       6 天前
    @zedpass Windows 电脑为了隐私,出口 IPv6 和入口 IPv6 是两个。服务器 curl 获取是出口 IP ,需要自己写一点代码,弄到 POST 提交才行。
    JensenQian
        4
    JensenQian  
       6 天前
    简单,写个脚本,curl 获取,然后 tg 或者别的地方通知就完事了
    connor123
        5
    connor123  
       6 天前
    我是通过发邮件实现的,Windows 创建了一个定时任务,每小时获取一次 ip ,如果 ip 没变化就不发邮件,如果变了就发邮件
    MangozZ
        6
    MangozZ  
       6 天前
    本地获取 ipv6 ,把第一段 24xx: 替换、混淆一下,再更新 ddns 。

    用的时候 ping 获取 dns , 再修一下。 躲那种 程序扫域名爆破的 问题不大。
    ho121
        7
    ho121  
       6 天前 via Android
    运行一个 tailscale 客户端,然后到 tailscale 后台去看它的 ip 地址
    Jinnrry
        8
    Jinnrry  
       6 天前 via iPhone
    我是每分钟 curl 远端服务器,然后 redis 里面记下 ip ,再随便写个页面显示出来
    sleepm
        9
    sleepm  
       6 天前
    路由器上域名
    主机名(hostname).domain (主机域名)
    zerotier 设置 dns 为路由器(或者其他提供域名解析的)
    isc dhcp+unbound
    unbound 可以勾选同步 isc dhcp 地址池的记录
    CharlieJiang
        10
    CharlieJiang  
       6 天前   ❤️ 2
    楼上都提到 curl 远端服务器,但都 IPv6 了应该可以从当前的网卡直接拿吧,Windows 上用 Get-NetIPAddress -AddressFamily IPv6 过滤下,Linux 上用 ip addr -6 过滤下,这样还可以避免拿到出口专用的地址( v6 时代很多系统会分开较为稳定的、入口用的地址和对外连接用的即用即扔的临时地址),除非做了 NAT66 。
    totoro625
        11
    totoro625  
       6 天前
    本机 curl cf worker URL ,写入本机 IP 至 KV 存储空间
    通过另一个 URL 访问,获取 IP 地址
    piero66
        12
    piero66  
       6 天前 via Android
    挂个探针,再对接 tg 钉钉微信机器人推送变更
    onikage
        13
    onikage  
       6 天前
    merlin 有个事件,wan 连接时触发,写个脚本发邮件就行。
    lxh1983
        14
    lxh1983  
       6 天前 via iPhone
    @MangozZ 你们的域名都是 1,2 个字母的那种吗?子域名也是直接解析*.domain.com 这种?否则扫域名不比扫 IPV6 还艰辛?
    hj18
        15
    hj18  
       6 天前   ❤️ 2
    我采取以下方式获取远程电脑的 ip 地址:
    1 轮询的方式访问一些网站的首页,这些网站的首页会显示来访者的 ip 地址,于是可以用 wget 来下载页面,用 grep 提取 ip 地址,这样路由器可以随时知道自身的 ip 地址是否变化,从而以 smtp 在命令行发送邮件,另一侧的电脑也可以用 imap 的方式在命令行收邮件,再用脚本读取邮件中的地址,自动更新 hosts 中的域名解析。这个域名其实只在接收端的电脑内部做解析,就是说是个假的域名。
    2 申请几个免费的虚拟主机,就做个简单的 php 脚本,需要提供 ip 地址的电脑访问时,输入一个口令,则其 ip 地址被保存,另一个想要知道远程电脑的电脑访问时,输入另一个口令,则保存着的 ip 地址被提取,不断轮询。
    3 在两端都安装 syncthing 的 情况下,其 log 可以提取出远程电脑的 ip 地址,但是有时候速度慢,会干扰第一种方式的更新,所以需要做一个防干扰的脚本。
    4 在两端电脑都安装同步盘的情况下,比如坚果云,syncthing ,verysync 等等,发起连接的电脑在指定的目录中放置启动远程桌面的命令,被连接的电脑轮询这个目录,并在有启动命令时执行反向的连接,这要求发起连接的电脑有公网 ip 但确是客户端,被连接的电脑无公网 ip 却是服务器端,所以要反向连接。
    5 使用 Pidgin 这样的通讯软件,它有个好友千里眼的功能,同样可以传送命令并执行。
    6 使用 zerotier ,并在有公网 ip 的路由器上自建 moon ,我用这个方法,能远端执行 moonlight 玩地平线 5 流畅得很,几乎感觉不到延迟。
    7 ddns
    8 为了更好的抗干扰,还使用了 stunnel 套壳。
    我就是这么牢牢绑定远程电脑。
    v8p
        16
    v8p  
       6 天前
    @ratmond #2 3389 远程访问啊...经常被爆破到账号被锁定没法登录...可以参照我上一个帖子
    xausky
        17
    xausky  
       6 天前
    路由器搭建 ss 节点,服务器只开对应端口,外面访问使用各种客户端加密连接内网 IP 访问。
    EngAPI
        18
    EngAPI  
       6 天前
    说个小众的:pt ,pt 可以看客户端的 ip
    cy18
        19
    cy18  
    OP
       6 天前
    @zedpass #1
    @connor123 #5
    可否提供一下脚本,非常感谢!
    lastone6210428
        20
    lastone6210428  
       6 天前
    我就干过 但是当时的服务器到期没续费也没存数据 脚本没了
    我做的是一次性批量修改, 思路是内网的机器只要是需要外网访问的(服务器的 IPMI 页面, ESXi 页面, nas, 虚拟机, 路由器), 全部开启 slaac 分配, 由于 linux 默认是使用网卡的 MAC 地址转换机制, 所以每个内网机器的高 64bit 相同但不固定(动态分配), 低 64bit 固定但不相同(实际就是各自的网卡 MAC 地址)
    所以只要记录所有机器的低 64bit, 然后随便一台内网机器(我用的路由器)定时发送自身 ipv6 地址, 那么前 64bit 就是所有机器的前缀, 跟机器各自固定的后缀拼在一起就是各自的完整 ipv6 地址, 而且是对外地址, 不是临时地址
    所以我用了一个服务端程序, 负责拼接前缀后缀, 然后用 cloudflare 的 api 修改域名绑定, 达到批量 ddns 的效果
    说实话 有点麻烦 但效果杠杠的 内网一堆机器都直接用域名访问就行了
    amanisheir
        21
    amanisheir  
       6 天前
    跑 ddns-go ,然后 webhook 推出去
    cy18
        22
    cy18  
    OP
       6 天前
    @amanisheir #21 看了下介绍,专业非常对口...
    bugmakerxs
        23
    bugmakerxs  
       6 天前 via Android
    ddns➕vpn 就好了,不怕爆破。要加入 vpn 网络需要身份认证,瞎请求的包会被丢弃。

    https://zhuanlan.zhihu.com/p/659604306?utm_psn=1827504891817517056
    zhuomu
        24
    zhuomu  
       6 天前 via Android
    zerotier 管理页面可以看到 v6 地址
    ratmond
        25
    ratmond  
       6 天前
    端口转发,别用常见端口
    ratmond
        26
    ratmond  
       6 天前
    @v8p 运营商竟然不封 3389...
    test1120
        27
    test1120  
       6 天前
    1.写一个脚本 getipv6.sh
    PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
    getcurrent_url="curl -s https://www.xxxxxx.com/update_ipv6.php"; //在你的网站获取 ipv6,并更新到你需要的地方。
    get_url="$($getcurrent_url)";
    echo $get_url;

    2.定时任务(每 5 分钟执行一行):
    */5 * * * * /data/shell/getipv6.sh 2>&1


    完工,稳定运行很多年了。
    kingpo
        28
    kingpo  
       6 天前
    @hj18 #15
    @test1120 #27 用 ddns 更新,就是一直有个问题,ipv6 的 rdp 时行时不行,同时检查公网 ipv4 的就一直都没问题
    hj18
        29
    hj18  
       5 天前
    @kingpo 对这个问题不是很清楚,我前面忘了说,我也同时使用 ipv6 的 ddns ,但没有什么感觉,因为 ipv4 已经够用了。
    hj18
        30
    hj18  
       5 天前
    @kingpo 你主题中的问题,我想已经用免费主机的 php 脚本解决了。
    enrolls
        31
    enrolls  
       5 天前
    指令如下
    Y3VybCAtc0wgaHR0cHM6Ly9hcGkucHlsYWIubWU=
    自己解密,除了证书断了,晚点我换成 API , 保证 ONLINE
    Atomo
        32
    Atomo  
       5 天前
    目前国内访问最快的 ipv6 地址 get 服务
    curl ipv6.ddnspod.com
    lsearsea
        33
    lsearsea  
       5 天前 via Android
    买个 hk 服务器 frp 直接解决痛点
    MaydayV
        34
    MaydayV  
       5 天前
    分享一个我最近在用的方案,xedge.cc ,如果有公网 ip ,免费账户就够用了,或者自建中转,这个用到了 Tailscale ,但是配置和使用起来比用 Tailscale 更简单一些
    Ipsum
        35
    Ipsum  
       5 天前
    写个小软件,我觉得代码量应该在 100 行以内。直接读 interface 或者 fetch 个 ip 检测网站缓存当前 ipv6 地址,如果没有变化就等待下次检测,如果变化了,直接推送 tg 通知。
    kaedeair
        36
    kaedeair  
       5 天前
    我是使用路由器上的 wireguard 连接内网,路由器 ipv6 地址必定是`${IPV6_PD}::1`。openwrt 有 hotplug 事件,可以用来作为触发器执行一些脚本。有些品牌路由器能看到地址。通过 pt 的 tracker 也可以知道地址
    SenLief
        37
    SenLief  
       5 天前
    直接获取网卡的就可以吧,又没有 nat 的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5589 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 08:11 · PVG 16:11 · LAX 01:11 · JFK 04:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.