V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yangyaofei
V2EX  ›  宽带症候群

可以自己(不在路由器上)内网搭建 DHCPv6 服务么

  •  
  •   yangyaofei · 2021-01-06 09:28:41 +08:00 · 5881 次点击
    这是一个创建于 1446 天前的主题,其中的信息可能已经有所发展或是发生改变。

    家里有 ipv6/64 的,但是现在的网件路由器不支持 ipv6 的 DHCP DP,只能分配内网 ip,也没法内网穿透(ipv6 貌似就没这个东西)

    但是有个远程的机器是 ipv6 的(ipv4 需要走审计算流量),想 frp 一下但是用现在的路由器没法配置了....

    能不能和 ipv4 一样自己在内网搭建一个 DHCP 服务器替代现有的路由器上的 DHCPv6,让内网机器有公网 ipv6 啊

    53 条回复    2021-01-11 09:13:15 +08:00
    deorth
        1
    deorth  
       2021-01-06 09:49:51 +08:00
    同问,我的需求不同,我需要不使用路由器提供的 DHCPv6,因为路由器基本上无法配置 DHCPv6,无法实现一些自定义。v4 上在同一个二层内自己开就可以了,v6 需要从上游获取网段路由等,WAN 口不在本机上不知道能不能实现
    tankren
        2
    tankren  
       2021-01-06 09:56:34 +08:00
    PD 吧 不是 DP..
    yangyaofei
        3
    yangyaofei  
    OP
       2021-01-06 10:05:23 +08:00
    @tankren 啊,对,ipv6 不熟悉都是片段知识...感觉 ipv6 系统性的书貌似不多啊,像计算机网络那本一样的那种
    yangyaofei
        4
    yangyaofei  
    OP
       2021-01-06 10:13:00 +08:00
    @deorth 感觉有点悬,关键是不太清楚本地的公网 ip6 的路由是怎么实现的
    f6x
        5
    f6x  
       2021-01-06 10:14:01 +08:00
    它的名字叫路由器, 你想绕过它向外发数据?
    no1xsyzy
        6
    no1xsyzy  
       2021-01-06 11:06:01 +08:00
    走 NAT 的话可以
    yangyaofei
        7
    yangyaofei  
    OP
       2021-01-06 13:22:31 +08:00 via Android
    @no1xsyzy nat 不就要配置路由器了么,关键是路由器没这个配置啊
    txydhr
        8
    txydhr  
       2021-01-06 13:42:55 +08:00 via iPhone
    可以,但是如果不是固定 ipv6-pd 的话你,每次重播都得刷新你 dhcpv6 服务器的前缀,毕竟 pd 是分给路由器的。
    sasalemma
        9
    sasalemma  
       2021-01-06 14:15:18 +08:00
    路由器不能搞起的没有什么好办法。

    客观上来说,只有 2 个方案:

    1 、路由不支持 PD 下发的,但能搞得起 IPV6-NAT 的,下发是内网 IPV6 地址,NAT 出去,访问公网。

    2 、socat,把内网 ipv4 的访问 socat 到外网 ipv6 的端口。
    sasalemma
        10
    sasalemma  
       2021-01-06 14:27:18 +08:00
    @deorth 目前这样的 ipv6 都是通告模式,如果不支持下发 pd 的,基本不能实现。

    ipv6 这个东西有些搞笑,虽然每个 ipv6 地址都是全球通信地址,但是还是需要一个网关,需要 546/547 来 pd 分发到下游。

    路由的角度,还是的一级一级网上,至少越级往上,都是需要从网关出去的。

    下级有 ipv6 地址,路由网关不对,或者获取不对,几乎就出不去。

    nat 的话,也是需要在 nat 那个网关修改下第一跳为网关的内网 ipv6 地址,而非网关的全球地址,要不并不通。

    如果桥接,把 wan 桥接到 lan,只让 ipv6 的 pd 通过,去掉 ipv4 的,试下这个:

    https://github.com/cvmiller/v6brouter
    deorth
        11
    deorth  
       2021-01-06 14:44:03 +08:00
    @sasalemma 感谢,我还是考虑搞个 openWRT 做主路由吧
    wazon
        12
    wazon  
       2021-01-06 15:55:11 +08:00
    网件没有 IPv6 Passthrough 么?
    如果能 SSH 的话,可以参考《多种无 PD 的情况下给内网配置 IPv6 的方法》
    INTEL2333
        13
    INTEL2333  
       2021-01-06 20:10:01 +08:00 via Android
    radvd 试试吧,简单又好用
    sasalemma
        14
    sasalemma  
       2021-01-06 20:40:58 +08:00
    @INTEL2333

    这个对于楼主来说不是更复杂了,RADAD 这类守护程序,能在路由器安装运行,来自动分配全球单播地址,那路由器也能安装 NAT6,也能 passthrough 了。

    若作为单独 server 安装,全内网分配单播地址,或者 ULA 地址让本地设备可以本地路由,网关没有啊。

    哪怕楼主拨号是得到了不变动的单播前缀,用 RADVD 自动派发无状态,设备都有了单播地址,路由到网关呢?

    网关 LAN 这边只有 ipv4,这个东西就好像 ASUS 的路由一样,web 只监听了 ipv4,路由是支持 ipv6 的,哪怕是 ULA 唯一本地地址访问路由,也打不开设置的 web 网页。

    网络边界网关到内网这个没双栈的问题啊。
    no1xsyzy
        15
    no1xsyzy  
       2021-01-06 21:34:16 +08:00
    @yangyaofei 我看花了没看到需要公网 IPv6,然后删的时候手滑发出去了……
    yangyaofei
        16
    yangyaofei  
    OP
       2021-01-06 22:45:58 +08:00
    @sasalemma socat 也是需要路由器要设置转发或者外网有机器吧? 然后既然内网和外网网段不一样,其实也是 nat 吧,只不过是没法设置...还是有路由? 感觉唯一的办法就是再弄一个路由.....
    yangyaofei
        17
    yangyaofei  
    OP
       2021-01-06 22:47:33 +08:00
    @wazon 网件的固件一言难尽越更新兼容性越差,已经 downgrade 一个大版本了...可能最新的有,恩,可能.....
    sasalemma
        18
    sasalemma  
       2021-01-06 23:03:58 +08:00
    @yangyaofei socat 不是“nat”,应该说是代理,socat 是可以跨 v4 和 v6 转发的。

    比如外连入内,IPV6 的 wan 到 IPV4 的 LAN,WAN_IP 2409:1234:abcd::5678,LAN_IP 10.10.10.3,内网设备的端口是 3389,WAN 口开放 IPV6 的接入端口 3390,走 TCP 流量,那 socat 就是:

    socat TCP6-LISTEN:3390,reuseaddr,fork TCP4:10.10.10.3:3389

    反过来也一样。监听本地网关(路由 LAN_IP )比如 10.10.10.1,端口 1234,数据转发到通过 WAN 的出去的外网的 IPV6 服务器 2001:1111:2::3 的 22 端口,就是

    socat TCP4-LISTEN:1234,reuseaddr,fork TCP6:[2001:1111:2::3]:22

    那么 ssh -p 1234 [email protected] 就等于 ssh -p 22 root@[2001:1111:2::3] 了。

    不过 socat 很大问题是单个端口转发,不过可以脚本多条命令建立多个端口。监听也可以限定那个地址监听,比如 wan 的 IP 或者 LAN 的 IP 。

    性能是有损失的。不过 4 转 6 这样的方便。普通应用,比如 ssh,web 页面,还有远程桌面,都没什么大问题。

    问题是,网件一般不会有 socat 这类的。换个路由,带 PD 下发的不就好了,估计是很早前的路由器了,16-17 年的基本都是支持 IPV6 下发的才对。有本地链路 FE80 那些就没有什么意义,那些包都出不了 WAN 口。
    yangyaofei
        19
    yangyaofei  
    OP
       2021-01-07 00:25:20 +08:00
    @sasalemma R8000, 很稳定而且没钱...socat 就是做 6to4 啊,那在这里是没法用了,肯定是在路由上菜有意义

    . 我有个问题,我开了一个 aws 机器测试,发现我本地局域网访问 aws 机器的时候那边显示的是我本地的地址登录的而不是路由器是公网 ip6 登录的,如果是 ip4 肯定是显示路由器的地址.

    这里的问题是,aws 机器那边是怎么知道这个地址的?仅仅是 ip6 数据包的一个字段的内容还是 ip6 数据包的地址就写的是这个呢? 如果 ip6 的地址(或者里面某个字段加 mac 地址之类的让他能路由过去)是写的是这个的话,理论上我就是可以连上我本地的地址的,大不了我在服务器上写一个数据包转换的程序就好了...
    sasalemma
        20
    sasalemma  
       2021-01-07 02:33:19 +08:00
    @yangyaofei 网件的 ipv6 确实基本残废,有的省份配置对,在 ipv6 设置那个,选 pppoe 和 ipv4 同账号,下面不是选 6-4,选自动配置就是 pd 下发的。

    呃,另外并没有看懂。本地地址。

    另外的曲线救国方式,就剩下 SSH -L/-R 这样代理访问了。

    aws 双栈的情况,然后你这边网络也是双栈的情况,win 系统或者其他系统,会调度,可以是访问 AAAA,也可访问 A 记录,默认情况,有 ipv6 的 ULA 地址和全球单播地址,会优先使用 ipv6 去连接服务器,除非服务器是单栈。否则两个都是随机的,比如 openwrt.org 是双栈的,查询 dns 时会返回 AAAA 和 A 记录 2 个地址,浏览器去浏览的时候,看系统调度,可能连的是 ipv6,也可能是 v4 。

    如果你指定要 ipv6 去连接的话,就得掐死 v4 的连接。所以就算你 pc 获得了公网 ipv6,也不是都会用 ipv6 去连接服务器的。

    这个也就是为什么现阶段,开了 ipv6 访问反而变慢的原因,系统默认先走 ipv6,但遇到没有双栈,或者 ipv6 线路由差的情况,再回到 v4 访问,感官上就慢了。

    如果是单线路的,只能 ipv6 访问的,ipv4 要登录访问的那种,你只有 ipv4 出的压根就上不去的。上去了就是路由做了 6-4 了。两个网本来就一个长江和黄河,两条路都不在一个道上的。那些转换的都是打洞中转的,用双栈的服务器,比如路由,双栈的 vps 。
    v2tudnew
        21
    v2tudnew  
       2021-01-07 13:38:17 +08:00
    @sasalemma #20 "如果你指定要 ipv6 去连接的话,就得掐死 v4 的连接。所以就算你 pc 获得了公网 ipv6,也不是都会用 ipv6 去连接服务器的。"
    你自己试下访问单 IPv4 网页是否会有慢的感觉吧。就比如 www.baidu.com ,你试试。
    sasalemma
        22
    sasalemma  
       2021-01-07 14:19:21 +08:00
    @v2tudnew 没看懂回复。没有说单栈访问慢。

    你是双栈的 pc,win10 一类默认是 dns 找网址的 a 和 aaaa 记录,如果都返回,连接策略优先用 aaaa 记录连接,如果 dns 网址只有 a 记录返回,当然只会用 ipv4 去连接。

    比如:

    Server: 127.0.0.1
    Address: 127.0.0.1#53

    Name: openwrt.org
    Address 1: 139.59.209.225
    Address 2: 2a03:b0c0:3:d0::1af1:1

    又比如

    Server: 127.0.0.1
    Address: 127.0.0.1#53

    Name: www.baidu.com
    www.baidu.com canonical name = www.a.shifen.com
    Name: www.a.shifen.com
    Address 1: 14.215.177.38
    Address 2: 14.215.177.39
    www.baidu.com canonical name = www.a.shifen.



    https://docs.microsoft.com/zh-cn/troubleshoot/windows-server/networking/configure-ipv6-in-windows

    注册表的键值不就是这个

    服务器是双栈,要都是只能 ipv6 接入,返回 aaaa 和 a 记录,pc 这边也是双栈,是用 ipv4 连,也会用 ipv6 连接,netstat 看下不就知道了。

    有的地区 ipv6 的路由很烂,会绕路,优先用 aaaa 去访问网站就会变慢。所以在这样的双栈共存期,必然会存在这样的问题。

    当然,有 CDN 的除外。
    yangyaofei
        23
    yangyaofei  
    OP
       2021-01-07 14:47:07 +08:00
    @sasalemma 比如 路由器的 ip 是 `2408:8206::1` 这样,他会显示他的内网 ip 是 `2408:8207::2`这种.给 内网机器分类的 ip 也是
    `2408:8207::11` 这种. 这时候我用这个机器去 ssh 或者 http aws 的主机的时候,主机显示的访问 ip 是`2048:8207::11` 而不是 `2408:8206::1` . 我想搞明白的是 本机的 tcp 包或者 ip 包是怎么到 aws 主机上的, 要是按照原来的 ip4,应该是 NAT 之后显示的是 `2408:8206::1` 这个地址访问

    这里如果 ip 包的地址地方也是 `2408:8207::11` 的话,也就是肯定有办法路由到内网的这个地址上不是么.... 如果不是,那就是有一个标志知道 是地址 `2408:8206::1` 的主机下的 `2408:8207::11` 这台机器,那么我复用这种方式不是可以访问我内网的机器了么, 如果是 tcp 不让从外面发起连接,那 udp 应该是可以的吧,我想办法做 udp 到 tcp 的转换就好了...

    所以现在就是这个地方很疑惑,如果 ip6 没有 NAT,那么肯定有办法利用地址从外网发送数据到内网机器的
    sasalemma
        24
    sasalemma  
       2021-01-07 15:12:12 +08:00
    @yangyaofei 亲,先去了解下 IPV6 的地址分类,至少 2xxx 开头的都是全球唯一地址了,也就是所谓的“公网 IPV6 地址”了,不是 NAT 的地址。

    IPV6 地址目前三大运营商的公网是:

    电信:240e
    联通:2408
    移动:2409

    路由 PD 下发就是路由器拨号得到一个 2408:8206::/60 或者 2408:8206::/56 一类,让路由自己分配子网,下面的设备比如你的 PC 就是 2408:8207::11 这样,这个就是独立的公网 ip 。


    so,真正的 NAT,或者说 NAT6 是这样的:


    协议: DHCPv6 客户端
    地址: dd08:1111:2222::abcd:1234:efgh:5678/64 《--PC 获取的 ULA 本地链路地址
    网关: fe80::1111:2222:3333:4444 《--路由器 WAN 口的本地链路地址
    DNS 1: dd08:1111:2222::1 《--路由器 LAN 口的地址

    所以实际上你已经是 ipv6 公网地址去访问 AWS 服务器了。至于为什么,上面回复说了,WIN 下默认策略会优先用 ipv6 去连接双栈服务器,所以 AWS 显示你的 PC 的“本地地址”并不奇怪。

    所以,你问的问题实际上是不存在。

    若要只想用 ipv6 直连双栈服务器,本地屏蔽掉服务器那边的 ipv4 地址,只 host ipv6 的地址解析。
    sasalemma
        25
    sasalemma  
       2021-01-07 15:19:10 +08:00
    唯一本地地址 unique local addresses ( ULA )才是 IPV6 真正的“私网”地址,一般 DD00::/80 开头

    全局单播地址 global unicast addresses ( GUA )就是所谓的公网 IPV6 地址,国内常见的 2409:2408:240e,还有隧道类的 2001:一类。

    本地链路地址 link-local addresses 常见就是 fe80:: 开头。

    本地链路和唯一本地地址,只能在局域网交流。要出去,ULA 才能 NAT,fe80 就算 NAT 了,对面接受的路由也会把包丢掉。
    sasalemma
        26
    sasalemma  
       2021-01-07 15:21:20 +08:00
    如果是 2xxx 开头一类地址,路由网关的防火墙 ipv6,或者 ip6tables,设置下转发和开放端口,外网就能直接访问到那个设备。
    yangyaofei
        27
    yangyaofei  
    OP
       2021-01-07 15:40:27 +08:00
    @sasalemma 谢谢解答啊,我困惑也是来自于 这里, 这儿有几个问题:

    1. 从 AWS 是 ping 不通 2408:8207 这个本地 pc 地址的,本地的服务他也连不上...
    2. 我理解的 2048:8206::/64 (我这里分配的是 64), 那么不是在 mask 64 之后开始分配么...为啥会改前面....
    3. 我直接用 ipv6 访问的 aws,和本机 pc 的,应该不存在走 ip4 的情况
    4. 按照你说的,现在的问题是防火墙阻止外部的 tcp 连接进来是么....那我用 udp 应该没问题吧...
    yangyaofei
        28
    yangyaofei  
    OP
       2021-01-07 15:42:17 +08:00
    @sasalemma 还有那个地址分类我是了解的,我一直以为网件路由器瞎分配的...
    sasalemma
        29
    sasalemma  
       2021-01-07 16:23:12 +08:00
    @yangyaofei

    呃。不知道怎么讲。

    IPV6 的分配方式有多种,就是前缀,一种是 netive,就是原生,然后 DHCP-PD 才是像你说的,给你内网一个前缀网段,然后你的路由器爱怎么分发是你路由内部的事情。
    这个情况就是 WAN 口的 IPV6 地址设置地址段都和 LAN 口的不一样。DHCP-PD 模式的话,就是把前缀网段分给路由的 LAN 口。

    另一个是 passthrough,让 WAN 口的 IPV6 的 RA 通过 LAN 去分发到下级,就是 PC 和 WAN 口是同网段的。你可以尝试下手机,比如安卓开个热点,实际上就是 passthrough 。

    =====================

    另一个是后缀,如果是无状态,设备这边会根据前缀加上 mac 插入 fffe 变成一个完整的 ipv6 地址,如果是有状态,就是短地址。

    =====================

    但无论如何分配,路由都是一个门啊,就是协议上是 IPV6,链路上还是通过

    AWS--》 internet--》光猫---》路由的 WAN 口---》路由的 LAN---PC

    这样进来的,所以还是需要配置路由防火墙的( WAN 口准入),默认情况下,开启的 IPV6 防火墙,任何外网,就是通过 WAN 口入的,比如 AWS 对 PC 的访问都会被丢弃的。如果需要从外网访问 PC,需要在路由开启防火墙放行,如果是固定地址,就写固定的地址,如果是变动的前缀,就写 pc 的后缀加掩码,比如 pc 是 2408:1111::1234,开放 3389 端口,防火墙那边就需要开放 ::1234/::ffff 的 3389 端口。在 ip6tables 里看就是从 WAN 口监听访问::1234:3389 的包,转发到::1234:3389

    你要知道数据流的方向。路由禁止 WAN 口的 PING 包,LAN 中的公网 ipv6 的 PC 一样 ping 不到的。

    反过来连出创建的连接无影响,比如 PC--》路由的 LAN--》路由的 WAN 口---》光猫---》 internet--》 AWS


    所以应该理一理思路,你要做什么事情?是像让远程的 AWS HTTP 服务器,而把资源放在 IPV6 公网的本地,用户访问 HTTP 时,AWS 反向代理,IPV6 接入本地,拉取资源?

    还是,本地通过 ipv6 去访问 AWS 服务器,而不是通过 IPV4 去访问。
    v2tudnew
        30
    v2tudnew  
       2021-01-07 17:08:58 +08:00
    @sasalemma #22 我是感觉你说双栈 PC 访问 A 解析网站会先走 v6,失败再返回 v4 。
    绕路问题解决不是很简单?禁 AAAA 解析,或者 smartdns 这种带测速的就行了,国内绕路导致很慢的我是没发现过,国际绕路不绕路都一个鸟样,梯子才是解决之道。当然愿意凑合也行。

    对于不需要的人来说禁掉也许是更好的解决办法,但对于无公网 IPv4 的人来说就看取舍了。
    v2tudnew
        31
    v2tudnew  
       2021-01-07 17:10:32 +08:00
    也不能叫取舍吧,到这里玩的人应该学习能力也有些,换个支持的固件的解决了,禁用 AAAA 解析或者 DNS 测速
    sasalemma
        32
    sasalemma  
       2021-01-07 17:36:39 +08:00
    @v2tudnew

    呃,正常都能理解,单栈服务器那边的解析出来是 A,没有 AAAA,你的 PC 不会用一个不存在的“AAAA”去访问啊。

    DNS 就是把网址解析,然后返回 A 和 AAAA (如果有),然后让系统这边选。

    然后双栈的 win 就优先连接 AAAA 这个地址了。

    有意思的是,比如二级路由中禁用 IPV6,一个双栈的一级路由,二级路由下的设备访问一个双栈的服务器,也就是网关的 DNS 还是会给二级路由返回一个 A 和 AAAA 记录,二级路由的设备只有 IPV4,当然也不会尝试一个“非法”返回地址,格式都不一样。

    换个例子,一个只有 AAAA 记录的,比如 IPV6 公网挂 ddns 域名,单 IPV4 访问 DNS 返回 AAAA,系统都会直接认为地址非法,尝试连接都会。

    另外说的绕路不一定是出墙,而是国内双栈的一些服务器,双栈的 PC 去访问,IPV6 的路由跳转数和 IPV4 的跳转数不同的,时间也是有差别的。我说的绕路是说这个,可能在 V2 绕路都是说出墙的线路。

    traceroute 一下不就知道了。有朋友开 IPV6 会变慢,然后说 IPV6 烂是因为这个。

    从一开始我都是说现象,并没有说要怎么解决。因为你看回复下来就知道,实际上楼主想做什么都没有特别明确。

    毕竟楼主他一直认为 pc 获得的 ipv6“本地地址”是私网地址。
    v2tudnew
        33
    v2tudnew  
       2021-01-07 18:06:06 +08:00
    @sasalemma #32 .......我又没否认 v6 会绕路,不明白你发这个做什么。
    sasalemma
        34
    sasalemma  
       2021-01-07 18:19:48 +08:00
    因为不同地区,比如我老家山卡拉,ipv6 访问双栈的 aaaa 就很慢,但广州就很快,每个区域的墙内路由就是不一样。

    但发这个确实没有意义。

    我只是不明白你第一条回复单 ipv4 访问不慢,还有楼主原话题中想单独走 ipv6 接入他想接入的服务器,所以我才那样回复。

    有什么问题问楼主去。我都不想打字了。
    yangyaofei
        35
    yangyaofei  
    OP
       2021-01-07 22:18:28 +08:00
    @sasalemma 是这样的,我有另一个 ip6 的主机,和现在的内网 pc 是一样的,可以通过 ipv6 连到外面,但是直接 ssh 是没反应的(ipv4 根本不通的),我原来要想连那台机器,是用 aws 是机器做跳板,用 frp 做反代,然后就可以从外面用 ip4 连接反代的 aws 去连接内网的只有 ip6 的机器了.

    但是现在家里的网有了这个 ip6 之后,就想把原来的 aws 扯掉,毕竟一个月也好几十还是很心疼,而且用的不多速度还慢.

    但是现在家里的 pc 是没法作为 server 的,开了端口,另外那台只有 ip6 的机器也连不过来,所以才想到现在这个问题的.
    yangyaofei
        36
    yangyaofei  
    OP
       2021-01-07 22:58:45 +08:00
    @sasalemma 刚刚我做了一个这样的实验,用 netcat

    本机: nc6 -u 2406:aws 的 ipv6 地址 8888
    aws: nc -6 -lu 8888 -v

    这样肯定是可以通的,但是反过来就不通了

    我理解 udp 包是无连接的,从哪个方向开始发都是一样的,所以如果是可以路由过来,那应该反过来是通的

    但是反过来不通

    如果这个是路由器的防火墙设置,他是怎么知道的呢...
    cwbsw
        37
    cwbsw  
       2021-01-08 00:11:17 +08:00
    @yangyaofei 这是防火墙最基本的配置啊,Linux 就是 conntrack,会跟踪每一个连接的状态,UDP 也是按照类似方法处理,看到 A 往 B 发了包,再看到 B 给 A 的回复,即视为建立连接。这也导致从网络协议的角度看,Linux 防火墙对 UDP 只能实现 Symmetric NAT 。
    sasalemma
        38
    sasalemma  
       2021-01-08 00:13:45 +08:00
    @yangyaofei

    你把问题搞复杂了。

    哪怕两个都是内网 ipv4+公网 ipv6,都能直接联通的,不通就是墙的配置问题。

    FRP 打洞一类,数据本来就是中转,所以就慢咯。

    整理一下:

    1.PC-A 是家里的 PC,2408 公网,PC-B 是公司的,带 IPV6 (无论是公网 IPV6 还是 NAT6 )
    2.PC-B 能连出访问 ipv6 的网站,但不能连入。

    这样的情况,用 aws+frp,aws 要是双栈,frps 放在 aws 上,两边都作为 frpc 不就是了。frps 监听[::]这个,一端的是 ipv4 也行的。PC-A 这段按照 IPV4 的配置就行,PC-B 那段连接 FRPS 用 AWS 的 IPV6 地址,这样也能通的。要是 AWS 是单 IPV6,PC-A 和 PC-B 都是 frpc 按照 ipv4 照搬就是。

    要省掉 aws,就得从路由器动手。如果是官方固件,大概我会说,放弃吧,开个 ssh 都困难。
    PC-B 只能连出,PC-A 就要当 server,当 server 解决 2 个问题,要访问到,就是开墙,第二个问题一般前缀是变动的,需要 ddns 。ddns 简单,哪怕是 pc 开个虚拟机或者 win 的计划任务跑脚本都行,毕竟当 server 都是要开机的。

    倒是研究下 R8000 原版固件怎么 ssh 能开 iptables 。我放老家的 R7000 很久都没有登录过,都忘了界面是怎样了。现在用 asus 的多些还有 openwrt 。R8000 作为路由拨号,网关就是它,不解决这个,有公网 ipv6 实际上等于私网。

    开启 ipv6 墙就是==ipv4 端口转发。呃,翻了下 google,一大票人也在网件的官网论坛求 ssh 和 iptables 的问题。店大欺客的样子。
    cwbsw
        39
    cwbsw  
       2021-01-08 00:16:02 +08:00
    一些电信级的路由器,行为可以配置成收到从 192.168.1.100:1234 发往外网的 UDP 包后,直接映射到公网地址的 1.2.3.4:2234,在超时时间内收到所有发往 1.2.3.4:2234 的包直接转发给 192.168.1.100:1234,这就是所谓的 Fullcone NAT 。
    datou
        40
    datou  
       2021-01-08 00:31:48 +08:00
    建议楼主先将电脑直连 onu 拨号看看 ipv6 通不通

    有些运营商分配的 ipv6 可能正在测试,并没有通网
    yangyaofei
        41
    yangyaofei  
    OP
       2021-01-08 10:11:03 +08:00
    @cwbsw 按照这个来说,我这要本地先发一个 udp 出去(发到目标地址,至于到不到无所谓).然后再接收,防火墙就认为有了连接就可以了是么..... 哎,太黑盒了
    @sasalemma 是了....倒不是嫌弃 frp 慢,关键是 aws 费用和用量不成正比,感觉亏死了... 官方固件 ssh 太难了吧...openwrt 太折腾了,而且各种问题不是很稳定...
    @datou 通的,用 ipv6 是可以上网的

    谢谢解答问题,感觉 ip6 方面知识缺很多啊,要补一补了... 再次感谢...
    qbqbqbqb
        42
    qbqbqbqb  
       2021-01-08 13:37:01 +08:00
    @yangyaofei

    看你这么说,“路由器的 ip 是 `2408:8206::1` 这样,他会显示他的内网 ip 是 `2408:8207::2`这种.给 内网机器分类的 ip 也是”
    那就是已经有公网 IP 了。

    现在就是一个问题,NETGEAR 路由器是强制开启 IPv6 防火墙而且不能配置放行 IP/端口的。
    要解决这个问题就只能换一个路由器了。支持的有 ASUS 的路由器(包括可以刷梅林的其它路由器)和刷了 OpenWRT 的路由器。这两种都支持配置防火墙放行端口。
    cdh1075
        43
    cdh1075  
       2021-01-08 13:53:29 +08:00
    不是你的路由不支持 pd,是上级运营商不支持 pd
    通俗说 dhcp 是分配一个 ip 的,dhcp-pd 是分配一撮 ip 的
    上级运营商不支持 dhcp-pd,你的路由就不知道哪一撮 ip 属于你,自然就更不知道该怎么往内网分 ip 了
    应该开启桥接
    类比一下 ipv4,这种情况实际上就相当于在子网里又插了个路由器,这个路由器要么开 nat,要么当交换机用
    cdh1075
        44
    cdh1075  
       2021-01-08 14:06:46 +08:00
    网件的 ipv6 还算好的,至少还能桥接,其他路由遇到不标准的 ipv6 网络直接没 ipv6 用
    sasalemma
        45
    sasalemma  
       2021-01-08 14:26:45 +08:00
    @cdh1075 实际上是知道的,楼主他这个就是 DHCP-PD 了,回去看看 23#

    电信、联通、移动的 PD 是基本一样的,WAN 和 LAN 网段在第二段改动,PD 按下发的看后缀分配改动。

    WAN 是 2408:1111:abcd:1234:xxxx:xxxx:xxxx:xxxx

    LAN 的 PD 是 2408:1112:1234:xxxx::/64 这样,每次拨号实际上也就 xxxx 在变,感觉缩小了范围后,更容易被扫描了。

    有状态的,底下的机器就是 2408:1112:1234:xxxx::yyyy 这样。

    无状态的,底下的机器就是 2408:1112:1234:xxxx:abcd:78fe:fe90:ghij

    所以他的 PD 前缀就是下发了。问题是 R8000 官方固件问题。没 SSH,iptable 都写不了。只能刷官改的梅林或者 OPENWRT 一类才能开墙直通。

    然后所以无论 WAN 和 LAN 都是公网 IP,开启 WAN 端口,WAN 那边那个 ip 也是可以直连路由,LAN 口的 IP 也是可以直连。

    IPV6 的安全只能靠墙了。所以很多路由器的固件干脆就没给你设置 ip6tables 的机会。
    yangyaofei
        46
    yangyaofei  
    OP
       2021-01-08 17:53:55 +08:00
    @qbqbqbqb 防火墙什么的,估计也是没办法了...
    @sasalemma 恩,我又看了看文档什么的,应该就是这样了...其实我觉得,没准即使我换了路由,开了防火墙,可能也不行,毕竟运营商可能也给加了防火墙了... 刚才试了试联通手机的 ipv6,也是不能从外面连...感觉除了主机中转应该是没戏了...
    yangyaofei
        47
    yangyaofei  
    OP
       2021-01-08 17:59:55 +08:00
    @sasalemma 现在我觉得可以利用这个思路,写一个程序试试, http://blog.chinaunix.net/uid-1728743-id-3457803.html
    局域网的 pc 和服务器里通外合搞防火墙
    sasalemma
        48
    sasalemma  
       2021-01-10 01:44:07 +08:00
    @yangyaofei

    呃,总感觉你是喜欢杀鸡用牛刀,我是能简单些就简单些。

    写一个爆破程序,远比刷个 openwrt 并学会使用快多了,毕竟非常规手段,暴力包异常,公司那边一查不死翘翘。爆破家里这边,路由的承载力就那么多,杀敌一千自损 3000 的样子。

    省事就继续 frp 的 xtcp 打洞就是,公司那边用 ipv6 接入 aws,家这边可以走 ipv4 。唯一要改动的 aws 的 frps 服务器监听地址用 [::],其他和你以前玩耍的一样。

    网络这个东西,一般没有异常多的流量,ISP 一直都不会管你,所谓手机不能联通只是因为手机网络这边,为了安全,是像 wifi 一样 AP 隔离。but,不知道你那边怎么样,我是经常用移动手机 RD,叫他们电信手机开热点直接远程 3389 的( PC 那边要开启远程),ping 不通,但远程没什么问题。

    一般只会封锁 80,L2TP,PPTP 那几个入站端口而已,其他端口基本都不封禁。

    修改防火墙是运维层面的东西,写个程序都快到后端了。有钥匙可以开门,干嘛拿个斧头砍。
    yangyaofei
        49
    yangyaofei  
    OP
       2021-01-10 16:01:52 +08:00 via Android
    @sasalemma 原来折腾多了,现在是能官方固件就官方固件,能不升级就不升级……虽然刷 openwrt 简单,但是有问题影响比较大,比如孩子的 peppa pig 媳妇的 youtube,所以我折腾都是家里服务器里面搞个虚拟机,桥接出来搞,坏了也就是那一个点,不影响别的服务………要是七八年前肯定 openwrt,甚至里面装个 python 跑各种脚本……frp 那个以前就一直那么用的,ipv6 出来外面随便用,只是 aws 花钱而且慢,哪有都是大陆内部互联来的快,而且花了钱就要"审计"的,已婚男人伤不起啊………
    qbqbqbqb
        50
    qbqbqbqb  
       2021-01-10 18:10:58 +08:00
    @sasalemma 其实大多数宽带就封个 80 。
    L2TP/IPSec 连回家,随便用,都不封。
    sasalemma
        51
    sasalemma  
       2021-01-11 02:04:41 +08:00
    @yangyaofei 呃。在阿里云一类买个流量轻量不就是了。爆破什么的别想了,路由就那点能耐,看视频卡掉线还不坑自己。我个人用华硕系,至少官方固件 ssh 和 ipv6 墙都没有什么问题。官方 openwrt 也没有什么问题,旁路由一直 adguardhome 做 dns 很久了,路由系统,那些 [大神] 作品我没碰过,毕竟是网关,最多是自己编译下官方源的 op,哪怕是改都是自己下源码改,除了 uboot,CFE 一类闭源,自己不能研究,老毛子那些固件,不都是 asus 放出的源码改的。改源码的最开始都是 gpio 的问题,wifi 驱动的参数调节。
    另外官方的软件也是软件,bug 该有的还是有,也不见得稳不稳,不翻车都是基于 cpu 不过热,没过多的硬错误,没有因为设备多而爆 RAM,没有因为缓存泄露而爆 RAM,RAM 合理回收。像 256M+以上的 RAM 的双核路由,家用设备不多于 25 台,不会常时间跑满千兆内网 nat 的,几乎都不会存在什么大问题。所谓插件什么,GUI 后面都是脚本实施,还不如直接自己写脚本,当它是一台 linux 来处理不就是了。本来还没有那么多事情,一个脚本解决的问题,偏偏要加个 luci-gui 来耗资源,何必呢。

    ip6tables -I INPUT -p tcp -d ::11/::ffff --dport 22 -j ACCEPT
    ip6tables -I OUTPUT -p tcp -d ::11/::ffff --sport 22 -j ACCEPT

    防火墙,一进一出,两个命令的事情。你竟然要 udp 爆破。网关不可修改,只能 frp 了。不尝试下 r8000 ipv6 进 vpn ?
    sasalemma
        52
    sasalemma  
       2021-01-11 02:06:48 +08:00
    @qbqbqbqb 我这边一个城市可以 L2TP,一个不行,跨市不行,得上 openvpn 用非标端口,有时候图省事,都是直接 ssh -L 代理下,联通就算了。
    yangyaofei
        53
    yangyaofei  
    OP
       2021-01-11 09:13:15 +08:00
    @sasalemma vpn 这个思路可以试试哎,我也是 openwrt 之类的官方固件,但是有些驱动支持的不是那么好,所以不想换了...还有,轻量带 ip6 的能推荐一个么,几块钱一个月的那种....
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4230 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 01:04 · PVG 09:04 · LAX 17:04 · JFK 20:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.