mirror of
https://github.com/angristan/openvpn-install.git
synced 2025-05-09 18:28:23 +02:00
Merge pull request #1 from ralphg6/feat/public-ip-function
Feat/public ip function
This commit is contained in:
commit
21be562919
@ -216,6 +216,45 @@ access-control: fd42:42:42:42::/112 allow' >>/etc/unbound/openvpn.conf
|
|||||||
systemctl restart unbound
|
systemctl restart unbound
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function resolvePublicIP() {
|
||||||
|
# IP version flags, we'll use as default the IPv4
|
||||||
|
CURL_IP_VERSION_FLAG="-4"
|
||||||
|
DIG_IP_VERSION_FLAG="-4"
|
||||||
|
|
||||||
|
# Behind NAT, we'll default to the publicly reachable IPv4/IPv6.
|
||||||
|
if [[ $IPV6_SUPPORT == "y" ]]; then
|
||||||
|
CURL_IP_VERSION_FLAG=""
|
||||||
|
DIG_IP_VERSION_FLAG="-6"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If there is no public ip yet, we'll try to solve it using: https://ip.seeip.org
|
||||||
|
if [[ -z $PUBLIC_IP ]]; then
|
||||||
|
PUBLIC_IP=$(curl -f -m 5 -sS --retry 5 --retry-connrefused $CURL_IP_VERSION_FLAG https://ip.seeip.org 2>/dev/null)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If there is no public ip yet, we'll try to solve it using: https://ifconfig.me
|
||||||
|
if [[ -z $PUBLIC_IP ]]; then
|
||||||
|
PUBLIC_IP=$(curl -f -m 5 -sS --retry 5 --retry-connrefused $CURL_IP_VERSION_FLAG https://ifconfig.me 2>/dev/null)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If there is no public ip yet, we'll try to solve it using: https://api.ipify.org
|
||||||
|
if [[ -z $PUBLIC_IP ]]; then
|
||||||
|
PUBLIC_IP=$(curl -f -m 5 -sS --retry 5 --retry-connrefused $CURL_IP_VERSION_FLAG https://api.ipify.org 2>/dev/null)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If there is no public ip yet, we'll try to solve it using: ns1.google.com
|
||||||
|
if [[ -z $PUBLIC_IP ]]; then
|
||||||
|
PUBLIC_IP=$(dig $DIG_IP_VERSION_FLAG TXT +short o-o.myaddr.l.google.com @ns1.google.com | tr -d '"')
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -z $PUBLIC_IP ]]; then
|
||||||
|
>&2 echo "Couldn't solve the public IP"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "$PUBLIC_IP"
|
||||||
|
}
|
||||||
|
|
||||||
function installQuestions() {
|
function installQuestions() {
|
||||||
echo "Welcome to the OpenVPN installer!"
|
echo "Welcome to the OpenVPN installer!"
|
||||||
echo "The git repository is available at: https://github.com/angristan/openvpn-install"
|
echo "The git repository is available at: https://github.com/angristan/openvpn-install"
|
||||||
@ -244,9 +283,12 @@ function installQuestions() {
|
|||||||
echo "It seems this server is behind NAT. What is its public IPv4 address or hostname?"
|
echo "It seems this server is behind NAT. What is its public IPv4 address or hostname?"
|
||||||
echo "We need it for the clients to connect to the server."
|
echo "We need it for the clients to connect to the server."
|
||||||
|
|
||||||
PUBLICIP=$(curl -s https://api.ipify.org)
|
if [[ -z $ENDPOINT ]]; then
|
||||||
|
DEFAULT_ENDPOINT=$(resolvePublicIP)
|
||||||
|
fi
|
||||||
|
|
||||||
until [[ $ENDPOINT != "" ]]; do
|
until [[ $ENDPOINT != "" ]]; do
|
||||||
read -rp "Public IPv4 address or hostname: " -e -i "$PUBLICIP" ENDPOINT
|
read -rp "Public IPv4 address or hostname: " -e -i "$DEFAULT_ENDPOINT" ENDPOINT
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -626,40 +668,8 @@ function installOpenVPN() {
|
|||||||
CONTINUE=${CONTINUE:-y}
|
CONTINUE=${CONTINUE:-y}
|
||||||
|
|
||||||
if [[ -z $ENDPOINT ]]; then
|
if [[ -z $ENDPOINT ]]; then
|
||||||
|
ENDPOINT=$(resolvePublicIP)
|
||||||
# IP version flags, we'll use as default the IPv4
|
|
||||||
CURL_IP_VERSION_FLAG="-4"
|
|
||||||
DIG_IP_VERSION_FLAG="-4"
|
|
||||||
|
|
||||||
# Behind NAT, we'll default to the publicly reachable IPv4/IPv6.
|
|
||||||
if [[ $IPV6_SUPPORT == "y" ]]; then
|
|
||||||
CURL_IP_VERSION_FLAG=""
|
|
||||||
DIG_IP_VERSION_FLAG="-6"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If there is no public ip yet, we'll try to solve it using: https://ip.seeip.org
|
|
||||||
if [[ -z $PUBLIC_IP ]]; then
|
|
||||||
PUBLIC_IP=$(curl -f -m 5 -sS --retry 5 --retry-connrefused $CURL_IP_VERSION_FLAG https://ip.seeip.org 2>/dev/null)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If there is no public ip yet, we'll try to solve it using: https://ifconfig.me
|
|
||||||
if [[ -z $PUBLIC_IP ]]; then
|
|
||||||
PUBLIC_IP=$(curl -f -m 5 -sS --retry 5 --retry-connrefused $CURL_IP_VERSION_FLAG https://ifconfig.me 2>/dev/null)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If there is no public ip yet, we'll try to solve it using: https://api.ipify.org
|
|
||||||
if [[ -z $PUBLIC_IP ]]; then
|
|
||||||
PUBLIC_IP=$(curl -f -m 5 -sS --retry 5 --retry-connrefused $CURL_IP_VERSION_FLAG https://api.ipify.org 2>/dev/null)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If there is no public ip yet, we'll try to solve it using: ns1.google.com
|
|
||||||
if [[ -z $PUBLIC_IP ]]; then
|
|
||||||
PUBLIC_IP=$(dig $DIG_IP_VERSION_FLAG TXT +short o-o.myaddr.l.google.com @ns1.google.com | tr -d '"')
|
|
||||||
fi
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
ENDPOINT=${ENDPOINT:-$PUBLIC_IP}
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Run setup questions first, and set other variables if auto-install
|
# Run setup questions first, and set other variables if auto-install
|
||||||
|
Loading…
x
Reference in New Issue
Block a user