From 3579452856e0dfea1717de92626ca2f09ba06163 Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Thu, 13 May 2021 20:57:41 -0700 Subject: [PATCH] wgengine/netstack: add netstack port rewriting mechanism Signed-off-by: Brad Fitzpatrick --- wgengine/netstack/netstack.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/wgengine/netstack/netstack.go b/wgengine/netstack/netstack.go index a8c9aa6bd..cbd78495a 100644 --- a/wgengine/netstack/netstack.go +++ b/wgengine/netstack/netstack.go @@ -12,6 +12,7 @@ import ( "io" "log" "net" + "os" "strconv" "strings" "sync" @@ -452,6 +453,9 @@ func (ns *Impl) acceptTCP(r *tcp.ForwarderRequest) { func (ns *Impl) forwardTCP(client *gonet.TCPConn, wq *waiter.Queue, dialAddr tcpip.Address, dialPort uint16) { defer client.Close() dialAddrStr := net.JoinHostPort(dialAddr.String(), strconv.Itoa(int(dialPort))) + if alt := os.Getenv(fmt.Sprintf("TAILSCALE_INCOMING_REMAP_%s_%d", dialAddr, dialPort)); alt != "" { + dialAddrStr = alt + } ns.logf("[v2] netstack: forwarding incoming connection to %s", dialAddrStr) ctx, cancel := context.WithCancel(context.Background()) defer cancel()