Giter Club home page Giter Club logo

Comments (20)

heiher avatar heiher commented on May 18, 2024

内核监听的端口没有办法远程打开reuse port,使用防火墙的DNAT或natmap的应用层转发。

from natmap.

heiher avatar heiher commented on May 18, 2024

或者试试先跑natmap打洞,然后再启动wireguard。

from natmap.

kwxiaozhu avatar kwxiaozhu commented on May 18, 2024

或者试试先跑natmap打洞,然后再启动wireguard。

不行,先打洞,再启动wireguard提示端口占用,启动不了,只能试试用户态的wireguard-go看看吧,再不行就只能用转发了

很好用的软件,我现在用的笨办法,通过调用脚本把IP和端口发到远程服务器,访问远程服务器获取IP和端口,再配置到应用里面,如果能有更好的办法就好了。

from natmap.

heiher avatar heiher commented on May 18, 2024

或者试试先跑natmap打洞,然后再启动wireguard。

不行,先打洞,再启动wireguard提示端口占用,启动不了,只能试试用户态的wireguard-go看看吧,再不行就只能用转发了

优先用防火墙的端口转发(DNAT),几乎是零开销的,实在不行再用应用层转发。

很好用的软件,我现在用的笨办法,通过调用脚本把IP和端口发到远程服务器,访问远程服务器获取IP和端口,再配置到应用里面,如果能有更好的办法就好了。

我是使用域名通过DNS分发IP和端口的,脚本参数[3]给出了IP4P的值,在脚本中写到域名的AAAA记录里。客户端侧试试修改代码增加IP4P的支持(可参考 [1])。或者写个脚本启动器先解析域名得到AAAA地址再转换为IPv4和端口,启动客户端。

[1] https://github.com/heiher/hev-fsh/blob/master/src/hev-fsh-config.c#L433-L444

from natmap.

kwxiaozhu avatar kwxiaozhu commented on May 18, 2024

或者试试先跑natmap打洞,然后再启动wireguard。

不行,先打洞,再启动wireguard提示端口占用,启动不了,只能试试用户态的wireguard-go看看吧,再不行就只能用转发了

优先用防火墙的端口转发(DNAT),几乎是零开销的,实在不行再用应用层转发。

很好用的软件,我现在用的笨办法,通过调用脚本把IP和端口发到远程服务器,访问远程服务器获取IP和端口,再配置到应用里面,如果能有更好的办法就好了。

我是使用域名通过DNS分发IP和端口的,脚本参数[3]给出了IP4P的值,在脚本中写到域名的AAAA记录里。客户端侧试试修改代码增加IP4P的支持(可参考 [1])。或者写个脚本启动器先解析域名得到AAAA地址再转换为IPv4和端口,启动客户端。

[1] https://github.com/heiher/hev-fsh/blob/master/src/hev-fsh-config.c#L433-L444

谢谢回复,我现在在用手机端的wireguard客户端,暂时没有能力修改代码或写个前置的启动器解析域名获取IP和端口,先暂时这样用了,试用这几天只要PPPOE不断开重新拨号,IP和端口基本是固定的,设置一次可以用个几天

from natmap.

heiher avatar heiher commented on May 18, 2024

增加了IP4P地址格式支持的WireGuard Android客户端: https://github.com/heiher/wireguard-android/releases

在natmap的脚本中将UDP映射后的IP4P地址更新到DDNS域名的AAAA记录中后,使用这个WireGuard Android客户端,Peer地址写为 domain:0

from natmap.

kwxiaozhu avatar kwxiaozhu commented on May 18, 2024

增加了IP4P地址格式支持的WireGuard Android客户端: https://github.com/heiher/wireguard-android/releases

在natmap的脚本中将UDP映射后的IP4P地址更新到DDNS域名的AAAA记录中后,使用这个WireGuard Android客户端,Peer地址写为 domain:0

太6了!不过似乎有点小BUG,填写解析IP4P的DDNS域名:0 后,貌似解析的端口出错了,IPv4地址解析正确,端口解析为-48了,另外是否可以支持直接输入IP4P地址,方便调试,谢谢大佬!!!

from natmap.

heiher avatar heiher commented on May 18, 2024

哈哈,Java不合格,我改一下,把byte当成unsigned了。 😵‍💫

from natmap.

heiher avatar heiher commented on May 18, 2024

Done: https://github.com/heiher/wireguard-android/releases/

from natmap.

kwxiaozhu avatar kwxiaozhu commented on May 18, 2024

经过测试完全正常使用,感谢大佬极速的响应,这个工具又多了一个实用的方案👍因为无法打洞wireguard内核监听的端口,也就没法直接在软路由上部署wireguard,所以目前的方案是用pve开了个小虚拟机上跑wireguard设置好防火墙,再在软路由上用natmap打洞转发,测试正常,再次感谢大佬👍👍

from natmap.

heiher avatar heiher commented on May 18, 2024

感觉有更简便的方法:

方法一:软路由上端口50001跑内核监听的wireguard,端口50002跑natmap打洞(绑定模式),软路由上配置防火墙端口转发,把wan口上目的端口50002转至软路由lan口ip的50001。

方法二:软路由上端口50001跑内核监听的wireguard,端口50002跑natmap打洞(转发模式),并通过参数 -t 127.0.0.1 -p 50001,应用层转发。

方法一开销比方法二小,方法二不用配防火墙灵活。

from natmap.

kwxiaozhu avatar kwxiaozhu commented on May 18, 2024

确实,没想到这个办法,试试方法一,之前设置防火墙DNAT转发没成功,目前用的都是natmap应用层转发,再找找原因,感谢

from natmap.

kwxiaozhu avatar kwxiaozhu commented on May 18, 2024

发现一个尴尬的问题,我的目标是在任何有外网的环境下通过wireguard连回家,但是有些路由器的DNS服务器不支持解析AAAA记录,也就是说不能解析IP4P的域名了,并且一般支持解析IPV6域名的一般都支持IPV6通信,这样我不如直接用IPV6连接了。要解决可能需要直接查询支持AAAA的DNS服务器,不用系统默认DNS ,我看了您魔改的Wireguard客户端,要实现可能稍微有点麻烦,https://github.com/heiher/wireguard-android/blob/b14d7d9557cdd8a029a3419d5b2a4d50a77fdb6f/tunnel/src/main/java/com/wireguard/config/InetEndpoint.java#L100
final InetAddress[] candidates = InetAddress.getAllByName(host);
这里不用系统默认DNS解析,改成内置固定支持AAAA解析的DNS服务器解析,我不会JAVA,不知道实现起来麻烦不。

from natmap.

heiher avatar heiher commented on May 18, 2024

什么DNS不支持解析AAAA记录?我这无IPv6的环境也可以正常使用的,技术原理上解析AAAA记录也没有要求系统必须配置了IPv6。

from natmap.

kwxiaozhu avatar kwxiaozhu commented on May 18, 2024

是的,一些比较老的不支持IPV6的路由器,用路由器默认DNS比如192.168.1.1之类的,nslookup 解析不到AAAA的记录,我明天再找环境试试,刚才试了邻居的网络TL-WR886N路由器,不支持IPV6,DNS解析不到AAAA记录,可能环境比较小众,我再测试看看吧

from natmap.

heiher avatar heiher commented on May 18, 2024

好的,看看有没有自定义DNS的方法。目前明确公共DNS,比如114.114.114.114、223.5.5.5、8.8.8.8都是支持的。

from natmap.

kwxiaozhu avatar kwxiaozhu commented on May 18, 2024

可以了,刚才可能是手机有问题,VPN关掉重新打开可以了,可能是刚才连接失败后VPN的状态一直没变过来。不过确实有些路由器的DNS不支持解析AAAA,比如DNSMASQ就可以设置丢弃IPv6的解析记录,如果能自定义DNS就更好了,环境比较小众,如果麻烦就不用费劲了,感谢

from natmap.

heiher avatar heiher commented on May 18, 2024

运营商的4G、5G网络的DNS肯定是支持的;如果WIFI网络遇到不支持的,不如改一下网络连接里的DNS地址简单一些。

from natmap.

kwxiaozhu avatar kwxiaozhu commented on May 18, 2024

是的,我也发现了,如果用WiFi连不上,就切到流量连接后再开启WiFi就行了,这样更简单

from natmap.

heiher avatar heiher commented on May 18, 2024

哈哈,机智~

from natmap.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.