diff --git a/proxy/wireguard/client.go b/proxy/wireguard/client.go index cae846077b93..16b74b9f2d5d 100644 --- a/proxy/wireguard/client.go +++ b/proxy/wireguard/client.go @@ -106,10 +106,10 @@ func NewClient(ctx context.Context, conf *DeviceConfig) (*Handler, error) { var tnet *Net if !conf.NoKernelTun && kernelTunSupported { errors.LogWarning(context.Background(), "Using kernel TUN") - tun, tnet, err = createKernelTun(localAddresses, []netip.Addr{netip.MustParseAddr("1.1.1.1"), netip.MustParseAddr("1.0.0.1"), netip.MustParseAddr("2606:4700:4700::1111"), netip.MustParseAddr("2606:4700:4700::1001")}, int(conf.Mtu)) + tun, tnet, err = createKernelTun(localAddresses, nil, int(conf.Mtu)) } else { errors.LogWarning(context.Background(), "Using gVisor TUN") - tun, tnet, _, err = CreateNetTUN(localAddresses, []netip.Addr{netip.MustParseAddr("1.1.1.1"), netip.MustParseAddr("1.0.0.1"), netip.MustParseAddr("2606:4700:4700::1111"), netip.MustParseAddr("2606:4700:4700::1001")}, int(conf.Mtu), true) + tun, tnet, _, err = CreateNetTUN(localAddresses, nil, int(conf.Mtu), true) } if err != nil { return nil, err @@ -139,13 +139,14 @@ func (h *Handler) Process(ctx context.Context, link *transport.Link, dialer inte ob.Name = "wireguard" ob.CanSpliceCopy = 3 + dialer.SetOutboundGateway(ctx, ob) if err := h.init(ctx); err != nil { return err } var addr netip.Addr if ob.Target.Address.Family().IsDomain() { - ip, err := h.resolveRemote(ob.Target.Address.String()) + ip, err := h.resolveLocal(ob.Target.Address.String()) if err != nil { return errors.New("failed to resolve domain").Base(err) } @@ -206,7 +207,7 @@ func (h *Handler) Process(ctx context.Context, link *transport.Link, dialer inte defer conn.Close() c := &udpConnClient{ PacketConn: conn.(*internet.PacketConnWrapper).PacketConn, - resolveFunc: h.resolveRemote, + resolveFunc: h.resolveLocal, dest: gonet.UDPAddrFromAddrPort(addrPort), } reader = c