Improve IP check
- Instead of finding the server's public IP, use the IP address on the default route if it is not a private IP. This makes VPN setup slightly faster by skipping IP detection. - Add a fallback URL for finding the server's public IP. - Cleanup
This commit is contained in:
parent
6ba4618351
commit
32faed40d5
@ -862,7 +862,7 @@ To customize IKEv2 or client options, run this script without arguments.
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
PUBLIC_IP=$(dig @resolver1.opendns.com -t A -4 myip.opendns.com +short)
|
PUBLIC_IP=$(dig @resolver1.opendns.com -t A -4 myip.opendns.com +short)
|
||||||
[ -z "$PUBLIC_IP" ] && PUBLIC_IP=$(wget -t 3 -T 15 -qO- http://ipv4.icanhazip.com)
|
[ -z "$PUBLIC_IP" ] && PUBLIC_IP=$(wget -t 2 -T 10 -qO- http://ipv4.icanhazip.com)
|
||||||
printf '%s\n' "$PUBLIC_IP"
|
printf '%s\n' "$PUBLIC_IP"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -864,7 +864,7 @@ View example steps for manually configuring IKEv2 with Libreswan.
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
PUBLIC_IP=$(dig @resolver1.opendns.com -t A -4 myip.opendns.com +short)
|
PUBLIC_IP=$(dig @resolver1.opendns.com -t A -4 myip.opendns.com +short)
|
||||||
[ -z "$PUBLIC_IP" ] && PUBLIC_IP=$(wget -t 3 -T 15 -qO- http://ipv4.icanhazip.com)
|
[ -z "$PUBLIC_IP" ] && PUBLIC_IP=$(wget -t 2 -T 10 -qO- http://ipv4.icanhazip.com)
|
||||||
printf '%s\n' "$PUBLIC_IP"
|
printf '%s\n' "$PUBLIC_IP"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -107,19 +107,30 @@ get_server_address() {
|
|||||||
|
|
||||||
show_welcome() {
|
show_welcome() {
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
Welcome! Use this script to change this IKEv2 VPN server's address. A new server
|
Welcome! Use this script to change this IKEv2 VPN server's address.
|
||||||
certificate will be generated if necessary.
|
A new server certificate will be generated if necessary.
|
||||||
|
|
||||||
Current server address: $server_addr_old
|
Current server address: $server_addr_old
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get_default_ip() {
|
||||||
|
def_ip=$(ip -4 route get 1 | sed 's/ uid .*//' | awk '{print $NF;exit}' 2>/dev/null)
|
||||||
|
if check_ip "$def_ip" \
|
||||||
|
&& ! printf '%s' "$def_ip" | grep -Eq '^(10|127|172\.(1[6-9]|2[0-9]|3[0-1])|192\.168|169\.254)\.'; then
|
||||||
|
public_ip="$def_ip"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
get_server_ip() {
|
get_server_ip() {
|
||||||
bigecho "Trying to auto discover IP of this server..."
|
bigecho "Trying to auto discover IP of this server..."
|
||||||
public_ip=${VPN_PUBLIC_IP:-''}
|
public_ip=${VPN_PUBLIC_IP:-''}
|
||||||
|
check_ip "$public_ip" || get_default_ip
|
||||||
|
check_ip "$public_ip" && return 0
|
||||||
check_ip "$public_ip" || public_ip=$(dig @resolver1.opendns.com -t A -4 myip.opendns.com +short)
|
check_ip "$public_ip" || public_ip=$(dig @resolver1.opendns.com -t A -4 myip.opendns.com +short)
|
||||||
check_ip "$public_ip" || public_ip=$(wget -t 3 -T 15 -qO- http://ipv4.icanhazip.com)
|
check_ip "$public_ip" || public_ip=$(wget -t 2 -T 10 -qO- http://ipv4.icanhazip.com)
|
||||||
|
check_ip "$public_ip" || public_ip=$(wget -t 2 -T 10 -qO- http://ip1.dynupdate.no-ip.com)
|
||||||
}
|
}
|
||||||
|
|
||||||
enter_server_address() {
|
enter_server_address() {
|
||||||
|
@ -157,7 +157,7 @@ confirm_or_abort() {
|
|||||||
show_header() {
|
show_header() {
|
||||||
cat <<'EOF'
|
cat <<'EOF'
|
||||||
|
|
||||||
IKEv2 Script Copyright (c) 2020-2022 Lin Song 10 Sept 2022
|
IKEv2 Script Copyright (c) 2020-2022 Lin Song 24 Sept 2022
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
@ -361,11 +361,22 @@ get_export_dir() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get_default_ip() {
|
||||||
|
def_ip=$(ip -4 route get 1 | sed 's/ uid .*//' | awk '{print $NF;exit}' 2>/dev/null)
|
||||||
|
if check_ip "$def_ip" \
|
||||||
|
&& ! printf '%s' "$def_ip" | grep -Eq '^(10|127|172\.(1[6-9]|2[0-9]|3[0-1])|192\.168|169\.254)\.'; then
|
||||||
|
public_ip="$def_ip"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
get_server_ip() {
|
get_server_ip() {
|
||||||
bigecho2 "Trying to auto discover IP of this server..."
|
bigecho2 "Trying to auto discover IP of this server..."
|
||||||
public_ip=${VPN_PUBLIC_IP:-''}
|
public_ip=${VPN_PUBLIC_IP:-''}
|
||||||
|
check_ip "$public_ip" || get_default_ip
|
||||||
|
check_ip "$public_ip" && return 0
|
||||||
check_ip "$public_ip" || public_ip=$(dig @resolver1.opendns.com -t A -4 myip.opendns.com +short)
|
check_ip "$public_ip" || public_ip=$(dig @resolver1.opendns.com -t A -4 myip.opendns.com +short)
|
||||||
check_ip "$public_ip" || public_ip=$(wget -t 3 -T 15 -qO- http://ipv4.icanhazip.com)
|
check_ip "$public_ip" || public_ip=$(wget -t 2 -T 10 -qO- http://ipv4.icanhazip.com)
|
||||||
|
check_ip "$public_ip" || public_ip=$(wget -t 2 -T 10 -qO- http://ip1.dynupdate.no-ip.com)
|
||||||
}
|
}
|
||||||
|
|
||||||
get_server_address() {
|
get_server_address() {
|
||||||
@ -1317,7 +1328,7 @@ EOF
|
|||||||
check_swan_update() {
|
check_swan_update() {
|
||||||
base_url="https://github.com/hwdsl2/vpn-extras/releases/download/v1.0.0"
|
base_url="https://github.com/hwdsl2/vpn-extras/releases/download/v1.0.0"
|
||||||
swan_ver_url="$base_url/upg-$os_type-$os_ver-swanver"
|
swan_ver_url="$base_url/upg-$os_type-$os_ver-swanver"
|
||||||
swan_ver_latest=$(wget -t 3 -T 15 -qO- "$swan_ver_url" | head -n 1)
|
swan_ver_latest=$(wget -t 2 -T 10 -qO- "$swan_ver_url" | head -n 1)
|
||||||
if printf '%s' "$swan_ver_latest" | grep -Eq '^([3-9]|[1-9][0-9]{1,2})(\.([0-9]|[1-9][0-9]{1,2})){1,2}$' \
|
if printf '%s' "$swan_ver_latest" | grep -Eq '^([3-9]|[1-9][0-9]{1,2})(\.([0-9]|[1-9][0-9]{1,2})){1,2}$' \
|
||||||
&& [ -n "$swan_ver" ] && [ "$swan_ver" != "$swan_ver_latest" ] \
|
&& [ -n "$swan_ver" ] && [ "$swan_ver" != "$swan_ver_latest" ] \
|
||||||
&& printf '%s\n%s' "$swan_ver" "$swan_ver_latest" | sort -C -V; then
|
&& printf '%s\n%s' "$swan_ver" "$swan_ver_latest" | sort -C -V; then
|
||||||
|
@ -265,7 +265,7 @@ run_setup() {
|
|||||||
if tmpdir=$(mktemp --tmpdir -d vpn.XXXXX 2>/dev/null); then
|
if tmpdir=$(mktemp --tmpdir -d vpn.XXXXX 2>/dev/null); then
|
||||||
if ( set -x; wget -t 3 -T 30 -q -O "$tmpdir/vpn.sh" "$setup_url1" \
|
if ( set -x; wget -t 3 -T 30 -q -O "$tmpdir/vpn.sh" "$setup_url1" \
|
||||||
|| wget -t 3 -T 30 -q -O "$tmpdir/vpn.sh" "$setup_url2" \
|
|| wget -t 3 -T 30 -q -O "$tmpdir/vpn.sh" "$setup_url2" \
|
||||||
|| curl -fsL "$setup_url1" -o "$tmpdir/vpn.sh" 2>/dev/null ); then
|
|| curl -m 30 -fsL "$setup_url1" -o "$tmpdir/vpn.sh" 2>/dev/null ); then
|
||||||
VPN_IPSEC_PSK="$VPN_IPSEC_PSK" VPN_USER="$VPN_USER" \
|
VPN_IPSEC_PSK="$VPN_IPSEC_PSK" VPN_USER="$VPN_USER" \
|
||||||
VPN_PASSWORD="$VPN_PASSWORD" \
|
VPN_PASSWORD="$VPN_PASSWORD" \
|
||||||
VPN_PUBLIC_IP="$VPN_PUBLIC_IP" VPN_L2TP_NET="$VPN_L2TP_NET" \
|
VPN_PUBLIC_IP="$VPN_PUBLIC_IP" VPN_L2TP_NET="$VPN_L2TP_NET" \
|
||||||
|
@ -161,7 +161,7 @@ run_setup() {
|
|||||||
if tmpdir=$(mktemp --tmpdir -d vpn.XXXXX 2>/dev/null); then
|
if tmpdir=$(mktemp --tmpdir -d vpn.XXXXX 2>/dev/null); then
|
||||||
if ( set -x; wget -t 3 -T 30 -q -O "$tmpdir/vpnup.sh" "$setup_url1" \
|
if ( set -x; wget -t 3 -T 30 -q -O "$tmpdir/vpnup.sh" "$setup_url1" \
|
||||||
|| wget -t 3 -T 30 -q -O "$tmpdir/vpnup.sh" "$setup_url2" \
|
|| wget -t 3 -T 30 -q -O "$tmpdir/vpnup.sh" "$setup_url2" \
|
||||||
|| curl -fsL "$setup_url1" -o "$tmpdir/vpnup.sh" 2>/dev/null ); then
|
|| curl -m 30 -fsL "$setup_url1" -o "$tmpdir/vpnup.sh" 2>/dev/null ); then
|
||||||
VPN_UPDATE_SWAN_VER="$SWAN_VER" /bin/bash "$tmpdir/vpnup.sh" || status=1
|
VPN_UPDATE_SWAN_VER="$SWAN_VER" /bin/bash "$tmpdir/vpnup.sh" || status=1
|
||||||
else
|
else
|
||||||
status=1
|
status=1
|
||||||
|
@ -72,7 +72,7 @@ get_swan_ver() {
|
|||||||
swan_ver_cur=4.7
|
swan_ver_cur=4.7
|
||||||
base_url="https://github.com/hwdsl2/vpn-extras/releases/download/v1.0.0"
|
base_url="https://github.com/hwdsl2/vpn-extras/releases/download/v1.0.0"
|
||||||
swan_ver_url="$base_url/upg-v1-$os_type-$os_ver-swanver"
|
swan_ver_url="$base_url/upg-v1-$os_type-$os_ver-swanver"
|
||||||
swan_ver_latest=$(wget -t 3 -T 15 -qO- "$swan_ver_url" | head -n 1)
|
swan_ver_latest=$(wget -t 2 -T 10 -qO- "$swan_ver_url" | head -n 1)
|
||||||
if printf '%s' "$swan_ver_latest" | grep -Eq '^([3-9]|[1-9][0-9]{1,2})(\.([0-9]|[1-9][0-9]{1,2})){1,2}$'; then
|
if printf '%s' "$swan_ver_latest" | grep -Eq '^([3-9]|[1-9][0-9]{1,2})(\.([0-9]|[1-9][0-9]{1,2})){1,2}$'; then
|
||||||
swan_ver_cur="$swan_ver_latest"
|
swan_ver_cur="$swan_ver_latest"
|
||||||
fi
|
fi
|
||||||
|
@ -55,7 +55,7 @@ get_swan_ver() {
|
|||||||
swan_ver_cur=4.7
|
swan_ver_cur=4.7
|
||||||
base_url="https://github.com/hwdsl2/vpn-extras/releases/download/v1.0.0"
|
base_url="https://github.com/hwdsl2/vpn-extras/releases/download/v1.0.0"
|
||||||
swan_ver_url="$base_url/upg-v1-amzn-2-swanver"
|
swan_ver_url="$base_url/upg-v1-amzn-2-swanver"
|
||||||
swan_ver_latest=$(wget -t 3 -T 15 -qO- "$swan_ver_url" | head -n 1)
|
swan_ver_latest=$(wget -t 2 -T 10 -qO- "$swan_ver_url" | head -n 1)
|
||||||
if printf '%s' "$swan_ver_latest" | grep -Eq '^([3-9]|[1-9][0-9]{1,2})(\.([0-9]|[1-9][0-9]{1,2})){1,2}$'; then
|
if printf '%s' "$swan_ver_latest" | grep -Eq '^([3-9]|[1-9][0-9]{1,2})(\.([0-9]|[1-9][0-9]{1,2})){1,2}$'; then
|
||||||
swan_ver_cur="$swan_ver_latest"
|
swan_ver_cur="$swan_ver_latest"
|
||||||
fi
|
fi
|
||||||
|
@ -88,7 +88,7 @@ get_swan_ver() {
|
|||||||
swan_ver_cur=4.7
|
swan_ver_cur=4.7
|
||||||
base_url="https://github.com/hwdsl2/vpn-extras/releases/download/v1.0.0"
|
base_url="https://github.com/hwdsl2/vpn-extras/releases/download/v1.0.0"
|
||||||
swan_ver_url="$base_url/upg-v1-$os_type-$os_ver-swanver"
|
swan_ver_url="$base_url/upg-v1-$os_type-$os_ver-swanver"
|
||||||
swan_ver_latest=$(wget -t 3 -T 15 -qO- "$swan_ver_url" | head -n 1)
|
swan_ver_latest=$(wget -t 2 -T 10 -qO- "$swan_ver_url" | head -n 1)
|
||||||
if printf '%s' "$swan_ver_latest" | grep -Eq '^([3-9]|[1-9][0-9]{1,2})(\.([0-9]|[1-9][0-9]{1,2})){1,2}$'; then
|
if printf '%s' "$swan_ver_latest" | grep -Eq '^([3-9]|[1-9][0-9]{1,2})(\.([0-9]|[1-9][0-9]{1,2})){1,2}$'; then
|
||||||
swan_ver_cur="$swan_ver_latest"
|
swan_ver_cur="$swan_ver_latest"
|
||||||
fi
|
fi
|
||||||
|
@ -78,7 +78,7 @@ get_swan_ver() {
|
|||||||
swan_ver_cur=4.7
|
swan_ver_cur=4.7
|
||||||
base_url="https://github.com/hwdsl2/vpn-extras/releases/download/v1.0.0"
|
base_url="https://github.com/hwdsl2/vpn-extras/releases/download/v1.0.0"
|
||||||
swan_ver_url="$base_url/upg-v1-$os_type-$os_ver-swanver"
|
swan_ver_url="$base_url/upg-v1-$os_type-$os_ver-swanver"
|
||||||
swan_ver_latest=$(wget -t 3 -T 15 -qO- "$swan_ver_url" | head -n 1)
|
swan_ver_latest=$(wget -t 2 -T 10 -qO- "$swan_ver_url" | head -n 1)
|
||||||
if printf '%s' "$swan_ver_latest" | grep -Eq '^([3-9]|[1-9][0-9]{1,2})(\.([0-9]|[1-9][0-9]{1,2})){1,2}$'; then
|
if printf '%s' "$swan_ver_latest" | grep -Eq '^([3-9]|[1-9][0-9]{1,2})(\.([0-9]|[1-9][0-9]{1,2})){1,2}$'; then
|
||||||
swan_ver_cur="$swan_ver_latest"
|
swan_ver_cur="$swan_ver_latest"
|
||||||
fi
|
fi
|
||||||
|
@ -265,7 +265,7 @@ run_setup() {
|
|||||||
if tmpdir=$(mktemp --tmpdir -d vpn.XXXXX 2>/dev/null); then
|
if tmpdir=$(mktemp --tmpdir -d vpn.XXXXX 2>/dev/null); then
|
||||||
if ( set -x; wget -t 3 -T 30 -q -O "$tmpdir/vpn.sh" "$setup_url1" \
|
if ( set -x; wget -t 3 -T 30 -q -O "$tmpdir/vpn.sh" "$setup_url1" \
|
||||||
|| wget -t 3 -T 30 -q -O "$tmpdir/vpn.sh" "$setup_url2" \
|
|| wget -t 3 -T 30 -q -O "$tmpdir/vpn.sh" "$setup_url2" \
|
||||||
|| curl -fsL "$setup_url1" -o "$tmpdir/vpn.sh" 2>/dev/null ); then
|
|| curl -m 30 -fsL "$setup_url1" -o "$tmpdir/vpn.sh" 2>/dev/null ); then
|
||||||
VPN_IPSEC_PSK="$VPN_IPSEC_PSK" VPN_USER="$VPN_USER" \
|
VPN_IPSEC_PSK="$VPN_IPSEC_PSK" VPN_USER="$VPN_USER" \
|
||||||
VPN_PASSWORD="$VPN_PASSWORD" \
|
VPN_PASSWORD="$VPN_PASSWORD" \
|
||||||
VPN_PUBLIC_IP="$VPN_PUBLIC_IP" VPN_L2TP_NET="$VPN_L2TP_NET" \
|
VPN_PUBLIC_IP="$VPN_PUBLIC_IP" VPN_L2TP_NET="$VPN_L2TP_NET" \
|
||||||
|
@ -171,11 +171,22 @@ install_setup_pkgs() {
|
|||||||
) || exiterr2
|
) || exiterr2
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get_default_ip() {
|
||||||
|
def_ip=$(ip -4 route get 1 | sed 's/ uid .*//' | awk '{print $NF;exit}' 2>/dev/null)
|
||||||
|
if check_ip "$def_ip" \
|
||||||
|
&& ! printf '%s' "$def_ip" | grep -Eq '^(10|127|172\.(1[6-9]|2[0-9]|3[0-1])|192\.168|169\.254)\.'; then
|
||||||
|
public_ip="$def_ip"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
detect_ip() {
|
detect_ip() {
|
||||||
bigecho "Trying to auto discover IP of this server..."
|
|
||||||
public_ip=${VPN_PUBLIC_IP:-''}
|
public_ip=${VPN_PUBLIC_IP:-''}
|
||||||
|
check_ip "$public_ip" || get_default_ip
|
||||||
|
check_ip "$public_ip" && return 0
|
||||||
|
bigecho "Trying to auto discover IP of this server..."
|
||||||
check_ip "$public_ip" || public_ip=$(dig @resolver1.opendns.com -t A -4 myip.opendns.com +short)
|
check_ip "$public_ip" || public_ip=$(dig @resolver1.opendns.com -t A -4 myip.opendns.com +short)
|
||||||
check_ip "$public_ip" || public_ip=$(wget -t 3 -T 15 -qO- http://ipv4.icanhazip.com)
|
check_ip "$public_ip" || public_ip=$(wget -t 2 -T 10 -qO- http://ipv4.icanhazip.com)
|
||||||
|
check_ip "$public_ip" || public_ip=$(wget -t 2 -T 10 -qO- http://ip1.dynupdate.no-ip.com)
|
||||||
check_ip "$public_ip" || exiterr "Cannot detect this server's public IP. Define it as variable 'VPN_PUBLIC_IP' and re-run this script."
|
check_ip "$public_ip" || exiterr "Cannot detect this server's public IP. Define it as variable 'VPN_PUBLIC_IP' and re-run this script."
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -225,8 +236,8 @@ get_swan_ver() {
|
|||||||
SWAN_VER=4.7
|
SWAN_VER=4.7
|
||||||
base_url="https://github.com/hwdsl2/vpn-extras/releases/download/v1.0.0"
|
base_url="https://github.com/hwdsl2/vpn-extras/releases/download/v1.0.0"
|
||||||
swan_ver_url="$base_url/v1-$os_type-$os_ver-swanver"
|
swan_ver_url="$base_url/v1-$os_type-$os_ver-swanver"
|
||||||
swan_ver_latest=$(wget -t 3 -T 15 -qO- "$swan_ver_url" 2>/dev/null | head -n 1)
|
swan_ver_latest=$(wget -t 2 -T 10 -qO- "$swan_ver_url" | head -n 1)
|
||||||
[ -z "$swan_ver_latest" ] && swan_ver_latest=$(curl -fsL "$swan_ver_url" 2>/dev/null | head -n 1)
|
[ -z "$swan_ver_latest" ] && swan_ver_latest=$(curl -m 10 -fsL "$swan_ver_url" 2>/dev/null | head -n 1)
|
||||||
if printf '%s' "$swan_ver_latest" | grep -Eq '^([3-9]|[1-9][0-9]{1,2})(\.([0-9]|[1-9][0-9]{1,2})){1,2}$'; then
|
if printf '%s' "$swan_ver_latest" | grep -Eq '^([3-9]|[1-9][0-9]{1,2})(\.([0-9]|[1-9][0-9]{1,2})){1,2}$'; then
|
||||||
SWAN_VER="$swan_ver_latest"
|
SWAN_VER="$swan_ver_latest"
|
||||||
fi
|
fi
|
||||||
|
@ -154,11 +154,22 @@ install_setup_pkgs() {
|
|||||||
) || exiterr2
|
) || exiterr2
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get_default_ip() {
|
||||||
|
def_ip=$(ip -4 route get 1 | sed 's/ uid .*//' | awk '{print $NF;exit}' 2>/dev/null)
|
||||||
|
if check_ip "$def_ip" \
|
||||||
|
&& ! printf '%s' "$def_ip" | grep -Eq '^(10|127|172\.(1[6-9]|2[0-9]|3[0-1])|192\.168|169\.254)\.'; then
|
||||||
|
public_ip="$def_ip"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
detect_ip() {
|
detect_ip() {
|
||||||
bigecho "Trying to auto discover IP of this server..."
|
|
||||||
public_ip=${VPN_PUBLIC_IP:-''}
|
public_ip=${VPN_PUBLIC_IP:-''}
|
||||||
|
check_ip "$public_ip" || get_default_ip
|
||||||
|
check_ip "$public_ip" && return 0
|
||||||
|
bigecho "Trying to auto discover IP of this server..."
|
||||||
check_ip "$public_ip" || public_ip=$(dig @resolver1.opendns.com -t A -4 myip.opendns.com +short)
|
check_ip "$public_ip" || public_ip=$(dig @resolver1.opendns.com -t A -4 myip.opendns.com +short)
|
||||||
check_ip "$public_ip" || public_ip=$(wget -t 3 -T 15 -qO- http://ipv4.icanhazip.com)
|
check_ip "$public_ip" || public_ip=$(wget -t 2 -T 10 -qO- http://ipv4.icanhazip.com)
|
||||||
|
check_ip "$public_ip" || public_ip=$(wget -t 2 -T 10 -qO- http://ip1.dynupdate.no-ip.com)
|
||||||
check_ip "$public_ip" || exiterr "Cannot detect this server's public IP. Define it as variable 'VPN_PUBLIC_IP' and re-run this script."
|
check_ip "$public_ip" || exiterr "Cannot detect this server's public IP. Define it as variable 'VPN_PUBLIC_IP' and re-run this script."
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -239,8 +250,8 @@ get_swan_ver() {
|
|||||||
SWAN_VER=4.7
|
SWAN_VER=4.7
|
||||||
base_url="https://github.com/hwdsl2/vpn-extras/releases/download/v1.0.0"
|
base_url="https://github.com/hwdsl2/vpn-extras/releases/download/v1.0.0"
|
||||||
swan_ver_url="$base_url/v1-amzn-2-swanver"
|
swan_ver_url="$base_url/v1-amzn-2-swanver"
|
||||||
swan_ver_latest=$(wget -t 3 -T 15 -qO- "$swan_ver_url" 2>/dev/null | head -n 1)
|
swan_ver_latest=$(wget -t 2 -T 10 -qO- "$swan_ver_url" | head -n 1)
|
||||||
[ -z "$swan_ver_latest" ] && swan_ver_latest=$(curl -fsL "$swan_ver_url" 2>/dev/null | head -n 1)
|
[ -z "$swan_ver_latest" ] && swan_ver_latest=$(curl -m 10 -fsL "$swan_ver_url" 2>/dev/null | head -n 1)
|
||||||
if printf '%s' "$swan_ver_latest" | grep -Eq '^([3-9]|[1-9][0-9]{1,2})(\.([0-9]|[1-9][0-9]{1,2})){1,2}$'; then
|
if printf '%s' "$swan_ver_latest" | grep -Eq '^([3-9]|[1-9][0-9]{1,2})(\.([0-9]|[1-9][0-9]{1,2})){1,2}$'; then
|
||||||
SWAN_VER="$swan_ver_latest"
|
SWAN_VER="$swan_ver_latest"
|
||||||
fi
|
fi
|
||||||
|
@ -202,11 +202,22 @@ install_setup_pkgs() {
|
|||||||
) || exiterr2
|
) || exiterr2
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get_default_ip() {
|
||||||
|
def_ip=$(ip -4 route get 1 | sed 's/ uid .*//' | awk '{print $NF;exit}' 2>/dev/null)
|
||||||
|
if check_ip "$def_ip" \
|
||||||
|
&& ! printf '%s' "$def_ip" | grep -Eq '^(10|127|172\.(1[6-9]|2[0-9]|3[0-1])|192\.168|169\.254)\.'; then
|
||||||
|
public_ip="$def_ip"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
detect_ip() {
|
detect_ip() {
|
||||||
bigecho "Trying to auto discover IP of this server..."
|
|
||||||
public_ip=${VPN_PUBLIC_IP:-''}
|
public_ip=${VPN_PUBLIC_IP:-''}
|
||||||
|
check_ip "$public_ip" || get_default_ip
|
||||||
|
check_ip "$public_ip" && return 0
|
||||||
|
bigecho "Trying to auto discover IP of this server..."
|
||||||
check_ip "$public_ip" || public_ip=$(dig @resolver1.opendns.com -t A -4 myip.opendns.com +short)
|
check_ip "$public_ip" || public_ip=$(dig @resolver1.opendns.com -t A -4 myip.opendns.com +short)
|
||||||
check_ip "$public_ip" || public_ip=$(wget -t 3 -T 15 -qO- http://ipv4.icanhazip.com)
|
check_ip "$public_ip" || public_ip=$(wget -t 2 -T 10 -qO- http://ipv4.icanhazip.com)
|
||||||
|
check_ip "$public_ip" || public_ip=$(wget -t 2 -T 10 -qO- http://ip1.dynupdate.no-ip.com)
|
||||||
check_ip "$public_ip" || exiterr "Cannot detect this server's public IP. Define it as variable 'VPN_PUBLIC_IP' and re-run this script."
|
check_ip "$public_ip" || exiterr "Cannot detect this server's public IP. Define it as variable 'VPN_PUBLIC_IP' and re-run this script."
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -339,8 +350,8 @@ get_swan_ver() {
|
|||||||
SWAN_VER=4.7
|
SWAN_VER=4.7
|
||||||
base_url="https://github.com/hwdsl2/vpn-extras/releases/download/v1.0.0"
|
base_url="https://github.com/hwdsl2/vpn-extras/releases/download/v1.0.0"
|
||||||
swan_ver_url="$base_url/v1-$os_type-$os_ver-swanver"
|
swan_ver_url="$base_url/v1-$os_type-$os_ver-swanver"
|
||||||
swan_ver_latest=$(wget -t 3 -T 15 -qO- "$swan_ver_url" 2>/dev/null | head -n 1)
|
swan_ver_latest=$(wget -t 2 -T 10 -qO- "$swan_ver_url" | head -n 1)
|
||||||
[ -z "$swan_ver_latest" ] && swan_ver_latest=$(curl -fsL "$swan_ver_url" 2>/dev/null | head -n 1)
|
[ -z "$swan_ver_latest" ] && swan_ver_latest=$(curl -m 10 -fsL "$swan_ver_url" 2>/dev/null | head -n 1)
|
||||||
if printf '%s' "$swan_ver_latest" | grep -Eq '^([3-9]|[1-9][0-9]{1,2})(\.([0-9]|[1-9][0-9]{1,2})){1,2}$'; then
|
if printf '%s' "$swan_ver_latest" | grep -Eq '^([3-9]|[1-9][0-9]{1,2})(\.([0-9]|[1-9][0-9]{1,2})){1,2}$'; then
|
||||||
SWAN_VER="$swan_ver_latest"
|
SWAN_VER="$swan_ver_latest"
|
||||||
fi
|
fi
|
||||||
|
@ -221,11 +221,22 @@ install_setup_pkgs() {
|
|||||||
) || exiterr2
|
) || exiterr2
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get_default_ip() {
|
||||||
|
def_ip=$(ip -4 route get 1 | sed 's/ uid .*//' | awk '{print $NF;exit}' 2>/dev/null)
|
||||||
|
if check_ip "$def_ip" \
|
||||||
|
&& ! printf '%s' "$def_ip" | grep -Eq '^(10|127|172\.(1[6-9]|2[0-9]|3[0-1])|192\.168|169\.254)\.'; then
|
||||||
|
public_ip="$def_ip"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
detect_ip() {
|
detect_ip() {
|
||||||
bigecho "Trying to auto discover IP of this server..."
|
|
||||||
public_ip=${VPN_PUBLIC_IP:-''}
|
public_ip=${VPN_PUBLIC_IP:-''}
|
||||||
|
check_ip "$public_ip" || get_default_ip
|
||||||
|
check_ip "$public_ip" && return 0
|
||||||
|
bigecho "Trying to auto discover IP of this server..."
|
||||||
check_ip "$public_ip" || public_ip=$(dig @resolver1.opendns.com -t A -4 myip.opendns.com +short)
|
check_ip "$public_ip" || public_ip=$(dig @resolver1.opendns.com -t A -4 myip.opendns.com +short)
|
||||||
check_ip "$public_ip" || public_ip=$(wget -t 3 -T 15 -qO- http://ipv4.icanhazip.com)
|
check_ip "$public_ip" || public_ip=$(wget -t 2 -T 10 -qO- http://ipv4.icanhazip.com)
|
||||||
|
check_ip "$public_ip" || public_ip=$(wget -t 2 -T 10 -qO- http://ip1.dynupdate.no-ip.com)
|
||||||
check_ip "$public_ip" || exiterr "Cannot detect this server's public IP. Define it as variable 'VPN_PUBLIC_IP' and re-run this script."
|
check_ip "$public_ip" || exiterr "Cannot detect this server's public IP. Define it as variable 'VPN_PUBLIC_IP' and re-run this script."
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -276,8 +287,8 @@ get_swan_ver() {
|
|||||||
SWAN_VER=4.7
|
SWAN_VER=4.7
|
||||||
base_url="https://github.com/hwdsl2/vpn-extras/releases/download/v1.0.0"
|
base_url="https://github.com/hwdsl2/vpn-extras/releases/download/v1.0.0"
|
||||||
swan_ver_url="$base_url/v1-$os_type-$os_ver-swanver"
|
swan_ver_url="$base_url/v1-$os_type-$os_ver-swanver"
|
||||||
swan_ver_latest=$(wget -t 3 -T 15 -qO- "$swan_ver_url" 2>/dev/null | head -n 1)
|
swan_ver_latest=$(wget -t 2 -T 10 -qO- "$swan_ver_url" | head -n 1)
|
||||||
[ -z "$swan_ver_latest" ] && swan_ver_latest=$(curl -fsL "$swan_ver_url" 2>/dev/null | head -n 1)
|
[ -z "$swan_ver_latest" ] && swan_ver_latest=$(curl -m 10 -fsL "$swan_ver_url" 2>/dev/null | head -n 1)
|
||||||
if printf '%s' "$swan_ver_latest" | grep -Eq '^([3-9]|[1-9][0-9]{1,2})(\.([0-9]|[1-9][0-9]{1,2})){1,2}$'; then
|
if printf '%s' "$swan_ver_latest" | grep -Eq '^([3-9]|[1-9][0-9]{1,2})(\.([0-9]|[1-9][0-9]{1,2})){1,2}$'; then
|
||||||
SWAN_VER="$swan_ver_latest"
|
SWAN_VER="$swan_ver_latest"
|
||||||
fi
|
fi
|
||||||
|
Loading…
Reference in New Issue
Block a user