mirror of
https://github.com/angristan/wireguard-install.git
synced 2024-11-24 05:56:02 +03:00
Support ipv4 endpoint and ipv6 endpoint.
This commit is contained in:
parent
39caf2fcf6
commit
7ca2f61e6a
@ -109,13 +109,9 @@ function installQuestions() {
|
|||||||
echo "You can keep the default options and just press enter if you are ok with them."
|
echo "You can keep the default options and just press enter if you are ok with them."
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
# Detect public IPv4 or IPv6 address and pre-fill for the user
|
# Get public IPv4 and IPv6 address and pre-fill for the user
|
||||||
SERVER_PUB_IP=$(ip -4 addr | sed -ne 's|^.* inet \([^/]*\)/.* scope global.*$|\1|p' | awk '{print $1}' | head -1)
|
SERVER_PUB_IPv4=$(curl -4 https://ifconfig.co)
|
||||||
if [[ -z ${SERVER_PUB_IP} ]]; then
|
SERVER_PUB_IPv6=$(curl -6 https://ifconfig.co)
|
||||||
# Detect public IPv6 address
|
|
||||||
SERVER_PUB_IP=$(ip -6 addr | sed -ne 's|^.* inet6 \([^/]*\)/.* scope global.*$|\1|p' | head -1)
|
|
||||||
fi
|
|
||||||
read -rp "IPv4 or IPv6 public address: " -e -i "${SERVER_PUB_IP}" SERVER_PUB_IP
|
|
||||||
|
|
||||||
# Detect public interface and pre-fill for the user
|
# Detect public interface and pre-fill for the user
|
||||||
SERVER_NIC="$(ip -4 route ls | grep default | grep -Po '(?<=dev )(\S+)' | head -1)"
|
SERVER_NIC="$(ip -4 route ls | grep default | grep -Po '(?<=dev )(\S+)' | head -1)"
|
||||||
@ -215,7 +211,8 @@ function installWireGuard() {
|
|||||||
SERVER_PUB_KEY=$(echo "${SERVER_PRIV_KEY}" | wg pubkey)
|
SERVER_PUB_KEY=$(echo "${SERVER_PRIV_KEY}" | wg pubkey)
|
||||||
|
|
||||||
# Save WireGuard settings
|
# Save WireGuard settings
|
||||||
echo "SERVER_PUB_IP=${SERVER_PUB_IP}
|
echo "SERVER_PUB_IPv4=${SERVER_PUB_IPv4}
|
||||||
|
SERVER_PUB_IPv6=${SERVER_PUB_IPv6}
|
||||||
SERVER_PUB_NIC=${SERVER_PUB_NIC}
|
SERVER_PUB_NIC=${SERVER_PUB_NIC}
|
||||||
SERVER_WG_NIC=${SERVER_WG_NIC}
|
SERVER_WG_NIC=${SERVER_WG_NIC}
|
||||||
SERVER_WG_IPV4=${SERVER_WG_IPV4}
|
SERVER_WG_IPV4=${SERVER_WG_IPV4}
|
||||||
@ -282,13 +279,15 @@ net.ipv6.conf.all.forwarding = 1" >/etc/sysctl.d/wg.conf
|
|||||||
}
|
}
|
||||||
|
|
||||||
function newClient() {
|
function newClient() {
|
||||||
# If SERVER_PUB_IP is IPv6, add brackets if missing
|
until [[ "${ENDPOINT_TYPE}" == "ipv4" || "${ENDPOINT_TYPE}" == "ipv6" ]]; do
|
||||||
if [[ ${SERVER_PUB_IP} =~ .*:.* ]]; then
|
read -rp "ENDPOINT_TYPE(only support ipv4 or ipv6 input): " -e -i ipv4 ENDPOINT_TYPE
|
||||||
if [[ ${SERVER_PUB_IP} != *"["* ]] || [[ ${SERVER_PUB_IP} != *"]"* ]]; then
|
done
|
||||||
SERVER_PUB_IP="[${SERVER_PUB_IP}]"
|
|
||||||
|
if [[ ${ENDPOINT_TYPE} == "ipv4" ]]; then
|
||||||
|
ENDPOINT="${SERVER_PUB_IPv4}:${SERVER_PORT}"
|
||||||
|
else
|
||||||
|
ENDPOINT="[${SERVER_PUB_IPv6}]:${SERVER_PORT}"
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
ENDPOINT="${SERVER_PUB_IP}:${SERVER_PORT}"
|
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "Client configuration"
|
echo "Client configuration"
|
||||||
@ -362,7 +361,8 @@ DNS = ${CLIENT_DNS_1},${CLIENT_DNS_2}
|
|||||||
PublicKey = ${SERVER_PUB_KEY}
|
PublicKey = ${SERVER_PUB_KEY}
|
||||||
PresharedKey = ${CLIENT_PRE_SHARED_KEY}
|
PresharedKey = ${CLIENT_PRE_SHARED_KEY}
|
||||||
Endpoint = ${ENDPOINT}
|
Endpoint = ${ENDPOINT}
|
||||||
AllowedIPs = ${ALLOWED_IPS}" >"${HOME_DIR}/${SERVER_WG_NIC}-client-${CLIENT_NAME}.conf"
|
AllowedIPs = ${ALLOWED_IPS}
|
||||||
|
PersistentKeepalive = 25" >"${HOME_DIR}/${SERVER_WG_NIC}-client-${CLIENT_NAME}.conf"
|
||||||
|
|
||||||
# Add the client as a peer to the server
|
# Add the client as a peer to the server
|
||||||
echo -e "\n### Client ${CLIENT_NAME}
|
echo -e "\n### Client ${CLIENT_NAME}
|
||||||
|
Loading…
Reference in New Issue
Block a user