Browse Source

Make MTU and PersistentKeepalive optional (#123)

pull/124/head
Khanh Ngo 1 week ago
committed by GitHub
parent
commit
2d9eeb08e8
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 22
      templates/base.html
  2. 39
      templates/global_settings.html
  3. 2
      templates/wg.conf
  4. 7
      util/util.go

22
templates/base.html

@ -44,17 +44,17 @@
</ul>
<!-- SEARCH FORM -->
<form class="form-inline ml-3">
<div class="input-group input-group-sm">
<input class="form-control form-control-navbar" type="search" placeholder="Search"
aria-label="Search">
<div class="input-group-append">
<button class="btn btn-navbar" type="submit">
<i class="fas fa-search"></i>
</button>
</div>
</div>
</form>
<!-- <form class="form-inline ml-3">-->
<!-- <div class="input-group input-group-sm">-->
<!-- <input class="form-control form-control-navbar" type="search" placeholder="Search"-->
<!-- aria-label="Search">-->
<!-- <div class="input-group-append">-->
<!-- <button class="btn btn-navbar" type="submit">-->
<!-- <i class="fas fa-search"></i>-->
<!-- </button>-->
<!-- </div>-->
<!-- </div>-->
<!-- </form>-->
<!-- Right navbar links -->
<div class="navbar-nav ml-auto">

39
templates/global_settings.html

@ -47,13 +47,13 @@ Global Settings
<div class="form-group">
<label for="mtu">MTU</label>
<input type="text" class="form-control" id="mtu" name="mtu" placeholder="MTU"
value="{{ .globalSettings.MTU }}">
value="{{if .globalSettings.MTU}}{{ .globalSettings.MTU }}{{end}}">
</div>
<div class="form-group">
<label for="persistent_keepalive">Persistent Keepalive</label>
<input type="text" class="form-control" id="persistent_keepalive"
name="persistent_keepalive" placeholder="Persistent Keepalive"
value="{{ .globalSettings.PersistentKeepalive }}">
value="{{if .globalSettings.PersistentKeepalive }}{{ .globalSettings.PersistentKeepalive }}{{end}}">
</div>
<div class="form-group">
<label for="config_file_path">Wireguard Config File Path</label>
@ -71,6 +71,37 @@ Global Settings
</div>
<!-- /.card -->
</div>
<div class="col-md-6">
<div class="card card-success">
<div class="card-header">
<h3 class="card-title">Help</h3>
</div>
<!-- /.card-header -->
<div class="card-body">
<dl>
<dt>1. Endpoint Address</dt>
<dd>The public IP address of your Wireguard server that the client will connect to. Click on
<strong>Suggest</strong> button to auto detect the public IP address of your server.</dd>
<dt>2. DNS Servers</dt>
<dd>The DNS servers will be set to client config.</dd>
<dt>3. MTU</dt>
<dd>The MTU will be set to server config. By default it is <code>1420</code>. You might want
to adjust the MTU size if your connection (e.g PPPoE, 3G, satellite network, etc) has a low MTU.</dd>
<dd>Leave blank to omit this setting in the Server config.</dd>
<dt>4. Persistent Keepalive</dt>
<dd>By default, WireGuard peers remain silent while they do not need to communicate,
so peers located behind a NAT and/or firewall may be unreachable from other peers
until they reach out to other peers themselves. Adding <code>PersistentKeepalive</code>
can ensure that the connection remains open.</dd>
<dd>Leave blank to omit this setting in the Client config.</dd>
<dt>5. Wireguard Config File Path</dt>
<dd>The path of your Wireguard server config file. Please make sure the parent directory
exists and is writable.</dd>
</dl>
</div>
</div>
<!-- /.card -->
</div>
</div>
<!-- /.row -->
</div>
@ -172,12 +203,10 @@ Global Settings
$("#frm_global_settings").validate({
rules: {
mtu: {
required: true,
digits: true,
range: [68, 65535]
},
persistent_keepalive: {
required: true,
digits: true
},
config_file_path: {
@ -186,12 +215,10 @@ Global Settings
},
messages: {
mtu: {
required: "Please enter a MTU value",
digits: "MTU must be an integer",
range: "MTU must be in range 68..65535"
},
persistent_keepalive: {
required: "Please enter a Persistent Keepalive value",
digits: "Persistent keepalive must be an integer"
},
config_file_path: {

2
templates/wg.conf

@ -7,7 +7,7 @@
Address = {{$first :=true}}{{range .serverConfig.Interface.Addresses }}{{if $first}}{{$first = false}}{{else}},{{end}}{{.}}{{end}}
ListenPort = {{ .serverConfig.Interface.ListenPort }}
PrivateKey = {{ .serverConfig.KeyPair.PrivateKey }}
MTU = {{ .globalSettings.MTU }}
{{if .globalSettings.MTU}}MTU = {{ .globalSettings.MTU }}{{end}}
PostUp = {{ .serverConfig.Interface.PostUp }}
PostDown = {{ .serverConfig.Interface.PostDown }}

7
util/util.go

@ -41,12 +41,15 @@ func BuildClientConfig(client model.Client, server model.Server, setting model.G
if n, err := strconv.Atoi(split[1]); err == nil {
desiredPort = n
} else {
log.Error("Endpoint appears to be incorrectly formated: ", err)
log.Error("Endpoint appears to be incorrectly formatted: ", err)
}
}
peerEndpoint := fmt.Sprintf("Endpoint = %s:%d", desiredHost, desiredPort)
peerPersistentKeepalive := fmt.Sprintf("PersistentKeepalive = %d", setting.PersistentKeepalive)
peerPersistentKeepalive := ""
if setting.PersistentKeepalive > 0 {
peerPersistentKeepalive = fmt.Sprintf("PersistentKeepalive = %d", setting.PersistentKeepalive)
}
// build the config as string
strConfig := "[Interface]\n" +

Loading…
Cancel
Save