zhboner / realm

A network relay tool
MIT License
1.48k stars 279 forks source link

该如何转发仅解析了IPV6的域名 #89

Closed LIULIWANJIA closed 1 year ago

LIULIWANJIA commented 1 year ago

该如何转发仅解析了IPV6的域名 尝试修改 mode = "ipv6_then_ipv4" nameservers = ["2400:3200::1:53", "223.5.5.5:53"]

remote = "AAAA解析的域名:51001"

但是不通 直接进行IPV6地址转发 (remote = "[ipv6地址]:51001") 则可以转发

附: 测试的ipv6地址为 240e:363:574:4a00:e214:5796:df18:6

LIULIWANJIA commented 1 year ago

sorry i don't know developers are international before the following is english how to forward only resolve ipv6's domain i have try to modify

mode = "ipv6_then_ipv4" nameservers = ["2400:3200::1:53", "223.5.5.5:53"]

remote = "only resolve ipv6's domain:51001"

but it's not working

just use ipv6 address can work (remote = "[ipv6 address]:51001")

ps.test ipv6 is 240e:363:574:4a00:e214:5796:df18:6

zephyrchien commented 1 year ago

Please enable the debugging log to see what happens. (start with --log-level=debug or add level=debug to the [log] section.) There should be [tcp] {Address:Port} resolved as {IP:Port}.

LIULIWANJIA commented 1 year ago

debug showerror: proto error: Label contains invalid characters: Err(Errors { invalid_mapping, disallowed_by_std3_ascii_rules

zephyrchien commented 1 year ago

This error occurs when the provided domain is illegal, e.g.: http://abc.com, not abc.com . The dns library throws this error before resolving and there's no dns query to be sent.

However, Realm checks remote even more strictly(domains like 新华网.cn are not allowed) when parsing the config, It will stop execution if remote can't be resolved at starting. This error is not possible to occur in theory.

Did you use the latest version? Can you resolve your domain with nslookup or dig ?

LIULIWANJIA commented 1 year ago

I try to use dig to check the aaaa record of the domain name Show: ;; ANSWER SECTION: mydomain. 300 IN AAAA 240e:361:ab1b:3000::1000

The version I'm using is 2.4.4 mydomain ,It is composed of all English letters and Only the resolution of AAAA records DNS cloudflare cloudflare

I don't know if it has an impact

emmm I also want to know how to write the standard toml for forwarding IPV6

Machine translation . hopes that the author can understand my meaning

zephyrchien commented 1 year ago

实际上并不需要指定dns解析模式, 你的域名只添加了AAAA记录, 没有同时添加A记录。

请尝试用最简单的配置方式(记得加上log项,仓库里有更多配置示例可以参考), 或者直接从命令行启动:

realm -l 0.0.0.0:8080 -r {domain}:{port} --log-level=debug

不过即便自定义了dns配置,也不应该在运行时出现域名不合法的错误。因为运行前需要通过更严格的检查, remote必须能够解析为具体的地址。 运行前检查用的是c库的getaddrinfo, 而运行时解析用的是trust-dns库, 后者能支持更多的格式。

LIULIWANJIA commented 1 year ago

useing realm -l 0.0.0.0:8080 -r {domain}:{port} --log-level=debug LOGS show Label contains invalid characters: Err(Errors { invalid_mapping, disallowed_by_std3_ascii_rules

想知道其他人是否可以正常转发IPV6域(;′⌒) I want to know whether other people can normally forward IPV6 domains (; ′ -)