_(Local endpoint)_:
-: :
-
- _(Remark)_: _(configure your router with port forwarding of port)_ **=_var($wg0,'ListenPort:0')?:_var($netport,'wg0')?>/_(UDP)_** _(to)_ **=$server?>:=_var($wg0,'ListenPort:0')?:_var($netport,'wg0')?>**
-
+:
+
+ :
+
+
+ _(Remark)_: _(configure your router with port forwarding of port)_ **=_var($wg0,'ListenPort:0')?:_var($netport,'wg0')?>/_(UDP)_** _(to)_ **=$server?>:=_var($wg0,'ListenPort:0')?:_var($netport,'wg0')?>**
+
+
+
:wg_local_endpoint_help:
_(Local server uses NAT)_:
-:
+:
=mk_option(_var($wg0,'NAT:0'), "", _("Yes"))?>
=mk_option(_var($wg0,'NAT:0'), "no", _("No"))?>
-
- _(Remark)_: _(configure your router with a static route of)_ **=_var($wg0,'Network:0')?>** _(to)_ **=$server?>**_(Remark)_: _(docker containers on custom networks need static routing)_ **=_var($wg0,'Network:0')?>** _(to)_ **=$server?>**
+
+ _(Remark)_: _(configure your router with a static route of)_ **=_var($wg0,'Network:0')?>** _(to)_ **=$server?>**
+ _(Remark)_: _(docker containers on custom networks need static routing)_ **=_var($wg0,'Network:0')?>** _(to)_ **=$server?>**
:wg_local_server_uses_nat_help:
:wg_peer_tunnel_address_help:
_(Peer endpoint)_:
-
-: " pattern="=$validText?>" title="_(IP address or FQDN)_" onchange="toLC(this);quickValidate(this);" =($vpn_wg0||(int)_var($wg0,"TYPE:$i",0)==2||(int)_var($wg0,"TYPE:$i",0)==3)?'placeholder="(_(mandatory)_)" required':'placeholder="(_(not used)_)"'?>>:
- " onchange="quickValidate(this);"=isset($wg0["Endpoint:$i"])?" placeholder=\"".(_var($wg0,'ListenPort:0')?:_var($netport,'wg0'))."\"":""?>>
- >
+:
+
+ " pattern="=$validText?>" title="_(IP address or FQDN)_" onchange="toLC(this);quickValidate(this);" =($vpn_wg0||(int)_var($wg0,"TYPE:$i",0)==2||(int)_var($wg0,"TYPE:$i",0)==3)?'placeholder="(_(mandatory)_)" required':'placeholder="(_(not used)_)"'?>>
+ :
+ " onchange="quickValidate(this);"=isset($wg0["Endpoint:$i"])?" placeholder=\"".(_var($wg0,'ListenPort:0')?:_var($netport,'wg0'))."\"":""?>>
+
+
+ >
+
:wg_peer_endpoint_help:
_(Peer allowed IPs)_:
-: " onchange="quickValidate(this);" pattern="=$validList?>" title="_(Comma separated list of IPv4 and IPv6 IP addresses)_, _(CIDR optional)_" placeholder="(_(mandatory)_)" required>
+: " onchange="quickValidate(this);" pattern="=$validList?>" title="_(Comma separated list of IPv4 and IPv6 IP addresses)_, _(CIDR optional)_" placeholder="(_(mandatory)_)" required>
:wg_peer_allowed_ips_help:
_(Peer DNS server)_:
-: " onchange="quickValidate(this);" pattern="=$validDNSServerList?>" title="_(Comma separated list of IPv4 and IPv6 IP addresses)_" =(int)_var($wg0,"TYPE:$i",0)!=6?'placeholder="(_(optional)_)"':'placeholder="(_(mandatory)_)" required'?>>
+: " onchange="quickValidate(this);" pattern="=$validDNSServerList?>" title="_(Comma separated list of IPv4 and IPv6 IP addresses)_" =(int)_var($wg0,"TYPE:$i",0)!=6?'placeholder="(_(optional)_)"':'placeholder="(_(mandatory)_)" required'?>>
:wg_peer_dns_server_help:
_(Persistent keepalive)_:
-: " onchange="quickValidate(this);" placeholder="(_(disabled)_)">_(seconds)_
+:
+ " onchange="quickValidate(this);" placeholder="(_(disabled)_)">
+ _(seconds)_
+
:wg_persistent_keepalive_help:
+
+_(Data received)_:
+: 0 B
+
+_(Data sent)_:
+: 0 B
+
+_(Last handshake)_:
+: _(unknown)_
-_(Data received)_: 0 B_(Data sent)_: 0 B _(Last handshake)_: _(unknown)_
@@ -1483,20 +1544,23 @@ _(Persistent keepalive)_:
>
-"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld