mirror of
https://github.com/netbirdio/netbird.git
synced 2024-12-02 13:03:56 +01:00
5d4c2643a3
When one of the peers has a static public host IP or both peers are in the same local network we establish a direct Wireguard connection bypassing proxy usage. This helps reduce FD usage and improves performance.
35 lines
613 B
Go
35 lines
613 B
Go
package proxy
|
|
|
|
import (
|
|
"github.com/wiretrustee/wiretrustee/iface"
|
|
"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
|
|
"io"
|
|
"net"
|
|
"time"
|
|
)
|
|
|
|
const DefaultWgKeepAlive = 25 * time.Second
|
|
|
|
type Type string
|
|
|
|
const (
|
|
TypeNoProxy Type = "NoProxy"
|
|
TypeWireguard Type = "Wireguard"
|
|
TypeDummy Type = "Dummy"
|
|
)
|
|
|
|
type Config struct {
|
|
WgListenAddr string
|
|
RemoteKey string
|
|
WgInterface iface.WGIface
|
|
AllowedIps string
|
|
PreSharedKey *wgtypes.Key
|
|
}
|
|
|
|
type Proxy interface {
|
|
io.Closer
|
|
// Start creates a local remoteConn and starts proxying data from/to remoteConn
|
|
Start(remoteConn net.Conn) error
|
|
Type() Type
|
|
}
|