chore: add persistent-keepalive for wireguard

This commit is contained in:
wwqgtxx 2022-12-13 08:35:01 +08:00
parent 1333f1fd47
commit f87144f84b

View file

@ -41,18 +41,19 @@ type WireGuard struct {
type WireGuardOption struct { type WireGuardOption struct {
BasicOption BasicOption
Name string `proxy:"name"` Name string `proxy:"name"`
Server string `proxy:"server"` Server string `proxy:"server"`
Port int `proxy:"port"` Port int `proxy:"port"`
Ip string `proxy:"ip,omitempty"` Ip string `proxy:"ip,omitempty"`
Ipv6 string `proxy:"ipv6,omitempty"` Ipv6 string `proxy:"ipv6,omitempty"`
PrivateKey string `proxy:"private-key"` PrivateKey string `proxy:"private-key"`
PublicKey string `proxy:"public-key"` PublicKey string `proxy:"public-key"`
PreSharedKey string `proxy:"pre-shared-key,omitempty"` PreSharedKey string `proxy:"pre-shared-key,omitempty"`
Reserved []int `proxy:"reserved,omitempty"` Reserved []int `proxy:"reserved,omitempty"`
Workers int `proxy:"workers,omitempty"` Workers int `proxy:"workers,omitempty"`
MTU int `proxy:"mtu,omitempty"` MTU int `proxy:"mtu,omitempty"`
UDP bool `proxy:"udp,omitempty"` UDP bool `proxy:"udp,omitempty"`
PersistentKeepalive int `proxy:"persistent-keepalive,omitempty"`
} }
type wgDialer struct { type wgDialer struct {
@ -159,6 +160,9 @@ func NewWireGuard(option WireGuardOption) (*WireGuard, error) {
if has6 { if has6 {
ipcConf += "\nallowed_ip=::/0" ipcConf += "\nallowed_ip=::/0"
} }
if option.PersistentKeepalive != 0 {
ipcConf += fmt.Sprintf("\npersistent_keepalive_interval=%d", option.PersistentKeepalive)
}
mtu := option.MTU mtu := option.MTU
if mtu == 0 { if mtu == 0 {
mtu = 1408 mtu = 1408