diff --git a/README.md b/README.md index 62eef0d..cfa9d51 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,7 @@ docker-compose up | `WGUI_MTU` | The default MTU used in global settings | `1450` | | `WGUI_PERSISTENT_KEEPALIVE` | The default persistent keepalive for WireGuard in global settings | `15` | | `WGUI_FIREWALL_MARK` | The default WireGuard firewall mark | `0xca6c` (51820) | +| `WGUI_TABLE` | The default WireGuard table value settings | `auto` | | `WGUI_CONFIG_FILE_PATH` | The default WireGuard config file path used in global settings | `/etc/wireguard/wg0.conf` | | `WGUI_LOG_LEVEL` | The default log level. Possible values: `DEBUG`, `INFO`, `WARN`, `ERROR`, `OFF` | `INFO` | | `WG_CONF_TEMPLATE` | The custom `wg.conf` config file template. Please refer to our [default template](https://github.com/ngoduykhanh/wireguard-ui/blob/master/templates/wg.conf) | N/A | diff --git a/model/setting.go b/model/setting.go index a702293..c9e152c 100644 --- a/model/setting.go +++ b/model/setting.go @@ -11,6 +11,7 @@ type GlobalSetting struct { MTU int `json:"mtu,string"` PersistentKeepalive int `json:"persistent_keepalive,string"` FirewallMark string `json:"firewall_mark"` + Table string `json:"table"` ConfigFilePath string `json:"config_file_path"` UpdatedAt time.Time `json:"updated_at"` } diff --git a/store/jsondb/jsondb.go b/store/jsondb/jsondb.go index f95ff16..cb831ca 100644 --- a/store/jsondb/jsondb.go +++ b/store/jsondb/jsondb.go @@ -102,6 +102,7 @@ func (o *JsonDB) Init() error { globalSetting.MTU = util.LookupEnvOrInt(util.MTUEnvVar, util.DefaultMTU) globalSetting.PersistentKeepalive = util.LookupEnvOrInt(util.PersistentKeepaliveEnvVar, util.DefaultPersistentKeepalive) globalSetting.FirewallMark = util.LookupEnvOrString(util.FirewallMarkEnvVar, util.DefaultFirewallMark) + globalSetting.Table = util.LookupEnvOrString(util.TableEnvVar, util.DefaultTable) globalSetting.ConfigFilePath = util.LookupEnvOrString(util.ConfigFilePathEnvVar, util.DefaultConfigFilePath) globalSetting.UpdatedAt = time.Now().UTC() o.conn.Write("server", "global_settings", globalSetting) diff --git a/templates/global_settings.html b/templates/global_settings.html index 15d7b4b..cafb630 100644 --- a/templates/global_settings.html +++ b/templates/global_settings.html @@ -61,6 +61,12 @@ Global Settings name="firewall_mark" placeholder="Firewall Mark" value="{{ .globalSettings.FirewallMark }}"> +
+ + +
Leave blank to omit this setting in the Client config.
5. Firewall Mark
Add a matching fwmark on all packets going out of a WireGuard non-default-route tunnel. Default value: 0xca6c
-
6. Wireguard Config File Path
+
6. Table
+
Value for the Table setting in the wg conf file. Default value: auto
+
7. Wireguard Config File Path
The path of your Wireguard server config file. Please make sure the parent directory exists and is writable.
@@ -150,8 +158,9 @@ Global Settings const mtu = $("#mtu").val(); const persistent_keepalive = $("#persistent_keepalive").val(); const firewall_mark = $("#firewall_mark").val(); + const table = $("#table").val(); const config_file_path = $("#config_file_path").val(); - const data = {"endpoint_address": endpoint_address, "dns_servers": dns_servers, "mtu": mtu, "persistent_keepalive": persistent_keepalive, "firewall_mark": firewall_mark, "config_file_path": config_file_path}; + const data = {"endpoint_address": endpoint_address, "dns_servers": dns_servers, "mtu": mtu, "persistent_keepalive": persistent_keepalive, "firewall_mark": firewall_mark, "table": table, "config_file_path": config_file_path}; $.ajax({ cache: false, @@ -224,6 +233,9 @@ Global Settings }, firewall_mark: { required: false + }, + table: { + required: false } }, messages: { diff --git a/templates/wg.conf b/templates/wg.conf index 745a92f..81893a8 100644 --- a/templates/wg.conf +++ b/templates/wg.conf @@ -10,6 +10,7 @@ PrivateKey = {{ .serverConfig.KeyPair.PrivateKey }} {{if .globalSettings.MTU}}MTU = {{ .globalSettings.MTU }}{{end}} PostUp = {{ .serverConfig.Interface.PostUp }} PostDown = {{ .serverConfig.Interface.PostDown }} +Table = {{ .globalSettings.Table }} {{range .clientDataList}}{{if eq .Client.Enabled true}} # ID: {{ .Client.ID }} diff --git a/util/config.go b/util/config.go index 7a95f97..3c3bd18 100644 --- a/util/config.go +++ b/util/config.go @@ -31,6 +31,7 @@ const ( DefaultMTU = 1450 DefaultPersistentKeepalive = 15 DefaultFirewallMark = "0xca6c" // i.e. 51820 + DefaultTable = "auto" DefaultConfigFilePath = "/etc/wireguard/wg0.conf" UsernameEnvVar = "WGUI_USERNAME" PasswordEnvVar = "WGUI_PASSWORD" @@ -41,6 +42,7 @@ const ( MTUEnvVar = "WGUI_MTU" PersistentKeepaliveEnvVar = "WGUI_PERSISTENT_KEEPALIVE" FirewallMarkEnvVar = "WGUI_FIREWALL_MARK" + TableEnvVar = "WGUI_TABLE" ConfigFilePathEnvVar = "WGUI_CONFIG_FILE_PATH" LogLevel = "WGUI_LOG_LEVEL" ServerAddressesEnvVar = "WGUI_SERVER_INTERFACE_ADDRESSES"