V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  FaiChou  ›  全部回复第 2 页 / 共 85 页
回复总数  1689
1  2  3  4  5  6  7  8  9  10 ... 85  
分母!+1
31 天前
回复了 FaiChou 创建的主题 程序员 有了 ipv6 地址就可以直连了吗?
@phenixc #27 你说的这种是打洞的原理。但实际上会复杂很多,如果是 v4 ,大部分网络环境都会限制来源 ip, derp 服务器的 ip 和别的 ip 不一样,防火墙也是给过滤掉的。也就是说,中转的数据包如果是一来一回的建立了连接,这种防火墙是准许的。也就是我在 25 楼讲的 ctstate RELATED,ESTABLISHED 行为。
31 天前
回复了 FaiChou 创建的主题 程序员 有了 ipv6 地址就可以直连了吗?
@zbinlin #26 能 ping 通,有 icmp 和 icmpv6 相关的防火墙配置。这是 OpenWrt 默认的。
31 天前
回复了 FaiChou 创建的主题 程序员 有了 ipv6 地址就可以直连了吗?
@FaiChou #24 数据包是这样走的,数据包来到网口 1 后,经过 forward 链,然后第一条是自建的`forwarding_rule`(我也不知道谁建的这条 rule ),这个 rule 表示,如果是从 `pppoe` 开头的网口,那么数据包会 RETURN ,RETURN 代表向下一条规则过滤,也就是走到 ACCEPT 这一条,这一条后面是 `ctstate RELATED,ESTABLISHED`,代表如果是出站过的流量,那么返回的响应是正常接收的。

然后就是下面这些 OpenWrt 自定义的规则了。能够看到数据包也小,数据量都是在 forwarding_rule 上,估计使用 tailscale 连接是被这条链捕获记录。
31 天前
回复了 FaiChou 创建的主题 程序员 有了 ipv6 地址就可以直连了吗?
@zbinlin 我现在更倾向于我这 OpenWrt 的问题,昨天防火墙的 FORWARD 默认是 DROP ,经过开一个 server 测试,确实是这样的。但是 tailscale 能用 v6 直连。但今天再测,就不能用 v6 直连了,而且我现在把 FORWARD 规则改成默认 ACCEPT 也不行。

由于是办公室的网络环境,不太方便 flush 掉所有规则做测试,具体是这样的:


$ ip6tables -L FORWARD -vn
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
257K 161M forwarding_rule all * * ::/0 ::/0 /* !fw3: Custom forwarding rule chain */
226K 153M ACCEPT all * * ::/0 ::/0 ctstate RELATED,ESTABLISHED /* !fw3 */
16675 2716K zone_lan_forward all br-lan * ::/0 ::/0 /* !fw3 */
14322 5367K zone_wan_forward all pppoe-ppp * ::/0 ::/0 /* !fw3 */
0 0 zone_docker_forward all docker0 * ::/0 ::/0 /* !fw3 */
0 0 zone_ipsecserver_forward all ipsec0 * ::/0 ::/0 /* !fw3 */
0 0 reject all * * ::/0 ::/0 /* !fw3 */

# root @ OpenWrt in ~ [20:32:49]
$ iptables -L forwarding_rule -v -n
Chain forwarding_rule (1 references)
pkts bytes target prot opt in out source destination
1314K 1142M RETURN all -- pppoe+ * 0.0.0.0/0 0.0.0.0/0
886K 333M RETURN all -- * pppoe+ 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- ppp+ * 0.0.0.0/0 0.0.0.0/0 ctstate NEW
0 0 ACCEPT all -- * ppp+ 0.0.0.0/0 0.0.0.0/0 ctstate NEW
31 天前
回复了 FaiChou 创建的主题 程序员 有了 ipv6 地址就可以直连了吗?
@lovelylain 对的,不管是 v4 还是 v6 ,防火墙默认是有 "iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT"这样一条的。从内部发出去的包,如果收到响应,默认是接收的。
31 天前
回复了 FaiChou 创建的主题 程序员 有了 ipv6 地址就可以直连了吗?
@COW #20 可能网络拓扑结构我没讲清楚。发送给 B 电脑的数据包,先是到达 B 的上级 OpenWrt ,OpenWrt 有两个网口,一个公网,一个内网,数据包先到达公网,然后转发给内网。对于 OpenWrt 来讲,什么虚拟网卡都不知道,数据包不是发给 OpenWrt 自己的,就不会再一层层解包处理,会根据路由表转发给内网,数据到达 B 电脑后,才会将数据转发到虚拟网卡来处理。
31 天前
回复了 FaiChou 创建的主题 程序员 有了 ipv6 地址就可以直连了吗?
@Ipsum v4 v6 默认都 drop 。
31 天前
回复了 FaiChou 创建的主题 程序员 有了 ipv6 地址就可以直连了吗?
@COW 加密知识数据包内容而已,但对于 tcpip 模型来讲,数据包肯定有目标地址和端口的。要不然互联网上数据包怎么一级级转发。
31 天前
回复了 FaiChou 创建的主题 程序员 有了 ipv6 地址就可以直连了吗?
@Ipsum op 后面接了个路由器,路由器开的 AP (有线中继),只起到 Wi-Fi 作用。
31 天前
回复了 FaiChou 创建的主题 程序员 有了 ipv6 地址就可以直连了吗?
@dalaoshu25 wan 口转发到其他网口默认 drop 。
@peacelove
@tangping

啊 确实,竟然还有 10w 限额这一限制。是我之前转账刚好 9 万,剩下刚好 1 万,所以误以为是 1 万单日限额呢。🤡竟然是我。

帖子下沉了。
32 天前
回复了 FaiChou 创建的主题 程序员 有了 ipv6 地址就可以直连了吗?
@goodryb 你说得这个我理解,电脑先连接一下 derp 服务器,比如使用 1234 端口和 derp 服务器进行了连接,这样自己的 1234 端口就打开了,然后其他的设备就可以使用 1234 端口和这台电脑交流。如果 ipv4 中是严格的(Symmetric) NAT ,那么其他的设备无法直连它,因为源地址不同,NAT 会拒绝这些来源请求。如果是 Full Cone NAT 的话可以直接 p2p 连接,NAT 不会限制来源 ip 。

但这是 ipv6 就没有 NAT 的事了。数据包总是先到达 OpenWRT 的网口 1 ,然后转发到网口 2 。这里的转发就应该有防火墙的限制。
32 天前
回复了 FaiChou 创建的主题 程序员 有了 ipv6 地址就可以直连了吗?
@JensenQian 不管是打不打洞,B 电脑收到的数据包先是经过 OpenWrt 的口,然后再转发到另一个网口,再发到 B 电脑吧。但是 ipv6 直连的话,在经过网口转发的过程中,会触发防火墙的 FORWARD 链吧。默认 drop 会拒绝的。所以 tailscale 是怎么绕过这防火墙的?
32 天前
回复了 FaiChou 创建的主题 程序员 有了 ipv6 地址就可以直连了吗?
@Danswerme

A 电脑使用 ipv6 连接到 B 电脑的过程中,B 电脑的上一级是 Openwrt ,OpenWrt 有两个网口,网口 1 和网口 2 ,网口 2 是和 B 电脑相连。当 A 连接 B 时候,数据包到达 OpenWrt 的网口 1 ,根据路由表发现需要转发到 B 电脑,于是将数据包转发给网口 2 。这时候数据包在 OpenWrt 上两个网口的转发,是不是要经过 FORWARD 链呢?但 tailscale 的虚拟网卡只是设备端的,比如 B 电脑中的,在 OpenWrt 上并不知道是什么样的流量,只知道目标 ip 是 B 电脑,所以要进行转发。我的理解是这样的。
但实际上,使用了 tailscale 可以进行 ipv6 直连,不知道它怎么做到流量可以透过 FORWARD 链的。
32 天前
回复了 FaiChou 创建的主题 程序员 有了 ipv6 地址就可以直连了吗?
@i8086
"3. tailscale 是隧道组网,双方电脑就处于同一个局域网,双方电脑都没网络防火墙的情况,当然是互通。"
组的局域网,但是数据包肯定是流经了 OpenWrt 来转发到电脑的,数据包既然流经了 OpenWrt ,那就要走 OpenWrt 的防火墙吧?
赞,抽我!
34 天前
回复了 17lian 创建的主题 React 马上 2025 年了,还有多少人在用 React Native ?
之前写过 RN ,好几年没写了,之前写的 RN 都是裸写,现在官方都是推 expo ,用 expo 创建管理项目以及很多 UI 组件。现在要再来学一遍 expo ,稍微看了下,之前用的 navigation 现在被 expo 的 router 代替了,之前用 redux 等状态管理工具来控制 navigation 兼职是噩梦,不知道现在的 router 是否更好用了没。
而且现在还多了个 EAS ,用来走编译打包发布这一套流程。expo 的文档内容有点多,又要学 react ,又要学 RN ,还要学 expo ,然后深入点就要写一下原生组件。如果这些都不熟悉,使用 AI 协助编程也会遇到很多问题,到时候再一个个补充知识,这样的学习路线感觉会更折磨。

所以我觉得,个人开发,自底向上比较正规并且路会越走越顺,把基础打牢实了,再用 AI 辅助会很舒服。但如果对一个开发栈了解得少,直接用 AI 来创作,这种自顶向下的开发路线,坑会越来越多。

对于 op 第一个问题,建议学 swift 。OC 太老了,比如代理模式写起来费劲,新手不适合学这种内容。除非有丰富的 c 语言功底。
我也有这个问题。
在内网下访问家里 nas ,比如 jellyfin, moviepilot, qb, alist 等服务很快,同时做了 cf tunnel 将一些服务暴露出去,这样在外面也能直接用域名访问。

但是如果在家里用域名来访问这些服务就会很慢。

现在的办法就是搞了两套,一套是内网的 ip ,一套是域名访问。
用腾讯云的话 要备案吗?没买过国内服务器,不太明白这一块。
1  2  3  4  5  6  7  8  9  10 ... 85  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2650 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 22ms · UTC 15:07 · PVG 23:07 · LAX 07:07 · JFK 10:07
Developed with CodeLauncher
♥ Do have faith in what you're doing.